k8s——叢集環境問題合集

代码你敲我不敲發表於2024-06-01

建立叢集

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中的容器是否因為某種原因而崩潰。

  1. 看日誌
  2. 看事件

相關文章