k8s 加入新的master节点【看这篇文章不走弯路】

  • A+
所属分类:kubernetes

两种方法:

1.生成初始化kubeadm-config文件:

kubeadm config print init-defaults > kubeadm-config.yaml

修改如下

advertiseAddress:为master的IP(不是vip)

将CoreDNS部分注释掉如下图

master1执行

kubeadm init phase upload-certs --upload-certs --config kubeadm-config.yaml

将获取到certificate key:

e96f1f907729f233dd2f2f74e2565b6d82a0f1272653aa6643476adb15ed4925

master1节点执行

[root@master1 opt]# kubeadm token create --print-join-command

W0516 23:56:09.112502 2226477 configset.go:202] WARNING: kubeadm cannot validate component configs for API groups [kubelet.config.k8s.io kubeproxy.config.k8s.io]

kubeadm join 10.136.102.40:6443 --token zkml4w.gh9kvs6f0nqiafmr --discovery-token-ca-cert-hash sha256:cd5a695e529a4131d7b8e0f6799aa18dae1203192295fd12cd58a9c8fb481f64

在要加入的节点master3执行即可

[root@master3 kubernetes]# kubeadm join 10.136.102.40:6443 --token zkml4w.gh9kvs6f0nqiafmr --discovery-token-ca-cert-hash sha256:cd5a695e529a4131d7b8e0f6799aa18dae1203192295fd12cd58a9c8fb481f64 --control-plane --certificate-key e96f1f907729f233dd2f2f74e2565b6d82a0f1272653aa6643476adb15ed4925

 2. 生成用于添加节点的kubeadm-config.yaml文件

kubeadm config print join-defaults > kubeadm-config.yaml

修改三个地方:

apiServerEndpoint:连接apiserver的地址,即master的api地址,这里可以改为192.168.0.1:6443,如果master集群部署的话,这里需要改为集群vip地址
token及tlsBootstrapToken:连接master使用的token,这里需要与master上的InitConfiguration中的token配置一致
name:node节点的名称,如果使用主机名,需要确保master节点可以解析该主机名。否则的话可直接使用ip地址

添加节点到集群

kubeadm join --config kubeadm-config.yaml
w3cjava