Подключение кластера Kubernetes⚓︎
Cloudmaster работает
с кластерами
Yandex Managed Service for Kubernetes .
Содержание
Подготовка к подключению⚓︎
-
Убедитесь, что вы используете одну из версий Kubernetes: 1.28 - 1.31.
-
Авторизуйтесь в Cloudmaster (см. статью Авторизация в платформе Cloudmaster) и перейдите в подраздел Мои подключения боковой панели.
-
Нажмите на кнопку Новое подключение и затем ― на карточку Кластер Kubernetes.
-
В открывшейся форме создания
подключения
нажмите на кнопку Подключить. -
В открывшемся чате с менеджером Cloudmaster предоставьте данные
кластера
и цены на его ресурсы.
Запрашиваемые данные
-
Параметры
кластера
: -
провайдер, у которого вы развернули
кластер
, -
версия Kubernetes,
Cloudmaster работает с версиями Managed Service for Kubernetes, которые поддерживает Yandex Cloud: 1.28 - 1.31.
-
установлен ли Prometheus.
-
Актуальная цена* на ресурсы нод
кластера
в рублях:-
цена за 1 CPU в час,
-
цена за 1 ГБ RAM в час,
-
цена за 1 ГБ хранилища в час.
* Цена хранится в биллинг-файле или счете провайдера.
-
Поддержка настраивает права доступа ВМ-агента⚓︎
Безопасность в работе Cloudmaster с данными кластера
Cloudmaster собирает данные о затратах в кластерах
Kubernetes с помощью
сервиса
Yandex Managed Service for Prometheus по
протоколу
Remote-Write
-
Дождитесь настройки прав доступа к сервису Yandex Managed Service for Prometheus для ВМ-агента.
По окончанию настройки прав поддержка Cloudmaster отправит вам конфигурационный файл Generated_values.yaml с предустановленными параметрами.
-
Скачайте полученный файл.
-
Приступите к следующему шагу.
Установка kube-state-metrics⚓︎
Сервис kube-state-metrics — сервис, который прослушивает API-сервер Kubernetes и генерирует метрики о состоянии различных объектов Kubernetes.
Если у вас уже установлен kube-state-metrics, проверьте активные коллекторы по списку ниже и перейдите к следующему шагу.
-
Добавьте репозиторий с Helm-чартами Prometheus и получите значения по умолчанию для kube-state-metrics с помощью команд:
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update helm show values prometheus-community/kube-state-metrics > ksm-values.yaml
Вы получите файл ksm-values.yaml с параметрами kube-state-metrics по умолчанию.
-
В полученном файле ksm-values.yaml отредактируйте блок collectors, закомментируйте все коллекторы, кроме списка ниже.
Блок должен выглядеть так:
-
Установите сервис kube-state-metrics в
кластер
с помощью команды: -
Приступите к следующему шагу.
Уcтановка node-exporter⚓︎
Сервис node-exporter — это инструмент (или "экспортер" метрик), который собирает системные метрики с серверов (узлов) и предоставляет их в формате, понятном для Prometheus или Victoria Metrics. В Kubernetes node-exporter разворачивается как DaemonSet. Это гарантирует, что на каждом узле кластера будет работать по одному экземпляру node-exporter.
-
Создайте файл node-exporter-daemonset.yaml со следующим содержанием.
apiVersion: apps/v1 kind: DaemonSet metadata: name: node-exporter namespace: cloudmaster-vm labels: app: node-exporter spec: selector: matchLabels: app: node-exporter template: metadata: labels: app: node-exporter spec: hostNetwork: true hostPID: true containers: - name: node-exporter image: quay.io/prometheus/node-exporter:v1.6.1 ports: - containerPort: 9100 hostPort: 9100 protocol: TCP volumeMounts: - name: proc mountPath: /host/proc readOnly: true - name: sys mountPath: /host/sys readOnly: true args: - '--path.procfs=/host/proc' - '--path.sysfs=/host/sys' volumes: - name: proc hostPath: path: /proc - name: sys hostPath: path: /sys
-
Установите node-exporter с помощью команды:
Уcтановка ВМ-агента VictoriaMetrics⚓︎
Агент VictoriaMetrics будет временно хранить и отправлять данные по метрикам в кластере
.
Основные отслеживаемые ресурсы
-
CPU:
-
container_cpu_usage_seconds_total
— usage -
kube_pod_container_resource_requests
, где {resource="cpu"}
-
-
RAM:
-
container_memory_usage_bytes
— usage, но учитывает кешированную память -
container_memory_working_set_bytes
— usage, только фактическое потребление, рекомендуется использовать -
kube_pod_container_resource_requests
, где {resource="memory"}
-
-
диск:
-
kube_pod_spec_volumes_persistentvolumeclaims_info
— нужен для определения, какие pvc примонтированы к поду -
kubelet_volume_stats_capacity_bytes
— размер pv
-
-
метрики о состоянии инфраструктуры:
-
cadvisor_version_info
-
kubernetes_build_info
-
prometheus_build_info
-
kube_pod_container_info
-
container_scrape_error
-
kubelet_running_pods
-
kube_node_status_condition
-
kube_pod_status_phase
-
Инструкция по установке ВМ-агента VictroiaMetrics⚓︎
-
Настройте helm на подключение к
кластеру
Kubernetes. -
Добавьте helm-репозиторий с помощью команд:
helm repo add victoria-metrics https://victoriametrics.github.io/helm-charts/ helm repo update helm show values victoria-metrics/victoria-metrics-agent > vma-values.yaml
Вы получите файл vma-values.yaml с параметрами по умолчанию.
-
Откройте файл Generated_values.yaml с предустановленными под ваш
кластер
параметрами, которым поделилась поддержка Cloudmaster, и скопируйте значения.Далее мы будем редактировать файл vma-values.yaml . Важно! Удалять из файла ничего не нужно, только добавлять и менять.
-
В файле vma-values.yaml измените следующие значения:
-
API-ключ,
-
ID
кластера
, -
список метрик.
Фрагмент файла для редактирования:
remoteWrite: - url: "https://metrics.cloudmaster.ru/metrics/write" forcePromProto: true headers: "Authorization: Api-Key ЗНАЧЕНИЕ_API_КЛЮЧА" urlRelabelConfig: - action: replace replacement: 'ID_КЛАСТЕРА' target_label: cluster - action: keep source_labels: ['__name__'] regex: 'kube_persistentvolumeclaim_resource_requests_storage_bytes|kube_pod_owner|kube_replicaset_owner|container_fs_limit_bytes|kube_persistentvolume_capacity_bytes|node_filesystem_size_bytes|kube_pod_container_resource_requests|kube_pod_status_phase|kube_node_status_condition|||container_cpu_usage_seconds_total|container_memory_usage_bytes|container_memory_working_set_bytes|kube_pod_container_info|kube_pod_spec_volumes_persistentvolumeclaims_info|kubelet_volume_stats_capacity_bytes|container_scrape_error|kubelet_running_pods|cadvisor_version_info|kubernetes_build_info|prometheus_build_info'
-
-
В блоке config файла vma-values.yaml только ДОБАВЛЯЕМ И ИЗМЕНЯЕМ (значения по умолчанию сохраняем, ничего удалять не нужно).
Измените scrape_interval на 60, добавьте в scrape_configs джобы: kube-state-metrics и node-exporter:
config: global: scrape_interval: 60s scrape_configs: - job_name: kube-state-metrics kubernetes_sd_configs: - role: pod - role: node relabel_configs: - source_labels: [__meta_kubernetes_pod_container_name] regex: kube-state-metrics action: keep - source_labels: [__meta_kubernetes_pod_container_port_number] regex: "8080" action: keep - job_name: node-exporter kubernetes_sd_configs: - role: node relabel_configs: - source_labels: [__address__] regex: '(.*):10250' replacement: '${1}:9100' target_label: __address__
-
Запустите установку ВМ-агента.
По завершению установки ВМ-агента перейдите к проверке успешности подключения кластера
к Cloudmaster.
Cloudmaster хранит данные пользователей в Yandex Managed Service for Prometheus в зашифрованном виде.
Проверка успешности подключения кластера⚓︎
-
В логах пода ВМ-агента проверьте, что агент обнаружил targets и в логах нет ошибок отправки данных.
-
В интерфейсе ВМ-агента VictoriaMetrics проверьте наличие targets:
Ниже приведена команда для пробрасывания порта пода. Предварительно нужно получить id пода.
Список и активность по targets будет доступна по адресу http://localhost:8429/targets. Среди targets должны быть:kube-state-metrics
,node-exporter
,kubernetes-apiservers
,kubernetes-nodes
,kubernetes-nodes-cadvisor
,kubernetes-service-endpoints
. -
Проверьте подгрузку данных о
кластере
в разделах Cloudmaster:-
информации о
подключении
в подразделе Мои подключения , -
затраты по
кластеру
в разделе Kubernetes
-