☸️ Kubernetes metrics | Error from server (ServiceUnavailable)

by itisgood

Вступление

Для запуска команды kubectl top необходимы метрики Kubernetes.
Сервер метрик поможет нам узнать об использовании ресурсов подов и хостов.
При попытке настроить сервер метрик мы могли столкнуться с несколькими проблемами.
Для дальнейшего использования это было задокументировано, что может быть полезно для тех, кто сталкивается с подобными проблемами.
До сих пор я использовал старую версию метрики. Пора обновить.

Установка последней версии  Metrics server

Последние манифесты метрик Kubernetes можно скачать отсюда, на момент начала обновления до последней версии os v0.4.2.

Думал, проблемы были бы исправлены в последней версии, и они все еще существуют.

Я использовал последнюю версию и до сих пор сталкиваюсь с некоторыми проблемами.

$ kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.4.1/components.yaml
Вывод:
$ kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.4.1/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

Исправление ошибок метрик Kubernetes для подов

В этом руководстве будут рассмотрены небольшие исправления.
Даже установка последней версии выдает ошибку metric not available 
Заменим:
    spec:
      containers:
      - args:
        - --cert-dir=/tmp
        - --secure-port=4443
На:
    spec:
      containers:
      - args:
        - --cert-dir=/tmp
        - --secure-port=4443
        - --kubelet-insecure-tls=true
        - --kubelet-preferred-address-types=InternalIP
Сохраните и выйдите из деплоймента с помощью wq!
kubectl edit deployments.apps -n kube-system metrics-server deployment.apps/metrics-server edited
kubectl top pods

NAME                         CPU(cores)   MEMORY(bytes)   

apacheweb-5c8fcdd556-hq8mz   1m           6Mi             

apacheweb-5c8fcdd556-mxmc2   1m           6Mi             

apacheweb-5c8fcdd556-rlvhn   1m           6Mi             

apacheweb-5c8fcdd556-x7vr7   1m           6Mi             

apacheweb-5c8fcdd556-zsvkp   1m           6Mi             

somepod                      0m           2Mi
kubectl top nodes

NAME     CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%

k8nod1   163m         8%     742Mi           9%

k8mas1   <unknown>                           <unknown>               <unknown>               <unknown>

k8nod2   <unknown>                           <unknown>               <unknown>               <unknown>
Еще раз отредактируйте deployment метрик Kubernetes в пространстве имен kube-system.
$ kubectl edit deployments.apps -n kube-system metrics-server
Добавьте это под политикой DNS или в конец раздела контейнера над политикой перезапуска.

Заключение

Завершить исправление проблемы с метриками Kubernetes в недавно развернутом кластере Kubernetes или в существующем кластере проще, отредактировав файлы yaml депйломентов.

 

You may also like

Leave a Comment