使用阿里云弹性伸缩服务。实现弹性伸缩创建服务器后能自动加入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集群
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | [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 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律