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/