Перейти к содержанию

Подключение кластера Kubernetes⚓︎

Cloudmaster работает с кластерами Yandex Managed Service for Kubernetes

Содержание

Предварительные требования⚓︎

  1. Вы используете одну из версий Kubernetes: 1.28 - 1.31.

  2. Вы согласовали параметры кластера с менеджером Cloudmaster через чат продукта.

Отправка запроса менеджеру Cloudmaster⚓︎

  1. Авторизуйтесь в Cloudmaster (см. статью Авторизация в платформе Cloudmaster) и перейдите в подраздел Мои подключения боковой панели.

  2. Нажмите на кнопку Новое подключение и затем ― на карточку Кластер Kubernetes.

  3. В открывшейся форме создания подключения нажмите на кнопку Подключить.

  4. В открывшемся чате с менеджером Cloudmaster предоставьте данные кластера и цены на его ресурсы.

    Запрашиваемые данные
    • Параметры кластера:

      • провайдер, у которого вы развернули кластер,

      • версия Kubernetes,

        Cloudmaster работает с версиями Managed Service for Kubernetes, которые поддерживает Yandex Cloud: 1.28 - 1.31.

      • установлен ли Prometheus.

    • Актуальная цена* на ресурсы нод кластера:

      • цена за 1 CPU,

      • цена за 1 ГБ RAM,

      • цена за 1 ГБ хранилища.

      * Цена хранится в биллинг-файле или счете провайдера.

    Менеджер согласует с поддержкой, можно ли с параметрами вашего кластера подключиться к Cloudmaster.

  5. Дождитесь ответа менеджера о возможности создания подключения.

  6. Приступите к следующему шагу.

Настройка прав доступа ВМ-агента к Yandex Managed Service for Prometheus⚓︎

Безопасность в работе Cloudmaster с данными кластера

Cloudmaster собирает данные о затратах в кластерах Kubernetes с помощью сервиса Yandex Managed Service for Prometheus по протоколу Remote-Write

Как настроить сбор данных из кластера в Cloudmaster

Для сбора затрат по метрикам вашего кластера Cloudmaster:

  • создаст сервисный аккаунт в сервисе Yandex Managed Service for Prometheus,

  • настроит права доступа сервисного аккаунта к Yandex Managed Service for Prometheus,

  • передаст вам полученные параметры доступа.

С полученнными параметрами доступа вы сможете настроить ВМ-агент VictoriaMetrics для сбора данных кластера сервисом Yandex Managed Service for Prometheus.

  1. Дождитесь настройки прав доступа к сервису Yandex Managed Service for Prometheus для ВМ-агента.

    По окончанию настройки прав поддержка Cloudmaster отправит вам конфигурационный файл Generated_values.yaml с предустановленными параметрами.

  2. Скачайте полученный файл.

  3. Приступите к следующему шагу.

Установка kube-state-metrics в кластере⚓︎

Сервис kube-state-metrics передаёт ВМ-агентом набор метрик в Yandex Managed Service for Prometheus.

Если у вас уже установлен kube-state-metrics, пропустите этот шаг и перейдите к следующему.

  1. Добавьте репозиторий с 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 > values.yaml
    

    Вы получите файл values.yaml с параметрами по умолчанию.

  2. В полученном файле values.yaml отредактируйте блок collectors, закомментируйте все коллекторы, кроме nodes, pods и deployments.

    Блок должен выглядеть так:

    collectors:
      - deployments
      - nodes
      - pods
    
  3. Установите сервис kube-state-metrics в кластер с помощью команды:

    helm install cloudmaster-ksm prometheus-community/kube-state-metrics -n cloudmaster-vm --create-namespace -f values.yaml
    
  4. Приступите к следующему шагу.

Уcтановка ВМ-агента VictoriaMetrics⚓︎

С установкой агента Cloudmaster сможет считывать, как вы потребляете основные ресурсы по метрикам в кластере.

Основные отслеживаемые ресурсы
  • 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

Системные требования⚓︎

Перед установкой ВМ-агента убедитесь, что у вас достаточно объёма памяти во временном хранилище (англ. 'on-disk persistence') -remoteWrite.tmpDataPath для хранения данных мониторинга.

Её требуемый объем зависит от размера инфраструктуры кластера.

Объём памяти временного хранилища по умолчанию — 10 ГБ.

Для расчёта объёма памяти под вашу инфраструктуру используйте формулу ВМ-агента VictoriaMetrics

Инструкция по установке ВМ-агента⚓︎

  1. Настройте helm на подключение к кластеру Kubernetes.

  2. Добавьте helm-репозиторий с помощью команд:

    helm repo add victoria-metrics https://victoriametrics.github.io/helm-charts/
    helm repo update
    helm show values victoria-metrics/victoria-metrics-agent > values.yaml
    

    Вы получите файл values.yaml с параметрами по умолчанию.

  3. Откройте полученный файл values.yaml

  4. Откройте файл Generated_values.yaml с предустановленными под ваш кластер параметрами, которым поделилась поддержка Cloudmaster при настройке прав доступа Yandex Managed Service for Prometheus к ВМ-агенту, и скопируйте значения.

  5. В файле values.yaml измените следующие значения:

    • API-ключ,

    • ID кластера,

    • список метрик.

    Фрагмент файла для редактирования:

     remoteWrite:
     - url: "https://metrics.cloudmaster.ru/metrics/write"
       forcePromProto: true
       headers:
         "Authorization: Api-Key значение_API_ключа"
        urlRelabelConfig:
         - action: replace
           replacement: 'ID_вашего_кластера_k8s'
           target_label: cluster
         - action: keep
           source_labels: ['__name__']
           regex: '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'
    
  6. В блоке config файла values.yaml установите scrape_interval и добавьте kube-state-metrics в scrape_configs job:

      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
    
  7. Запустите установку ВМ-агента.

    helm install vmagent victoria-metrics/victoria-metrics-agent -n cloudmaster-vm --create-namespace -f values.yaml
    

    По завершению установки ВМ-агента перейдите к проверке успешности подключения кластера к Cloudmaster.

    Cloudmaster хранит данные пользователей в Yandex Managed Service for Prometheus в зашифрованном виде.

Проверка успешности подключения кластера⚓︎

  1. Проверьте отправку данных о затратах в логах пода кластера Kubernetes.

  2. Проверьте подгрузку данных о кластере в разделах Cloudmaster:

Логирование состояния метрик в удалённом хранилище⚓︎

ВМ-агент VictoriaMetrics работает бесперебойно в средах с нестабильным подключением (на случай сбоя работы Yandex Managed Service for Prometheus, сетевой или другой ошибки) благодаря удаленному хранилищу (англ. 'remote storage').

Если удалённое хранилище недоступно, собранные метрики буферизуются во временное хранилище (англ. 'on-disk persistence') -remoteWrite.tmpDataPath.

Буферизированные метрики отправляются в удаленное хранилище, как только подключение восстановится.

Подробнее о работе удаленного хранилища VictoriaMetrics

Рекомендуем отключать временное хранилище, если:

  • производительности постоянного диска не хватает для заданной скорости обработки данных,

  • удобнее буферизовать данные в обработке на стороне клиента, а не на стороне vmagent в папке -remoteWrite.tmpDataPath.

  • данные уже буферизуются на стороне Kafka или Google PubSub,

  • проще сбрасывать данные, чем буферизовать их.

Инструкция VictoriaMetrics по отключению временного хранилища on-disk-persistence