使用阿里雲彈性伸縮服務。實現彈性伸縮創建服務器后能自動加入k8s集群中


一、流程圖

 

 

 

 

二、實現

 

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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM