Metrics Server — это компонент, который собирает метрики использования CPU и памяти у подов и узлов через kubelet. Эти данные используются командами вроде kubectl top и необходимы для работы автоскейлеров (HPA/VPA). По умолчанию он не входит в стандартную установку Kubernetes и ставится отдельно.
Устанавливаем Metrics Server
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
Настраиваем для локального кластера
По умолчанию Metrics Server подключается к kubelet по HTTPS с проверкой сертификата.
В локальных кластерах (например, kind, minikube, kubeadm на домашней машине) сертификаты kubelet часто выписаны не на hostname узла, а на его InternalIP. Поэтому проверка не проходит → и нужно добавить опции:
—kubelet-insecure-tls — отключает проверку TLS-сертификата.
—kubelet-preferred-address-types=InternalIP,… — указывает, как искать адреса для подключения.
Редактируем деплоймент:
kubectl edit deployment metrics-server -n kube-system
В секции containers.args добавляем:
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP
Проверяем работу
kubectl top nodes
Если всё настроено правильно, появятся метрики CPU/Memory по узлам.