一、流程圖
二、實現
1、在master端創建一個永久的token
[root@master ~]# kubeadm token create --ttl 0 --print-join-command kubeadm join 172.16.208.202:6443 --token d1m9gy.ou3983qtvy6nih9t --discovery-token-ca-cert-hash sha256:d4fd822875b79c10f846a5510208c9acc423e4b1a72f13b53bdd88203bc44dd3 [root@master ~]# kubeadm token list TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS d1m9gy.ou3983qtvy6nih9t <forever> <never> authentication,signing <none> system:bootstrappers:kubeadm:default-node-token dv8qs9.ytcmgshggna7xp4y 23h 2021-01-30T10:36:20+08:00 authentication,signing The default bootstrap token generated by 'kubeadm init'. system:bootstrappers:kubeadm:default-node-token
2、node節點將環境配置好,只預留join步驟
3、創建join腳本
[root@node-i-bp19m1ido52upii324z2 ~]# mkdir /usr/local/scripts -p [root@node-i-bp19m1ido52upii324z2 ~]# cat /usr/local/scripts/kubeadm_join.sh #!/bin/bash source /etc/profile ECS_ID=`curl http://100.100.100.200/latest/meta-data/instance-id` HOSTNAME=node-${ECS_ID} #修改主機名 hostnamectl set-hostname ${HOSTNAME} #join kubeadm join 172.16.208.202:6443 --token d1m9gy.ou3983qtvy6nih9t --discovery-token-ca-cert-hash sha256:d4fd822875b79c10f846a5510208c9acc423e4b1a72f13b53bdd88203bc44dd3 > /var/spool/cron/root rm -f $0
4、將腳本寫入crond中,設置重啟執行(寫入/etc/rc.d/rc.local的話,join不會成功)
[root@node-i-bp19m1ido52upii324z2 ~]# echo "@reboot /bin/bash /usr/local/scripts/kubeadm_join.sh" >> /var/spool/cron/root [root@node-i-bp19m1ido52upii324z2 ~]# crontab -l @reboot /bin/bash /usr/local/scripts/kubeadm_join.sh
5、拍攝快照並制作成鏡像
6、創建彈性伸縮服務,鏡像選擇為剛才制作的鏡像
其它配置根據情況設置
7、查看自動伸縮創建服務器時,服務器自動加入k8s集群
[root@master ~]# kubectl get node -w NAME STATUS ROLES AGE VERSION master Ready control-plane,master 4h1m v1.20.2 node-i-bp19m1ido52usoxvpo8l NotReady <none> 0s v1.20.2 node-i-bp19m1ido52usoxvpo8l NotReady <none> 0s v1.20.2 node-i-bp19m1ido52usoxvpo8l NotReady <none> 0s v1.20.2 node-i-bp19m1ido52usoxvpo8l NotReady <none> 0s v1.20.2 node-i-bp19m1ido52usoxvpo8l NotReady <none> 0s v1.20.2 node-i-bp19m1ido52usoxvpo8l NotReady <none> 6s v1.20.2 node-i-bp19m1ido52usoxvpo8l NotReady <none> 6s v1.20.2 node-i-bp19m1ido52usoxvpo8l NotReady <none> 7s v1.20.2 node-i-bp19m1ido52usoxvpo8l Ready <none> 10s v1.20.2 node-i-bp19m1ido52usoxvpo8l Ready <none> 10s v1.20.2 master Ready control-plane,master 4h2m v1.20.2 [root@master ~]# kubectl get node NAME STATUS ROLES AGE VERSION master Ready control-plane,master 4h4m v1.20.2 node-i-bp19m1ido52usoxvpo8l Ready <none> 104s v1.20.2