Kubernetes 验证数据时出错:ValidationError(Deployment.spec.template.spec.volumes[0]):未知字段“;主机别名“;在io.k8s.api.core.v1.Volume中
我试图在kubeadm上使用metrics server,其中有一个头部节点和两个工作节点,但我一直收到未知HostAlias错误 徖Kubernetes 验证数据时出错:ValidationError(Deployment.spec.template.spec.volumes[0]):未知字段“;主机别名“;在io.k8s.api.core.v1.Volume中,kubernetes,monitoring,Kubernetes,Monitoring,我试图在kubeadm上使用metrics server,其中有一个头部节点和两个工作节点,但我一直收到未知HostAlias错误 徖 apiVersion: extensions/v1beta1 kind: Deployment metadata: labels: k8s-app: metrics-server name: metrics-server namespace: kube-system spec: selector: matchLabels:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
k8s-app: metrics-server
name: metrics-server
namespace: kube-system
spec:
selector:
matchLabels:
k8s-app: metrics-server
template:
metadata:
labels:
k8s-app: metrics-server
name: metrics-server
spec:
containers:
-
command:
- /metrics-server
- "--kubelet-insecure-tls"
- "--kubelet-preferred-address-types=InternalDNS,InternalIPExternalDNS,ExternalIP,Hostname"
image: "k8s.gcr.io/metrics-server-amd64:v0.3.1"
imagePullPolicy: Always
name: metrics-server
volumeMounts:
-
mountPath: /tmp
name: tmp-dir
serviceAccountName: metrics-server
volumes:
-
emptyDir: {}
hostAliases:
-
hostnames:
- k8s-head
ip: "192.168.205.10"
-
hostnames:
- k8s-node-1
ip: "192.168.205.11"
-
hostnames:
- k8s-node-2
ip: "192.168.205.12"
name: tmp-dir
您的YAML文件结构似乎错误,主机别名应该位于这样的结构中
apiVersion: v1
kind: Pod
metadata:
name: hostaliases-pod
spec:
restartPolicy: Never
hostAliases:
- ip: "127.0.0.1"
hostnames:
- "foo.local"
- "bar.local"
- ip: "10.1.2.3"
hostnames:
- "foo.remote"
- "bar.remote"
请注意,在hostAlias条目之后,您应该将-ip:“127.0.0.1”
在您将要解析的主机名放入此ip之后
你的YAML是
hostAliases:
- hostnames:
- k8s-head
ip: "192.168.205.10"
- hostnames:
- k8s-node-1
ip: "192.168.205.11"
- hostnames:
- k8s-node-2
ip: "192.168.205.12"
在这里,您可以找到有关的更多信息,我编辑了yaml,但仍然收到错误消息“io.k8s.api.core.v1.Container.command的类型无效:获取“字符串”,应为“数组”。你知道如何解决这个问题吗?你的YAML文件没有正确缩进,一个额外的空间就足以出错。注意本例中的缩进,在容器输入之后,将命令放在破折号(-)信号之后,没有新行(例如-command:)