LAB-16:监控Pod度量指标
LAB-16:监控Pod度量指标
LAB 概述
找出具有标签 name=cpu-user 的 Pod,并过滤出使用 CPU 最高的 Pod,然后把它的名字写在已经存在的 /opt/KUTR00401/KUTR00401.txt 文件里(注意他没有说指定 namespace。所以需要使用 -A 指定所以 namespace)
LAB 预配
# 配置 metrics-server
# 1、下载 yaml 文件
user1@k8s-master:~/cka-2022-05-01/16$ wget https://github.com/kubernetes-sigs/metrics-server/releases/download/metrics-server-helm-chart-3.8.2/components.yaml
# 2、修改编码 yaml 文件。增加如下命令
user1@k8s-master:~/cka-2022-05-01/16$ vim components.yaml
......
kind: Deployment
spec:
spec:
containers:
- args:
- --kubelet-insecure-tls
# 3、修改 api-server 的yaml 文件。# 新版本好像不修改也可以
user1@k8s-master:~$ sudo vim /etc/kubernetes/manifests/kube-apiserver.yaml
......
spec:
containers:
- command
- --enable-aggregator-routing=true
# 4、创建 metrics-server,使用 yaml 文件
user1@k8s-master:~/cka-2022-05-01/16$ kubectl apply -f components.yaml
# 5、查看 metrics-server 的 deployments
user1@k8s-master:~$ kubectl get deployments.apps -n kube-system metrics-server
NAME READY UP-TO-DATE AVAILABLE AGE
metrics-server 1/1 1 1 28s
# 6、查看 metrics-server 的 pod
user1@k8s-master:~$ kubectl get pod -n kube-system metrics-server-5f5f46797c-l9vs8
NAME READY STATUS RESTARTS AGE
metrics-server-5f5f46797c-l9vs8 1/1 Running 0 57s
# 7、查看api是否已添加metrics。
user1@k8s-master:~$ kubectl api-versions | grep metrics
metrics.k8s.io/v1beta1
# 8、监控pod的资源信息
user1@k8s-master:~$ kubectl top nodes
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
k8s-master 208m 5% 2218Mi 58%
k8s-node-1 65m 3% 1727Mi 45%
k8s-node-2 100m 5% 1857Mi 48%
k8s-node-3 107m 5% 1808Mi 47%
# 编写一个 pod 资源清单,标签为 name=cpu-user
user1@k8s-master:~/cka-2022-05-01/16$ cat cpu-pod.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: cpu-pod
spec:
replicas: 2
selector:
matchLabels:
name: cpu-user
template:
metadata:
labels:
name: cpu-user
spec:
containers:
- name: nginx
image: nginx:1.18.0
imagePullPolicy: IfNotPresent
# 创建 pod 资源
user1@k8s-master:~/cka-2022-05-01/16$ kubectl apply -f cpu-pod.yaml
# 查看标签为 name=cpu-user 的 pod
user1@k8s-master:~$ kubectl get pod -l name=cpu-user -A
NAMESPACE NAME READY STATUS RESTARTS AGE
default cpu-pod-7bfb667b98-7sjxd 1/1 Running 1 (28h ago) 41h
default cpu-pod-7bfb667b98-c6ts2 1/1 Running 1 (28h ago) 41h
# 创建目录/opt/KUTR00401
user1@k8s-master:~$ sudo mkdir /opt/KUTR00401
LAB 答案
# 切换 content $ kubectl config use-context k8s # 找 CPU 资源消耗最大的那个 pod,加上--sort-by='cpu'进行排序 $ kubectl top pod -l name=cpu-user -A --sort-by='cpu' NAMESPACE NAME CPU(cores) MEMORY(bytes) default cpu-pod-7bfb667b98-7sjxd 0m 3Mi default cpu-pod-7bfb667b98-c6ts2 0m 3Mi # 将 CPU 资源消耗最大的那个 pod 名称写入指定文件 $ sudo sh -c 'echo "POD_NAME" >>/opt/KUTR00401/KUTR00401.txt'
LAB 验证
# 无需验证
参考资料
- https://v1-22.docs.kubernetes.io/docs/tasks/debug-application-cluster/resource-metrics-pipeline/

浙公网安备 33010602011771号