k8s——集群环境问题合集
创建集群
集群环境问题合集
重置master节点
kubeadm reset -f
# -f 强制重置 可选
重置node节点
# 当你的master节点重置后,node节点需要重新加入集群
kubeadm reset -f
# -f 强制重置 可选
# 同时需要删除 `rm -rf /var/lib/kubelet`
# `rm -rf /etc/cni` 两个文件
初始化的时候不指定node的cidr
- 初始化的时候不指定node的cidr报错
[root@master wangluo]# kubectl describe -n kube-flannel pod kube-flannel-ds-l64tb
# 发现事件
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 90s default-scheduler Successfully assigned kube-flannel/kube-flannel-ds-l64tb to node
******省略******
Normal Started 43s (x4 over 87s) kubelet Started container kube-flannel
Warning BackOff 5s (x7 over 84s) kubelet Back-off restarting failed container kube-flannel in pod kube-flannel-ds-l64tb_kube-flannel(6c977410-3384-4379-acda-363a569f194e)
# 报错,查看日志
[root@master wangluo]# kubectl logs -n kube-flannel kube-flannel-ds-l64tb
****省略******
de" pod cidr not assigned
I0601 03:27:19.632977 1 main.go:432] Stopping shutdownHandler...
[root@master wangluo]# kubectl logs -n kube-flannel kube-flannel-ds-l64tb |grep -i error
Defaulted container "kube-flannel" out of: kube-flannel, install-cni-plugin (init), install-cni (init)
E0601 03:27:19.632749 1 main.go:343] Error registering network: failed to acquire lease: node "node" pod cidr not assigned
#解决方案 重新初始化
# 如果重新初始化之后,node节点notready
# 重启docker 和containerd
[root@master wangluo]# kubectl get no
NAME STATUS ROLES AGE VERSION
master Ready control-plane 19m v1.28.10
node NotReady <none> 18m v1.28.10
# 在node节点上重启两个服务
[root@node ~]# systemctl restart docker
[root@node ~]# systemctl restart containerd
集群网络问题
# 从网上拉取的flannel.yaml中net-config.json的cidr是10.244.0.0/16,但是集群中cidr是10.88.0.0/24,所以会报错
[root@master wangluo]# kubectl get po -n kube-flannel
NAME READY STATUS RESTARTS AGE
kube-flannel-ds-frnjq 0/1 CrashLoopBackOff 3 (48s ago) 94s
kube-flannel-ds-lh7nt 0/1 CrashLoopBackOff 3 (44s ago) 94s
# CrashLoopBackOff 这个状态表示
# 表示Pod中的容器因为某种原因而退出(crash)
# 并且kubelet正在尝试重新启动该容器。
# 但是,由于某种原因(如配置错误、应用程序错误、资源限制等)
# 容器在启动后立即再次崩溃。
# kubelet会按照其重启策略(默认为Always)
# 继续尝试重新启动容器,
# 但每次尝试都以失败告终,
# 形成了一个循环。
# /etc/cni/net.d/10-flannel.conflist
# 是flannel的配置文件
解决思路
如果pod的状态是CrashLoopBackOff,则需要检查pod中的容器是否因为某种原因而崩溃。
- 看日志
- 看事件