在 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 会调用上面的两个脚本,所以大部分兼容。不同版本都可以通过微调脚本来保持兼容。
(编辑:晋中站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|