1. 程式人生 > >【kubernetes/k8s概念】k8s 坑問題彙總

【kubernetes/k8s概念】k8s 坑問題彙總

1. Pod始終處於Pending狀態

      如果Pod保持在Pending的狀態,意味著無法被正常的排程到節點上。由於某種系統資源無法滿足Pod執行的需求

  • 系統沒有足夠的資源:已經用盡了叢集中所有的CPU或記憶體資源。需要清理一些不在需要的Pod,調整它們所需的資源量,或者向叢集中增加新的節點。
  • 使用者指定了hostPort:通過hostPort使用者能夠將服務暴露到指定的主機埠上,會限制Pod能夠被排程執行的節點。

 

2. Pod始終處於Waiting狀態

      Pod處在Waiting

的狀態,說明已經被排程到了一個工作節點,卻無法在那個節點上執行。可以使用kubectl describe 含有更詳細的錯誤資訊。最經常導致Pod始終Waiting的原因是無法下載映象

 

3. Pod一直崩潰或執行不正常

      可以使用kubectl describe以及kubectl logs排查問題,但是這個一般也不確定

      情況有:健康檢測失敗,OOM情況,或者容器執行生命週期結束

 

4. 叢集雪崩需給Kubelet預留資源

    

https://my.oschina.net/jxcdwangtao/blog/1629059

  • Node Allocatable Resource = Node Capacity - Kube-reserved - system-reserved - eviction-threshold

--eviction-hard=memory.available<1024Mi,nodefs.available<10%,nodefs.inodesFree<5% \

--system-reserved=cpu=0.5,memory=1G \ --kube-reserved=cpu=0.5,memory=1G \

--kube-reserved-cgroup=/system.slice/kubelet.service \

--system-reserved-cgroup=/system.slice \

--enforce-node-allocatable=pods,kube-reserved,system-reserved \