Deploy metrics-server
K8s를 기본으로 설치하면, 각 node나 pod의 CPU, Memory와 같은 기본적인 지표가 보여지지 않는다.
따라서, 다음과 같이 metrics-server를 설치 한다.
그러고 나면, metrics-server pod
는 master node 포함하여 각 worker node의 Kubelet API를 통해 관련 metrics를 수집한다.
단, metrics-server는 모니터링을 위한 도구로는 사용하기 않기를 공식적으로 권고하고 있으며, 주 용도는 k8s에서 pod auto-scaling에서 사용된다.
$ wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.7/components.yaml && mv components.yaml metrics-server.yaml # Dashboard와 마찬가지로 metrics-server pod는 master node에 상주해야 한다. # 따라서, metrics-server.yaml의 Deployment object 명세에 아래 내용을 추가한다. $ vim metrics-server.yaml ... --- apiVersion: apps/v1 kind: Deployment ... spec: ... containers: - name: metrics-server image: k8s.gcr.io/metrics-server/metrics-server:v0.3.7 imagePullPolicy: IfNotPresent args: - --cert-dir=/tmp - --secure-port=4443 - --kubelet-preferred-address-types=InternalIP # coredns에서는 node의 domain은 관리하지 않는다. 따라서 InternalIP로 지정하도록 한다. - --kubelet-insecure-tls # insecure option도 추가. ... nodeSelector: kubernetes.io/os: linux kubernetes.io/arch: "amd64" kubernetes.io/hostname: k8s-01 # 노드 지정 tolerations: # master node에 안착할 수 있도록 백신 접종. - key: node-role.kubernetes.io/master effect: NoSchedule ... $ kubectl apply -f metrics-server.yaml ... $ kubectl get pod -n kube-system metrics-server-77ffddc74-7z7j4 -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES metrics-server-77ffddc74-7z7j4 1/1 Running 0 15m 10.244.0.6 k8s-01 <none> <none>
아래 그림과 같이 모든 node
내 pod
들의 cpu, memory 그래프가 출력되면 정상이다.
Add Comment