0
点赞
收藏
分享

微信扫一扫

k8s搭建过程中的坑(一)

辰鑫chenxin 2022-03-24 阅读 152
kubernetes

1、关于k8s集群搭建完成后,集群内的节点node1的status是NotReady状态?

排查一:检查node1节点的组件是否正确启动了(主节点)

kubectl get pods --all-namespaces -o wide | grep node1
或者:查看集群内所有节点的组件启动情况
 kubectl get pod -n kube-system -o wide

发现node1节点的kube-flannel启动失败:

解决:安装网络插件,解决节点NotReady的问题(主节点)

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

之后kubectl get nodes发现node1节点还是NotReady状态,无奈从集群中删除该节点,并重新加入!

使用kubectl delete node node1将node1从集群中删除(node节点)

使用docker ps -qa | xargs docker rm -f删除node1节点的所有容器(node节点)

2、将心节点加入到k8s集群中

        生成注册命令:kubeadm token create --print-join-command(主节点)

        执行:(子节点)

kubeadm join 192.168.126.131:6443 --token 96wjoi.n3q92j0cuj6q9lrl --discovery-token-ca-cert-hash xxxxxxxxxxxxxxxxxxx

  第一个错误:

 解决:

首先关闭交换分区(子节点node)

swappoff -a

之后重新配置docker驱动(子节点node)

# kubernetes 官方推荐 docker 等使用 systemd 作为 cgroupdriver,否则 kubelet 启动不了
cat <<EOF > daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "registry-mirrors": ["https://ud6340vz.mirror.aliyuncs.com"]
}
EOF
mv daemon.json /etc/docker/

之后重启kubelet和docker(子节点node)

systemctl restart kubelet
systemctl daemon-reload
systemctl restart docker

之后再次执行将node加入集群的指令,出现新的错误

 解决:(子节点node)

 echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptables

重新执行将节点node加入集群指令,出现新的错误

 解决:在node节点上执行,重置子节点

kubeadm reset

再次执行将节点node加入集群指令,成功加入到集群!执行kubectl get nodes

 集群正常!

举报

相关推荐

0 条评论