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
}
以上问题如何解决?
6 个回复
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": ,
"selector": {
"name": "mysql"
}
}
}
CooCla
赞同来自:
看你这个格式不太对呀。metadata中定义了两个name,这样我不确定没问题。
jxjhu
赞同来自:
下面是我新试的,还是不行
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"labels": {
"name": "mysql"
},
"name": "mysql1"
},
"spec": {
"ports": ,
"selector": {
"name": "mysql-1"
}
}
}
CooCla
赞同来自:
那就不太清楚了,看api返回的信息,有两个问题:
<ol><li>资源请求被拒绝了,你可以考虑是否权限正常</li><li>metadata.name 为必须字段。从返回的信息也可以看到"metadata": {}</li></ol>
你可以仔细查下,应该是细微的错误导致的。
jxjhu
赞同来自:
我不知道,你那边有没有相关通过JAVA创建service的代码