Sunday, January 19, 2025

[Kubernetes 15] Metric trong Kubernetes

-

Metrics server trong kubernetes (metrics server) giám sát về tài nguyên sử dụng trên cluster, cung cấp các API để các thành phần khác truy vấn đến biết được và mức độ sử dụng tài nguyên (CPU, Memory) của Pod, Node … Cần có Metric Server để HPA hoạt động chính xác.

Vào github của metrics server chọn phiên bản cần triển khai rồi download nó về, lưu ý là phiên bản của metrics server phải phù hợp với phiên bản Kubernetes nhé.

Mình đang sử dụng Kubernetes phiên bản 1.23.x nên mình chọn metrics server phiên bản 3.8.2.

Giờ ta download file components.yaml về.

$ wget -O components.yaml https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.4.0/components.yaml

Khi triển khai metrics-server thì hệ thống mặc định sẽ yêu cầu Kubelet certificate nhưng nếu chúng ta chưa có certificate thì có thể tạm thời bỏ qua nó bằng cách mở file components.yaml, tìm đến spec.template.spec[0].args và thêm trường –kubelet-insecure-tls như hình dưới

Triển khai file components.yaml

$ kubectl apply -f ./components.yaml 
serviceaccount/metrics-server created
clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created
clusterrole.rbac.authorization.k8s.io/system:metrics-server created
rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created
clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator created
clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created
service/metrics-server created
deployment.apps/metrics-server created
apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created

Khi triển khai xong, ta chờ 1 lát để quá trình triển khai diễn ra, sau đó dùng lệnh dưới để xác nhận lại.

root@k8s-standalone:/home# kubectl get po -n kube-system -l 'k8s-app=metrics-server'
NAME                              READY   STATUS    RESTARTS   AGE
metrics-server-7cf8b65d65-h7ngp   1/1     Running   0          58s

Sau khi metrics server triển khai thành công chúng ta thử kiểm tra xem nó hoạt động ổn không bằng 1 lệnh kiểm tra performance của node như dưới.

root@k8s-standalone:/home# kubectl top node -n kube-system
NAME             CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
k8s-standalone   195m         4%     1544Mi          19% 

Hoặc performance của các pod

root@k8s-standalone:/home# kubectl top pod -n kube-system
NAME                                       CPU(cores)   MEMORY(bytes)   
calico-kube-controllers-7f76d48f74-cssxd   3m           16Mi            
calico-node-jlr78                          34m          87Mi            
coredns-64897985d-7gmwr                    2m           12Mi            
coredns-64897985d-l2bqh                    2m           12Mi            
etcd-k8s-standalone                        13m          37Mi            
kube-apiserver-k8s-standalone              55m          316Mi           
kube-controller-manager-k8s-standalone     12m          47Mi            
kube-proxy-zwf7s                           1m           12Mi            
kube-scheduler-k8s-standalone              3m           17Mi            
metrics-server-7cf8b65d65-h7ngp            4m           15Mi

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories