Подключение кластера Kubernetes⚓︎
Cloudmaster работает
с кластерами
Yandex Managed Service for Kubernetes .
Содержание
Предварительные требования⚓︎
-
Убедитесь, что вы используете одну из версий Kubernetes: 1.28 - 1.31.
-
Вам потребуются:
-
данные о ценах на CPU, RAM и диск для вашего кластера,
-
права на установку kube-state-metrics, node-exporter и агента VictoriaMetrics в ваш кластер.
-
Основные шаги подключения⚓︎
-
В разделе Мои подключения нажмите на кнопку Новое подключение и затем ― на карточку Кластер Kubernetes.
-
В открывшейся форме введите параметры подключения.
Если в какой-то момент вам потребуется закрыть окно подключения, вы сможете вернуться к редактированию черновика.
-
Нажмите на кнопку Далее. Перейдите на шаг установки и настройки VictoriaMetrics.
-
Ознакомьтесь с инструкцией по настройке kube-state-metrics, node-exporter и VictoriaMetrics. Инструкция продублирована ниже в этой статье.
-
После ознакомления с инструкцией кликните на Скачать k8s-cloudmaster.conf, чтобы получить файл с параметрами кластера.
-
Выполните шаги инструкции и проверьте результат.
-
Кликните Создать. Кнопка станет активной только после скачивания файла k8s-cloudmaster.conf.
-
После завершения работы визарда подключение кластера появится на странице Мои подключения.
Начальный статус кластера Неактивно. Сбор начальных данных займет около 30 минут. Проверьте статус кластера в Мои подключения и данные по затратам в разделе Kubernetes. Рекомендации отобразятся после накопления данных за 7 дней.
Где хранятся данные кластера
Метрики кластера Kubernetes будут отправляться в
Yandex Managed Service for Prometheus по
протоколу
Remote-Write
Установка 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 с помощью команды:
Установка ВМ-агента VictoriaMetrics⚓︎
Агент VictoriaMetrics будет временно хранить и отправлять данные по метрикам в кластере.
Инструкция по установке ВМ-агента VictoriaMetrics⚓︎
-
Настройте 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 с параметрами по умолчанию.
-
Откройте файл k8s-cloudmaster.conf и скопируйте значения.
Далее мы будем редактировать файл 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.
Проверка успешности подключения кластера⚓︎
-
В логах пода ВМ-агента проверьте, что агент обнаружил targets и в логах нет ошибок отправки данных.
-
В интерфейсе ВМ-агента VictoriaMetrics проверьте наличие targets:
Ниже приведена команда для пробрасывания порта пода. Предварительно нужно получить ID пода.
Список и активность по targets будет доступна по адресу http://localhost:8429/targets. Среди targets должны быть:kubectl get pods -n cloudmaster-vm -l app.kubernetes.io/name=victoria-metrics-agent kubectl port-forward pod/vmagent-victoria-metrics-agent-XXXXXXXXX 8429:8429 -n cloudmaster-vmkube-state-metrics,node-exporter,kubernetes-apiservers,kubernetes-nodes,kubernetes-nodes-cadvisor,kubernetes-service-endpoints. -
Проверьте подгрузку данных о
кластерев разделах Cloudmaster:-
информации о
подключениив подразделе Мои подключения , -
затраты по
кластерув разделе Kubernetes
-