kubernetes java apiclient最新接口不可用


{
"kind": "Status",
"apiVersion": "v1",
"metadata": {},
"status": "Failure",
"message": "Service \"mysql1\" is forbidden: Namespace \"\" is invalid: metadata.name: required value",
"reason": "Forbidden",
"details": {
"name": "mysql1",
"kind": "Service"
},
"code": 403
}
以上问题如何解决?
已邀请:

CooCla

赞同来自:


文件里缺少对该资源的命名,尝试在文件中添加:

metadata:
name: YOUR-RESOURCE-NAME

上面内容是yaml格式,记得缩进,不知道为啥,提交后就没有缩进了。

jxjhu

赞同来自:


你好,我用的是json文件,然后我把这个封装成JAVABEAN,还是不行,直接用kubectl create -f mysql.json是可以正常运行
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name":"mysql",
"labels": {
"name": "mysql"
},
"name": "mysql"
},
"spec": {
"ports": [
{
"port": 3306
}
],
"selector": {
"name": "mysql"
}
}
}

CooCla

赞同来自:


看你这个格式不太对呀。metadata中定义了两个name,这样我不确定没问题。

jxjhu

赞同来自:


下面是我新试的,还是不行
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"labels": {
"name": "mysql"
},
"name": "mysql1"
},
"spec": {
"ports": [
{
"port": 3306
}
],
"selector": {
"name": "mysql-1"
}
}
}

CooCla

赞同来自:


那就不太清楚了,看api返回的信息,有两个问题:
1. 资源请求被拒绝了,你可以考虑是否权限正常
2. metadata.name 为必须字段。从返回的信息也可以看到"metadata": {}

你可以仔细查下,应该是细微的错误导致的。

jxjhu

赞同来自:


我不知道,你那边有没有相关通过JAVA创建service的代码

要回复问题请先登录注册