В этой статье:
Установка сервиса метрик подов
Установка приложения Prometheus
Для кластера Kubernetes установите следующие дополнительные компоненты на первом главном узле:
приложение Prometheus для хранения метрик подов;
приложение Grafana для мониторинга компонентов Kubernetes;
Для установки сервиса метрик подов:
Выполните команды:
helm repo add metrics-server
https://kubernetes-sigs.github.io/metrics-server/
helm upgrade --install metrics-server metrics-server/metrics-server
-n monitoring --create-namespace
Уберите проверку tls, если не используется сертификат:
Выполните команду:
kubectl edit deployment metrics-server -n monitoring
Добавьте строку в секцию spec containers args:
- --kubelet-insecure-tls
kubectl get pods -n monitoring
После выполнения действий на главном узле будет установлен сервис метрик подов.
Для установки приложения Prometheus:
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm upgrade --install prometheus prometheus-community/kube-prometheus-stack
\
-n monitoring \
--create-namespace \
--version 55.0.0
После выполнения действий на главном узле будет установлено приложение Prometheus.
Для установки приложения Grafana:
Создайте ingress-правило для приложения Grafana. Для этого создайте файл grafana-ingress.yaml с содержимым:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: grafana-dashboard
namespace: monitoring
spec:
ingressClassName: nginx
rules:
- host: <хост>
http:
paths:
- path: /
pathType:
ImplementationSpecific
backend:
service:
name:
prometheus-grafana
port:
number:
80
В подстановке <хост> укажите IP-адрес или DNS-имя, по которому доступно приложение Grafana. Убедитесь, что хост соответствует IP-адресам, указанным в файле metalb-config.yaml при установке компонента metallb. Все хосты, с которыми взаимодействует Kubernetes, должны резолвиться в эти IP-адреса.
Примените ingress-правило:
kubectl apply -f grafana-ingress.yaml
После выполнения действий при переходе по указанному хосту на главном узле будет доступно приложение Grafana.
Для установки веб-интерфейса кластера:
Установите компонент веб-интерфейса:
helm repo add kubernetes-dashboard
https://kubernetes.github.io/dashboard/
helm repo update
helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard
--create-namespace --namespace kubernetes-dashboard
Создайте ingress-правило для компонента веб-интерфейса. Для этого создайте файл ingress-dashboard.yaml с содержимым:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: kubernetes-dashboard
annotations:
nginx.ingress.kubernetes.io/backend-protocol: HTTPS
spec:
ingressClassName: nginx
rules:
- host: <хост>
http:
paths:
- path: /
pathType:
ImplementationSpecific
backend:
service:
name:
kubernetes-dashboard-kong-proxy
port:
number:
443
В подстановке <хост> укажите IP-адрес или DNS-имя, по которому доступно приложение Grafana. Убедитесь, что хост соответствует IP-адресам, указанным в файле metalb-config.yaml при установке компонента metallb. Все хосты, с которыми взаимодействует Kubernetes, должны резолвиться в эти IP-адреса.
Примените ingress-правило:
kubectl apply -f ingress-dashboard.yaml -n kubernetes-dashboard
После выполнения действий при переходе по указанному хосту на главном узле будет доступен веб-интерфейс кластера. Для доступа требуется специальный ключ, который генерируется в процессе создания учётной записи администратора кластера.
Для создания учётной записи администратора кластера:
Создайте файл cluster-admin-service-account.yaml с содержимым:
apiVersion: v1
kind: ServiceAccount
metadata:
name: cluster-admin
namespace: kube-system
Создайте администратора на основе настроек, заданных в файле cluster-admin-service-account.yaml:
kubectl apply -f cluster-admin-service-account.yaml
Раздайте права администратору:
kubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin --serviceaccount=kube-system:cluster-admin
Создайте специальный ключ:
kubectl -n kube-system create token cluster-admin
После выполнения действий на главном узле будет создана учётная запись администратора. Специальный ключ используется для доступа к веб-интерфейсу кластера.
Далее перейдите к установке локального хранилища Docker-образов.
См. также:
Подготовка и развёртывание отказоустойчивого кластера на основе Kubernetes | Установка локального хранилища Docker-образов