| 在 master1(假设 vip 地址为 10.103.97.101)上执行以下命令: $ echo "10.103.97.100 apiserver.cluster.local" >> /etc/hosts #解析的是 master0 的地址,为了能正常 join 进去 $ kubeadm join 10.103.97.100:6443 --token 9vr73a.a8uxyaju799qwdjv  --discovery-token-ca-cert-hash sha256:7c2e69131a36ae2a042a339b33381c6d0d43887e2de83720eff5359e26aec866  --experimental-control-plane  --certificate-key f8902e114ef118304e561c3ecd4d0b543adc226b7a07f675f56564185ffe0c07   $ sed "s/10.103.97.100/10.103.97.101/g" -i /etc/hosts  # 解析再换成自己的地址,否则就都依赖 ma 
 在 master2(假设 vip 地址为 10.103.97.102)上执行以下命令: $ echo "10.103.97.100 apiserver.cluster.local" >> /etc/hosts $ kubeadm join 10.103.97.100:6443 --token 9vr73a.a8uxyaju799qwdjv  --discovery-token-ca-cert-hash sha256:7c2e69131a36ae2a042a339b33381c6d0d43887e2de83720eff5359e26aec866  --experimental-control-plane  --certificate-key f8902e114ef118304e561c3ecd4d0b543adc226b7a07f675f56564185ffe0c07    $ sed "s/10.103.97.100/10.103.97.102/g" -i /etc/hosts 
 在 node 上 join 时加上 --master 参数指定 master 地址列表: $ echo "10.103.97.1 apiserver.cluster.local" >> /etc/hosts   # 需要解析成虚拟 ip $ kubeadm join 10.103.97.1:6443 --token 9vr73a.a8uxyaju799qwdjv  --master 10.103.97.100:6443  --master 10.103.97.101:6443  --master 10.103.97.102:6443  --discovery-token-ca-cert-hash sha256:7c2e69131a36ae2a042a339b33381c6d0d43887e2de83720 
 离线包结构分析 . ├── bin  # 指定版本的bin文件,只需要这三个,其它组件跑容器里 │   ├── kubeadm │   ├── kubectl │   └── kubelet ├── conf │   ├── 10-kubeadm.conf  # 这个文件新版本没用到,我在shell里直接生成,这样可以检测cgroup driver │   ├── dashboard │   │   ├── dashboard-admin.yaml │   │   └── kubernetes-dashboard.yaml │   ├── heapster │   │   ├── grafana.yaml │   │   ├── heapster.yaml │   │   ├── influxdb.yaml │   │   └── rbac │   │       └── heapster-rbac.yaml │   ├── kubeadm.yaml # kubeadm的配置文件 │   ├── kubelet.service  # kubelet systemd配置文件 │   ├── net │   │   └── calico.yaml │   └── promethus ├── images  # 所有镜像包 │   └── images.tar └── shell ├── init.sh  # 初始化脚本 └── master.sh # 运行master脚本 
 
    init.sh 脚本会将 bin 目录下的二进制文件拷贝到 $PATH 下面,并配置好 systemd,关闭 swap  和防火墙等等,然后导入集群所需要的镜像。master.sh 主要执行了 kubeadm init。conf 目录下面包含了 kubeadm 的配置文件,calico yaml 文件等等。sealos 会调用上面的两个脚本,所以大部分兼容。不同版本都可以通过微调脚本来保持兼容。 (编辑:南平站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |