【发布时间】:2019-07-25 00:05:30
【问题描述】:
为了远程访问 Kubernetes 仪表板,我尝试将 ClusterIP 替换为 nodePort,如推荐的 here 和 here。但是编辑总是失败并出现以下错误:
Invalid value: "The edited file failed validation": ValidationError(Service.spec): unknown field "nodePort" in io.k8s.api.core.v1.ServiceSpec
以上参考推荐的命令是:
kubectl edit svc/kubernetes-dashboard --namespace=kube-system
这是我在更改后尝试的yaml:
apiVersion: v1
kind: Service
metadata
creationTimestamp: "2019-07-24T13:03:48Z"
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kube-system
resourceVersion: "2238"
selfLink: /api/v1/namespaces/kube-system/services/kubernetes-dashboard
uid: 79c37d2b-ae13-11e9-b2a1-0026b95c3009
spec:
NodePort: 10.110.154.246
ports:
- port: 80
protocol: TCP
targetPort: 9090
selector:
k8s-app: kubernetes-dashboard
sessionAffinity: None
type: ClusterIP
status:
loadBalancer: {}
客户端和服务器版本的输出如下:
$kubectl version
Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.2", GitCommit:"cff46ab41ff0bb44d8584413b598ad8360ec1def", GitTreeState:"clean", BuildDate:"2019-01-10T23:35:51Z", GoVersion:"go1.11.4", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.8", GitCommit:"0c6d31a99f81476dfc9871ba3cf3f597bec29b58", GitTreeState:"clean", BuildDate:"2019-07-08T08:38:54Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}
【问题讨论】:
-
您检查过
nodePort的拼写是否正确。应该是NodePort。 -
NodePort和nodePort都试过了,两种情况都出现同样的错误。 -
请提供您更改后的
yaml清单您在更改后应用的内容。 -
也可以提供命令
$ kubectl version的版本输出 -
您好,NodePort 应该在端口部分下,并且应该是整数值
标签: kubernetes kubernetes-service