教你一次性成功安装K8S集群(基于一主两从模式)(11)
[root@binghe101 ~]# kubeadm token create --print-join-command W0502 23:44:55.218947 59318 configset.go:202] WARNING: kubeadm cannot validate component configs for API groups [kubelet.config.k8s.io kubeproxy.config.k8s.io] kubeadm join k8s.master:6443 --token s0hoh1.2cwyf1fyyjl2h04a --discovery-token-ca-cert-hash sha256:6d78e360dc64d84762611ac6beec8ac0f0fe9f72a5c2cca008df949e07827c19 其中,有如下一行输出。 kubeadm join k8s.master:6443 --token s0hoh1.2cwyf1fyyjl2h04a --discovery-token-ca-cert-hash sha256:6d78e360dc64d84762611ac6beec8ac0f0fe9f72a5c2cca008df949e07827c19 这行代码就是获取到的join命令。 注意:join命令中的token的有效时间为 2 个小时,2小时内,可以使用此 token 初始化任意数量的 worker 节点。 2.初始化Worker节点 针对所有的 worker 节点执行,在这里,就是在binghe102服务器和binghe103服务器上执行。 创建init_worker.sh脚本文件,文件内容如下所示。 # 只在 worker 节点执行 # 192.168.175.101 为 master 节点的内网 IP export MASTER_IP=192.168.175.101 # 替换 k8s.master 为初始化 master 节点时所使用的 APISERVER_NAME export APISERVER_NAME=k8s.master echo "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts # 替换为 master 节点上 kubeadm token create 命令输出的join kubeadm join k8s.master:6443 --token s0hoh1.2cwyf1fyyjl2h04a --discovery-token-ca-cert-hash sha256:6d78e360dc64d84762611ac6beec8ac0f0fe9f72a5c2cca008df949e07827c19 其中,kubeadm join...就是master 节点上 kubeadm token create 命令输出的join。 赋予init_worker.sh脚本文件文件可执行权限,并执行init_worker.sh脚本文件。 chmod a+x ./init_worker.sh ./init_worker.sh 3.查看初始化结果 在Master节点执行如下命令查看初始化结果。 kubectl get nodes -o wide 如下所示。 [root@binghe101 ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION binghe101 Ready master 20m v1.18.2 binghe102 Ready 2m46s v1.18.2 binghe103 Ready 2m46s v1.18.2 注意:kubectl get nodes命令后面加上-o wide参数可以输出更多的信息。 重启K8S集群引起的问题 1.Worker节点故障不能启动 Master 节点的 IP 地址发生变化,导致 worker 节点不能启动。需要重新安装K8S集群,并确保所有节点都有固定的内网 IP 地址。 2.Pod崩溃或不能正常访问 重启服务器后使用如下命令查看Pod的运行状态。 kubectl get pods --all-namespaces 发现很多 Pod 不在 Running 状态,此时,需要使用如下命令删除运行不正常的Pod。 kubectl delete pod -n 注意:如果Pod 是使用 Deployment、StatefulSet 等控制器创建的,K8S 将创建新的 Pod 作为替代,重新启动的 Pod 通常能够正常工作。
(编辑:ASP站长网) |