Metrics Server в Kubernetes (K8s) — это компонент, который собирает и агрегирует метрики использования ресурсов (таких как CPU и память) от всех подов и узлов в кластере. Он играет важную роль в управлении ресурсами и автоматизации в Kubernetes.
Официальный репозиторий - тут
Мониторинг и алертинг:
Vertical Pod Autoscaler (VPA):
Horizontal Pod Autoscaler (HPA):
Metrics Server можно установить либо непосредственно из манифеста YAML, либо через официальный чарт Helm. Чтобы установить последнюю версию Metrics Server с параметромreplicas=1
, выполните следующую команду:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
Чтобы установить последнюю версию Metrics Server в режиме высокой доступности из манифеста high-availability.yaml , выполните следующую команду.
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/high-availability-1.21+.yaml
После установки будет ошибка с TLS, из-за которой поды не смогут получить статус Ready:
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system metrics-server-7c55755c5-7qsjb 0/1 Running 0 83s
kube-system metrics-server-7c55755c5-rlmsf 0/1 Running 0 83s
Чтобы это исправить нужно отключить обязательное требование TLS при подключении. Для этого выполните:
kubectl edit deploy metrics-server -n kube-system
И добавьте строку - --kubelet-insecure-tls
как показано:
containers:
- args:
- --cert-dir=/tmp
- --secure-port=10250
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
- --kubelet-insecure-tls # Это нужно добавить
И через пару минут поды поднимутся.
Проверка метрик:
kubectl top nodes
kubectl top pods -A