提升CKA考試效率:精準統計Ready狀態Node節點的實用攻略
Kubernetes集群由Master節點和多個Node節點組成,Node節點是集群中的工作單元。每個Node節點都運行一個Kubelet進程,負責與Master節點通信,執行Pod中的容器。Ready狀態是指Node節點是否準備好接收和執行工作負載。在大規模集群中,確保Node節點保持Ready狀態至關重要。
那有什么方法監控Node節點狀態呢?
一、監控Node狀態方法
Kubernetes 云原生集群監控主要涉及到如下三類指標:node 物理節點指標、pod & container 容器資源指標和Kubernetes 云原生集群資源指標。針對這三類指標都有比較成熟的方案,見下圖:
架構圖
1.kubectl命令
使用kubectl命令可以方便地查看Node節點的Ready狀態。通過以下命令可以列出所有Node節點以及它們的Ready狀態:
kubectl get nodes
2.Kube-state-metrics
Kube-state-metrics是一個開源的Kubernetes監控工具,可以通過Prometheus進行數據采集。使用Kube-state-metrics,可以輕松獲取Node節點的Ready狀態指標,并創建相應的監控儀表板。
3.Prometheus監控
Prometheus是一種開源監控和報警工具,支持Kubernetes集成。通過使用Prometheus進行監控,可以定義查詢和報警規則,確保及時發現并解決Node節點Ready狀態的問題。
在Kubernetes集群中,Node節點的Ready狀態對于保持應用程序的可靠性和穩定性至關重要。通過使用kubectl命令、Kube-state-metrics和Prometheus等工具,結合自動化監控和報警系統,可以有效地統計和處理Node節點的Ready狀態,確保集群的健康運行。在管理K8s集群時,定期檢查Ready狀態并及時響應任何異常情況,將有助于提高整個集群的可用性。
二、CKA真題
1.真題截圖
2.中文解析
切換 k8s 集群環境:kubectl config use-context k8sTask:檢查集群中有多少節點為 Ready 狀態(不包括被打上 Taint: NoSchedule 的節點),之后將數量寫到 /opt/KUSCO0402/kusc00402.txt。
3.做題解答
(1) 切換答題環境(考試環境有多個,每道題要在對應的環境中作答)
kubectl config use-context k8s
(2) 獲取Ready的節點數量(a)
kubectl get nodes | grep -w Ready | wc -l
例如,我們在killercoda模擬環境上操作如下:
controlplane $ kubectl get nodes | grep Ready | wc -l
2
controlplane $
(3) 獲取有污點和沒有調度的節點數(b)
kubectl describe nodes | grep Taints | grep -I NoSchedule | wc -l
在killercoda模擬環境上操作如下:
controlplane $ kubectl describe nodes | grep Taints | grep -I NoSchedule | wc -l
0
controlplane $
(4) 將a-b的結果寫入目標文件
echo 1 > /opt/KUSC00402/kusc00402.txt
例如在killercoda上操作的結果如下
controlplane $ mkdir -p /opt/KUSC00402/ #在考試中不需要創建
controlplane $ touch /opt/KUSC00402/kusc00402.txt #在考試中不需要創建
controlplane $ echo 2 >> /opt/KUSC00402/kusc00402.txt
controlplane $ cat /opt/KUSC00402/kusc00402.txt