Table of Contents |
---|
Deploy metrics-server
K8s를 기본으로 설치하면, 각 node나 pod의 CPU, Memory와 같은 기본적인 지표가 보여지지 않는다.
따라서, 다음과 같이 metrics-server를 설치 한다.
그러고 나면, metrics-server pod
는 master node 포함하여 각 worker node의 Kubelet API를 통해 관련 metrics를 수집한다.
Note |
---|
Dashboard와 마찬가지로 metrics-server master node 內 pod → worker node routing: (O) |
Code Block | ||
---|---|---|
| ||
$ 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 ... nodeSelector: kubernetes.io/os: linux kubernetes.io/arch: "amd64" kubernetes.io/hostname: k8s-01 tolerations: - 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> |
...
해서, 아래와 같이 netbox라고 하는 k8s DaemonSet
을 배포하여 배포하면 위의 curl -k -X Get https://10.0.2.6:10250/stats/summary?only_cpu_and_memory=true: dial tcp 10.0.2.6:10250: connect: no route to host
가 쿼리가 잘 되는지 안 되는지 등, 갖가지 tool로 확인할 수 있다.확인이 용이하다.(이 밖에도 tcpdump가 포함된 container등 문제 해결을 위한 container가 많이 존재한다.)
Code Block | ||
---|---|---|
| ||
# 편의상, metrics-server와 같은 namespace 및 serviceAccount로 지정하였다. # 이렇게 하면, metrics-server가 사용하는 role 및 token을 사용할 수 있다. $ vim netbox.yaml apiVersion: apps/v1 kind: DaemonSet metadata: labels: app: netbox name: netbox namespace: kube-system spec: selector: matchLabels: app: netbox updateStrategy: type: RollingUpdate template: metadata: labels: app: netbox spec: serviceAccountName: metrics-server serviceAccount: metrics-server containers: - image: quay.io/gravitational/netbox:latest imagePullPolicy: Always name: netbox securityContext: runAsUser: 0 terminationGracePeriodSeconds: 30 tolerations: - key: node-role.kubernetes.io/master effect: NoSchedule $ kubectl apply -f netbox.yaml |
...