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