티스토리 뷰

반응형

 

 

k8s metrics-server를 설치하고 적용 했는데 running 되지 않은 상태에서 막힌다면 다음을 해보시면 좋을 것 같습니다.

k8s metrics-server 설치

Metric-server를 설치하기 위해서는 아래 레파지토리에서 릴리즈 항목을 확인한 후 설치하면됩니다.

https://github.com/kubernetes-sigs/metrics-server

 

GitHub - kubernetes-sigs/metrics-server: Scalable and efficient source of container resource metrics for Kubernetes built-in aut

Scalable and efficient source of container resource metrics for Kubernetes built-in autoscaling pipelines. - kubernetes-sigs/metrics-server

github.com

 

아래 명령어는 릴리즈 항목에 들어가면 확인할 수 있는데 설치하고자 하는 환경에서 실행합니다.

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.7.1/components.yaml

 

Readiness probe failed: HTTP probe failed with statuscode: 500

 

kubectl top 명령어는 metrics-server의 기본 명령어 입니다.

그런데 아래와 같이 API를 사용할 수 없다고 나오면 어디를 체크해야할지 알기 힘든데요.

> kubectl top pod
error: Metrics API not available

 

그래서 다음 명령어를 처보면 Metrics Server가 설치는 되었지만 실행이 안된 것을 확인할 수 있습니다.

> kubectl get po -n kube-system
NAME                               READY   STATUS    RESTARTS       AGE
coredns-7db6d8ff4d-dr9vz           1/1     Running   0              5d8h
coredns-7db6d8ff4d-t2824           1/1     Running   0              5d8h
etcd-minikube                      1/1     Running   0              5d8h
kube-apiserver-minikube            1/1     Running   0              5d8h
kube-controller-manager-minikube   1/1     Running   0              5d8h
kube-proxy-sr2m6                   1/1     Running   0              5d8h
kube-scheduler-minikube            1/1     Running   0              5d8h
metrics-server-7ffbc6d68-g8clp     0/1     Running   0              3m21s
storage-provisioner                1/1     Running   1 (5d8h ago)   5d8h

 

왜 metrics-server가 실행안되는지 확인하려면 아래 명령어를 실행합니다.

> kubectl describe po -n kube-system metrics-server-7ffbc6d68-g8clp
...
...
...
Events:
  Type     Reason     Age                     From               Message
  ----     ------     ----                    ----               -------
  Normal   Scheduled  9m6s                    default-scheduler  Successfully assigned kube-system/metrics-server-7ffbc6d68-g8clp to minikube
  Normal   Pulling    9m5s                    kubelet            Pulling image "registry.k8s.io/metrics-server/metrics-server:v0.7.1"
  Normal   Pulled     9m                      kubelet            Successfully pulled image "registry.k8s.io/metrics-server/metrics-server:v0.7.1" in 5.648s (5.648s including waiting). Image size: 66896932 bytes.
  Normal   Created    8m59s                   kubelet            Created container metrics-server
  Normal   Started    8m59s                   kubelet            Started container metrics-server
  Warning  Unhealthy  3m56s (x32 over 8m36s)  kubelet            Readiness probe failed: HTTP probe failed with statuscode: 500

 

위와 같이 500 코드로 에러가 발생한다면 다음 커맨드를 추가 해주세요.

> kubectl edit deploy -n kube-system metrics-server

 

아래 항목에 맞춰서 추가해줍니다.

vi 에디터 다루 듯이  i를 누르고 "- --kubelet-insecure-tls" 를 추가 한뒤 wq를 눌러 저장합니다. 

    spec:
      containers:
      - args:
        - --cert-dir=/tmp
        - --secure-port=10250
        - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
        - --kubelet-use-node-status-port
        - --metric-resolution=15s
        - --kubelet-insecure-tls # 추가 항목
반응형
댓글