4

提升CKA考试效率:精准统计Ready状态Node节点的实用攻略

 6 months ago
source link: https://www.51cto.com/article/782979.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Kubernetes集群由Master节点和多个Node节点组成,Node节点是集群中的工作单元。每个Node节点都运行一个Kubelet进程,负责与Master节点通信,执行Pod中的容器。Ready状态是指Node节点是否准备好接收和执行工作负载。在大规模集群中,确保Node节点保持Ready状态至关重要。

c28adca522bc870e1ce78902a45aa83229663f.png

那有什么方法监控Node节点状态呢?

一、监控Node状态方法

Kubernetes 云原生集群监控主要涉及到如下三类指标:node 物理节点指标、pod & container 容器资源指标和Kubernetes 云原生集群资源指标。针对这三类指标都有比较成熟的方案,见下图:

475a6d7779674ebe5f73943f2bac0e132188ad.jpg

1.kubectl命令

使用kubectl命令可以方便地查看Node节点的Ready状态。通过以下命令可以列出所有Node节点以及它们的Ready状态:

kubectl get nodes

2.Kube-state-metrics

Kube-state-metrics是一个开源的Kubernetes监控工具,可以通过Prometheus进行数据采集。使用Kube-state-metrics,可以轻松获取Node节点的Ready状态指标,并创建相应的监控仪表板。

e476df926078e5542d41346f6795ee9c5efb7e.png

3.Prometheus监控

Prometheus是一种开源监控和报警工具,支持Kubernetes集成。通过使用Prometheus进行监控,可以定义查询和报警规则,确保及时发现并解决Node节点Ready状态的问题。

b10783213c3a9f390e8126d515e3032134749e.png

在Kubernetes集群中,Node节点的Ready状态对于保持应用程序的可靠性和稳定性至关重要。通过使用kubectl命令、Kube-state-metrics和Prometheus等工具,结合自动化监控和报警系统,可以有效地统计和处理Node节点的Ready状态,确保集群的健康运行。在管理K8s集群时,定期检查Ready状态并及时响应任何异常情况,将有助于提高整个集群的可用性。

二、CKA真题

1.真题截图

f27c17b11f66902e9f188899676225611762a8.png

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 

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK