提升CKA考試效率:精準統(tǒng)計Ready狀態(tài)Node節(jié)點的實用攻略
Kubernetes集群由Master節(jié)點和多個Node節(jié)點組成,Node節(jié)點是集群中的工作單元。每個Node節(jié)點都運行一個Kubelet進程,負責與Master節(jié)點通信,執(zhí)行Pod中的容器。Ready狀態(tài)是指Node節(jié)點是否準備好接收和執(zhí)行工作負載。在大規(guī)模集群中,確保Node節(jié)點保持Ready狀態(tài)至關重要。

那有什么方法監(jiān)控Node節(jié)點狀態(tài)呢?
一、監(jiān)控Node狀態(tài)方法
Kubernetes 云原生集群監(jiān)控主要涉及到如下三類指標:node 物理節(jié)點指標、pod & container 容器資源指標和Kubernetes 云原生集群資源指標。針對這三類指標都有比較成熟的方案,見下圖:

架構圖
1.kubectl命令
使用kubectl命令可以方便地查看Node節(jié)點的Ready狀態(tài)。通過以下命令可以列出所有Node節(jié)點以及它們的Ready狀態(tài):
kubectl get nodes2.Kube-state-metrics
Kube-state-metrics是一個開源的Kubernetes監(jiān)控工具,可以通過Prometheus進行數(shù)據采集。使用Kube-state-metrics,可以輕松獲取Node節(jié)點的Ready狀態(tài)指標,并創(chuàng)建相應的監(jiān)控儀表板。

3.Prometheus監(jiān)控
Prometheus是一種開源監(jiān)控和報警工具,支持Kubernetes集成。通過使用Prometheus進行監(jiān)控,可以定義查詢和報警規(guī)則,確保及時發(fā)現(xiàn)并解決Node節(jié)點Ready狀態(tài)的問題。

在Kubernetes集群中,Node節(jié)點的Ready狀態(tài)對于保持應用程序的可靠性和穩(wěn)定性至關重要。通過使用kubectl命令、Kube-state-metrics和Prometheus等工具,結合自動化監(jiān)控和報警系統(tǒng),可以有效地統(tǒng)計和處理Node節(jié)點的Ready狀態(tài),確保集群的健康運行。在管理K8s集群時,定期檢查Ready狀態(tài)并及時響應任何異常情況,將有助于提高整個集群的可用性。
二、CKA真題
1.真題截圖

2.中文解析
切換 k8s 集群環(huán)境:kubectl config use-context k8sTask:檢查集群中有多少節(jié)點為 Ready 狀態(tài)(不包括被打上 Taint: NoSchedule 的節(jié)點),之后將數(shù)量寫到 /opt/KUSCO0402/kusc00402.txt。
3.做題解答
(1) 切換答題環(huán)境(考試環(huán)境有多個,每道題要在對應的環(huán)境中作答)
kubectl config use-context k8s(2) 獲取Ready的節(jié)點數(shù)量(a)
kubectl get nodes | grep -w Ready | wc -l例如,我們在killercoda模擬環(huán)境上操作如下:
controlplane $ kubectl get nodes | grep Ready | wc -l
2
controlplane $(3) 獲取有污點和沒有調度的節(jié)點數(shù)(b)
kubectl describe nodes | grep Taints | grep -I NoSchedule | wc -l在killercoda模擬環(huán)境上操作如下:
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/ #在考試中不需要創(chuàng)建
controlplane $ touch /opt/KUSC00402/kusc00402.txt #在考試中不需要創(chuàng)建
controlplane $ echo 2 >> /opt/KUSC00402/kusc00402.txt
controlplane $ cat /opt/KUSC00402/kusc00402.txt 






























