建立叢集
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中的容器是否因為某種原因而崩潰。
- 看日誌
- 看事件