• 使用阿里云弹性伸缩服务。实现弹性伸缩创建服务器后能自动加入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
    

      

  • 相关阅读:
    如何手动封装 $ on off emit?
    Vue 实例身上的一些方法(二)
    Vue 实例身上的一些方法(一)
    Vue属性过滤
    Vue属性监听
    Vue实现简单的商品增减功能
    Vue 计算属性
    使用Vue实现一个简单地自定义拖拽功能
    数组的深拷贝与浅拷贝
    如何让html引用公共布局(多个html文件公用一个header.html和footer.html)
  • 原文地址:https://www.cnblogs.com/zhangb8042/p/14344797.html
Copyright © 2020-2023  润新知