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博客

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐