我需要为kuberenetes中的主节点提供一个特定的节点名称。我正在使用kubeadm设置集群,我知道可以为kubeadm init提供一个选项--node-name master
,它工作正常。
现在,问题是我正在使用配置文件初始化集群,并且我尝试了各种方法来向集群提供该节点名,但它没有选择名称。我的kubeadm init的配置文件是:
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:
advertiseAddress: 10.0.1.149
controlPlaneEndpoint: 10.0.1.149
etcd:
endpoints:
- http://10.0.1.149:2379
caFile: /etc/kubernetes/pki/etcd/ca.pem
certFile: /etc/kubernetes/pki/etcd/client.pem
keyFile: /etc/kubernetes/pki/etcd/client-key.pem
networking:
podSubnet: 192.168.13.0/24
kubernetesVersion: 1.10.3
apiServerCertSANs:
- 10.0.1.149
apiServerExtraArgs:
endpoint-reconciler-type: lease
nodeRegistration:
name: master
现在我运行kubeadm init --config=config.yaml
,它超时并显示以下错误:
[uploadconfig] Storing the configuration used in ConfigMap "kubeadm-
config" in the "kube-system" Namespace
[markmaster] Will mark node ip-x-x-x-x.ec2.internal as master by
adding a label and a taint
timed out waiting for the condition
PS:当您不向kubelet提供--hostname-override
到kubeadm init不提供--node-name
时,也会出现此问题。我同时提供。另外,当我不使用config.yaml
文件并使用命令行为kubeadm init提供--node-name
选项时,我也没有遇到任何问题。
我想知道我们如何在config.yaml文件中提供--node-name
选项。任何指针都表示赞赏。
答案 0 :(得分:2)
我可以使用以下配置文件解决此问题,如果有人遇到相同的问题,只需更新即可。
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:
advertiseAddress: 10.0.1.149
controlPlaneEndpoint: 10.0.1.149
etcd:
endpoints:
- http://10.0.1.149:2379
caFile: /etc/kubernetes/pki/etcd/ca.pem
certFile: /etc/kubernetes/pki/etcd/client.pem
keyFile: /etc/kubernetes/pki/etcd/client-key.pem
networking:
podSubnet: 192.168.13.0/24
kubernetesVersion: 1.10.3
apiServerCertSANs:
- 10.0.1.149
apiServerExtraArgs:
endpoint-reconciler-type: lease
nodeName: master
这是您可以在config.yaml中指定--node-name
的方式