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
集群正常!
3、启动所有容器
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
参考:
搭建k8s节点报错[ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]:_zhy-dream的博客-CSDN博客
k8s注册节点出现kube-flannel-ds服务状态Init:0/1 - 信|仰 - 博客园
k8s重启报错 :The connection to the server 192.168.102.149:6443 was refused_正在攀登的小蜗牛的博客-CSDN博客