如何解决尽管使用了最新的 kubectl 客户端,但未知字段“setHostnameAsFQDN”
apiVersion: apps/v1
kind: Deployment
Metadata:
name: hello-kubernetes
spec:
replicas: 1
selector:
matchLabels:
app: hello-kubernetes
template:
Metadata:
labels:
app: hello-kubernetes
spec:
setHostnameAsFQDN: true
hostname: hello
subdomain: world
containers:
- name: hello-kubernetes
image: redis
但是,我收到此错误:
$ kubectl apply -f dep.yaml
error: error validating "dep.yaml": error validating data: ValidationError(Deployment.spec.template.spec): unkNown field "setHostnameAsFQDN" in io.k8s.api.core.v1.PodSpec; if you choose to ignore these errors,turn validation off with --validate=false
我的 kubectl 版本:
$ kubectl version --client
Client Version: version.Info{Major:"1",Minor:"20",GitVersion:"v1.20.0",GitCommit:"af46c47ce925f4c4ad5cc8d1fca46c7b77d13b38",GitTreeState:"clean",BuildDate:"2020-12-08T17:59:43Z",GoVersion:"go1.15.5",Compiler:"gc",Platform:"darwin/amd64"}
指定 --validate=falsee
后,hostname
和 hostname -f
仍然返回不同的值。
我相信我误解了一些东西。文档说 setHostnameAsFQDN
将在 kubernetes v1.20 中可用
解决方法
您展示了 kubectl
版本。你的 kubernetes 版本也需要是 v1.20。确保您使用的是 kubernetes 版本 v1.20。
使用 kubectl version
查看客户端和服务器版本。其中客户端版本是指 kubectl
版本,服务器版本是指 kubernetes
版本。
就 k8s v1.20 发行说明文档而言:之前在 1.19 中引入了功能门,现在默认启用 SetHostnameAsFQDN
。 documentation for DNS for Services and Pods
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。