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