Làm sao để giám sát mức tiêu thụ tài nguyên trên Kubernetes? Bạn muốn biết có bao nhiêu Node hoạt động tốt, cũng như các chỉ số khác như CPU, memory,… Trong bài viết này, mình giới thiệu về các khái niệm và công cụ để theo dõi hiệu suất của Kubernetes cluste.
Xem thêm:
Mục tiêu giám sát
- Mục tiêu: Giám sát cả node và pod.
- Cấp độ nút: Số lượng nút, trạng thái (healthy/unhealthy), mức độ sử dụng CPU, bộ nhớ, mạng và đĩa.
- Cấp độ pod: Số lượng pod trong k8s, mức độ sử dụng CPU và bộ nhớ của từng pod.
Các giải pháp giám sát
- Giải pháp mã nguồn mở: Metrics Server, Prometheus, Elastic Stack.
- Giải pháp thương mại: Datadog, Dynatrace.
Cách thức Metrics Server hoạt động
- Kubelet: Agent chạy trên mỗi nút, nhận lệnh từ API master server và chạy pod.
- cAdvisor (Container Advisor): Thành phần của Kubelet, thu thập chỉ số hiệu suất từ pod.
- Metrics Server: Lấy chỉ số từ các nút thông qua kubelet, tổng hợp và lưu trữ trong bộ nhớ.
Cài đặt và sử dụng Metrics Server:
Minikube: Sử dụng lệnh minikube addons enable metrics-server.
Môi trường khác: Tải xuống và triển khai Metrics Server từ kho lưu trữ GitHub.
controlplane ~ ➜ kubectl get pods NAME READY STATUS RESTARTS AGE elephant 1/1 Running 0 11s lion 1/1 Running 0 11s rabbit 1/1 Running 0 11s controlplane ~ ➜ git clone https://github.com/kodekloudhub/kubernetes-metrics-server.git Cloning into 'kubernetes-metrics-server'... remote: Enumerating objects: 31, done. remote: Counting objects: 100% (19/19), done. remote: Compressing objects: 100% (19/19), done. remote: Total 31 (delta 8), reused 0 (delta 0), pack-reused 12 Receiving objects: 100% (31/31), 8.08 KiB | 8.08 MiB/s, done. Resolving deltas: 100% (10/10), done. controlplane ~ ➜ ls kubernetes-metrics-server sample.yaml controlplane ~ ➜ kubectl create -f kubernetes-metrics-server clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator created rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created serviceaccount/metrics-server created deployment.apps/metrics-server created service/metrics-server created clusterrole.rbac.authorization.k8s.io/system:metrics-server created clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created controlplane ~ ➜ kubectl top node NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% controlplane 256m 0% 1112Mi 0% node01 102m 0% 275Mi 0%
Xem chỉ số:
Sử dụng lệnh kubectl top node để xem mức độ sử dụng CPU và bộ nhớ của nút.
Sử dụng lệnh kubectl top pod để xem chỉ số hiệu suất của pod.
Hy vọng bài viết này đã cung cấp cái nhìn tổng quan về việc giám sát Kubernetes, tập trung vào Metrics Server như một giải pháp đơn giản để thu thập và hiển thị các chỉ số hiệu suất cơ bản. Cảm ơn bạn đã tham khảo kubernetes cơ bản trên ttnguyen.net.
Bài viết liên quan: