提示:如上仅需Master01节点操作,从而实现所有节点镜像的分发。
注意相关版本,如上脚本为v1.21.0 Kubernetes版本所需镜像。
[root@master01 ~]# ctr -n k8s.io images ls
#确认验证
[root@master01 ~]# crictl images ls
Master01上初始化
[root@master01 ~]# kubeadm init --config=kubeadm/kubeadm-config.yaml --upload-certs
#保留如下命令用于后续节点添加:
You can now join any number of the control-plane node running the following command on each as root:
kubeadm join 172.24.8.100:16443 --token 6h8ncy.g0lzrgiav8ct7kyo \
--discovery-token-ca-cert-hash sha256:41c1966aa5aaf6108b938daf3bdcf103991be5fd8141854f800a4bbc3df7979a \
--control-plane --certificate-key f32602ab63d2545b8cab5d392d0e53942872fac8cfc23c8ae1ee545f4e365394
Please note that the certificate-key gives access to cluster sensitive data, keep it secret!
As a safeguard, uploaded-certs will be deleted in two hours; If necessary, you can use
"kubeadm init phase upload-certs --upload-certs" to reload certs afterward.
Then you can join any number of worker nodes by running the following on each as root:
kubeadm join 172.24.8.100:16443 --token 6h8ncy.g0lzrgiav8ct7kyo \
--discovery-token-ca-cert-hash sha256:41c1966aa5aaf6108b938daf3bdcf103991be5fd8141854f800a4bbc3df7979a
注意:如上token具有默认24小时的有效期,token和hash值可通过如下方式获取:
kubeadm token list
如果 Token 过期以后,可以输入以下命令,生成新的 Token:
kubeadm token create
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
[root@master01 ~]# mkdir -p $HOME/.kube
[root@master01 ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master01 ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config
[root@master01 ~]# cat << EOF >> ~/.bashrc
export KUBECONFIG=$HOME/.kube/config
EOF
#设置KUBECONFIG环境变量
[root@master01 ~]# echo "source <(kubectl completion bash)" >> ~/.bashrc
[root@master01 ~]# source ~/.bashrc
附加:初始化过程大致步骤如下:
[certs]:生成相关的各种证书
[control-plane]:创建Kubernetes控制节点的静态Pod
[etcd]:创建ETCD的静态Pod
[kubelet-start]:生成kubelet的配置文件”/var/lib/kubelet/config.yaml”
[kubeconfig]:生成相关的kubeconfig文件
[bootstraptoken]:生成token记录下来,后续使用kubeadm join往集群中添加节点时会用到
[addons]:附带的相关插件
提示:初始化仅需要在master01上执行,若初始化异常可通过kubeadm reset && rm -rf $HOME/.kube重置。
添加Master节点
[root@master02 ~]# kubeadm join 172.24.8.100:16443 --token 6h8ncy.g0lzrgiav8ct7kyo \
--discovery-token-ca-cert-hash sha256:41c1966aa5aaf6108b938daf3bdcf103991be5fd8141854f800a4bbc3df7979a \
--control-plane --certificate-key f32602ab63d2545b8cab5d392d0e53942872fac8cfc23c8ae1ee545f4e365394
[root@master02 ~]# mkdir -p $HOME/.kube
[root@master02 ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master02 ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config
[root@master02 ~]# cat << EOF >> ~/.bashrc
export KUBECONFIG=$HOME/.kube/config
EOF
#设置KUBECONFIG环境变量
[root@master02 ~]# echo "source <(kubectl completion bash)" >> ~/.bashrc
[root@master02 ~]# source ~/.bashrc
提示:master03也如上执行添加至集群的controlplane。
若添加异常可通过kubeadm reset && rm -rf $HOME/.kube重置。
安装NIC插件
NIC插件介绍
Calico 是一个安全的 L3 网络和网络策略提供者。
Canal 结合 Flannel 和 Calico, 提供网络和网络策略。
Cilium 是一个 L3 网络和网络策略插件, 能够透明的实施 HTTP/API/L7 策略。 同时支持路由(routing)和叠加/封装( overlay/encapsulation)模式。