Работа с мониторингом платформы Kubernetes + наблюдением Full-Stack

Материал из Документация Ключ-АСТРОМ

На этой странице представлены инструкции по развертыванию Ключ-АСТРОМ Operator для обеспечения мониторинга платформы Kubernetes и возможности Full-Stack наблюдения в вашей среде Kubernetes. Вы получите представление о ресурсах кластера Kubernetes, производительности приложений и работоспособности инфраструктуры.

Варианты использования

  • Оценка и устранение неполадок в кластере Kubernetes и работоспособности рабочей нагрузки
  • Оптимизация использования ресурсов рабочей нагрузки Kubernetes
  • Получение оповещений и событий для обнаружения и реагирования на аномалии кластера
  • Просмотр метрик, событий и логов ваших модулей и узлов в едином интерфейсе
  • Устранение распространенных проблем с работоспособностью рабочих нагрузок Kubernetes
  • Автоматическая распределенная трассировка по контейнерам
  • Анализ уровня кода и сервисов в контейнерах приложений
  • Профилирование и анализ потоков
  • Подробности на уровне хоста и процесса
  • Анализ и топология хост-сети
  • Анализ диска и оповещения

Прежде чем начать

Перед установкой Ключ-АСТРОМ в кластер Kubernetes убедитесь, что выполнены следующие требования:

  • Ваш CLI kubectl подключен к кластеру Kubernetes, который вы хотите отслеживать.
  • У вас достаточно прав на контролируемом кластере для запуска kubectl команд oc.

Настройка и конфигурирование кластера

  • Необходимо разрешить выход для модулей Ключ-АСТРОМ (по умолчанию: пространство имен Ключ-АСТРОМ) на URL-адрес вашей среды Ключ-АСТРОМ.
  • Для OpenShift Dedicated вам потребуется роль администратора кластера.
  • Helm installation Используйте Helm версии 3.

Поддерживаемые версии

Ознакомьтесь с поддерживаемыми версиями и дистрибутивами платформы Kubernetes/OpenShift.

Настройка SCC необходима для OpenShift cloudNativeFullStack с applicationMonitoring развертываниями драйверов Ключ-АСТРОМ Operator CSI.

По умолчанию Ключ-АСТРОМ Operator внедряет ЕдиныйАгент во все пространства имён, но вы можете настроить его для мониторинга только определённых пространств имён и исключения остальных. Подробнее см. в разделе Настройка мониторинга пространств имён и модулей.

Helm

Ключ-АСТРОМ Operator версии 0.8.0+

Новые инструкции по установке и обновлению Helm используют нашу таблицу Helm, доступную в реестре OCI. Поэтому, если репозиторий Ключ-АСТРОМ уже добавлен в ваши локальные репозитории Helm, его можно безопасно удалить.
helm repo remove askromkey

Процесс установки не зависит от того, используете ли вы Kubernetes или OpenShift. Платформа определяется автоматически во время установки.

Установка Ключ-АСТРОМ Operator

Следующая команда работает для установок с использованием реестра OCI, что является способом по умолчанию.

helm install astromkey-operator oci://public.ecr.aws/astromkey/astromkey-operator \

   --create-namespace \

   --namespace astromkey \

   --atomic

Установка с дополнительной настройкой Helm chart

Отредактируйте пример из GitHub, а затем запустите команду установки, передав файл YAML в качестве аргумента: values.yaml

helm install astromkey-operator oci://public.ecr.aws/astromkey/astromkey-operator \

   --create-namespace \

   --namespace astromkey \

   --atomic \

   -f values.yaml

Если в installCRD установлено значение false, вам необходимо вручную создать определение пользовательского ресурса перед началом установки Helm:

kubectl apply -f https://github.com/astromkey/astromkey-operator/releases/download/v1.6.0/astromkey-operator-crd.yaml

Создание секрета для токенов доступа

Создайте секрет, с названием astrokube для токена оператора Ключ-АСТРОМ, и токен сбора данных, полученный в разделе Требуемые токены и разрешения.

kubectl -n astromkey create secret generic astrokube --from-literal="apiToken=<OPERATOR_TOKEN>" --from-literal="dataIngestToken=<DATA_INGEST_TOKEN>"

Создание своего собственного файла YAML ресурсов AstroKube.

Пример пользовательского ресурса AstroKube для мониторинга полного стека

Вы можете просмотреть доступные параметры или руководства по применению и адаптировать пользовательский ресурс AstroKube в соответствии со своими требованиями.

Для архитектуры PPC64le требуется дополнительная настройка. Подробнее см. в образе контейнера АктивногоШлюза.

apiVersion: astromkey.com/v1beta3

kind: AstroKube

metadata:

  name: AstroKube

  namespace: astromkey

  annotations:

    feature.astromkey.com/k8s-app-enabled: "true"

    feature.astromkey.com/injection-readonly-volume: "true"

spec:

  # For detailed instructions on AstroKube parameters in the spec section, visit https://docs.astromkey.com/docs/ingest-from/setup-on-k8s/reference/AstroKube-parameters

  # astromkey apiUrl including the /api path at the end.

  # Replace 'ENVIRONMENTID' with your environment ID.

  # For instructions on how to determine the environment ID and how to configure the apiUrl address, see https://www.astromkey.com/support/help/reference/astromkey-concepts/environment-id/.

  apiUrl: https://ENVIRONMENTID.live.astromkey.com/api

  metadataEnrichment:

    enabled: true

  oneAgent:

    cloudNativeFullStack:

      tolerations:

        - effect: NoSchedule

          key: node-role.kubernetes.io/master

          operator: Exists

        - effect: NoSchedule

          key: node-role.kubernetes.io/control-plane

          operator: Exists

  activeGate:

    capabilities:

      - routing

      - kubernetes-monitoring

    resources:

      requests:

        cpu: 500m

        memory: 512Mi

      limits:

        cpu: 1000m

        memory: 1.5Gi

Применение пользовательского ресурса AstroKube

Выполните команду ниже, чтобы применить пользовательский ресурс AstroKube, заменив его фактическим именем файла вашего пользовательского ресурса AstroKube <your-AstroKube-CR>. Веб-хук проверки предоставит полезные сообщения об ошибках в случае возникновения проблем.

kubectl apply -f <your-AstroKube-CR>.yaml

Проверка развертки

Убедитесь, что AstroKube запущен, а все модули в пространстве имен Ключ-АСТРОМ запущены и готовы.

> kubectl get AstroKube -n astromkey

NAME         APIURL                                          STATUS     AGE

AstroKube     https://<ENVIRONMENTID>.live.astromkey.com/api  Running    45s

В конфигурации AstroKube по умолчанию вы должны увидеть следующие модули:

> kubectl get pods -n astromkey

NAME                                  READY   STATUS    RESTARTS        AGE

AstroKube-activegate-0                 1/1     Running   0               50s

AstroKube-oneagent-b88rn               1/1     Running   0               50s

AstroKube-oneagent-m5jm4               1/1     Running   0               50s

AstroKube-oneagent-qhd9u               1/1     Running   0               50s

astromkey-oneagent-csi-driver-qxfwx   4/4     Running   0               2m49s

astromkey-oneagent-csi-driver-xk5c4   4/4     Running   0               2m49s

astromkey-oneagent-csi-driver-mz6ch   4/4     Running   0               2m49s

astromkey-operator-7dc8dc7d8c-wmh4z   1/1     Running   0               2m59s

astromkey-webhook-7bb6957fb5-l8fsq    1/1     Running   0               2m59s

astromkey-webhook-7bb6957fb5-rqnqk    1/1     Running   0               2m59s

Поскольку ЕдиныйАгент и драйвер CSI развернуты как DaemonSet, на каждом узле должен быть модуль ЕдиногоАгента и драйвера CSI.

Manifest

Kubernetes

Создание пространства имен `astromkey`

Создайте пространство имен astromkey:

kubectl create namespace astromkey

Установка Ключ-АСТРОМ Operator

kubectl apply -f https://github.com/astromkey/astromkey-operator/releases/download/v1.6.0/kubernetes-csi.yaml

Выполните следующую команду, чтобы увидеть, когда компоненты Ключ-АСТРОМ Operator завершат инициализацию:

kubectl -n astromkey wait pod --for=condition=ready --selector=app.kubernetes.io/name=astromkey-operator,app.kubernetes.io/component=webhook --timeout=300s

Создание секрета для токенов доступа

Создайте секрет, названный AstroKube для токена Ключ-АСТРОМ Operator, и токен сбора данных, полученный в разделе Требуемые токены и разрешения.

kubectl -n astromkey create secret generic AstroKube --from-literal="apiToken=<OPERATOR_TOKEN>" --from-literal="dataIngestToken=<DATA_INGEST_TOKEN>"

Создание своего собственного файла YAML ресурсов AstroKube

Пример пользовательского ресурса AstroKube для мониторинга полного стека

Вы можете просмотреть доступные параметры или руководства по применению и адаптировать пользовательский ресурс AstroKube в соответствии со своими требованиями.

apiVersion: astromkey.com/v1beta3

kind: AstroKube

metadata:

  name: AstroKube

  namespace: astromkey

  annotations:

    feature.astromkey.com/k8s-app-enabled: "true"

    feature.astromkey.com/injection-readonly-volume: "true"

spec:

  # For detailed instructions on AstroKube parameters in the spec section, visit https://docs.astromkey.com/docs/ingest-from/setup-on-k8s/reference/AstroKube-parameters

  # astromkey apiUrl including the /api path at the end.

  # Replace 'ENVIRONMENTID' with your environment ID.

  # For instructions on how to determine the environment ID and how to configure the apiUrl address, see https://www.astromkey.com/support/help/reference/astromkey-concepts/environment-id/.

  apiUrl: https://ENVIRONMENTID.live.astromkey.com/api

  metadataEnrichment:

    enabled: true

  oneAgent:

    cloudNativeFullStack:

      tolerations:

        - effect: NoSchedule

          key: node-role.kubernetes.io/master

          operator: Exists

        - effect: NoSchedule

          key: node-role.kubernetes.io/control-plane

          operator: Exists

  activeGate:

    capabilities:

      - routing

      - kubernetes-monitoring

    resources:

      requests:

        cpu: 500m

        memory: 512Mi

      limits:

        cpu: 1000m

        memory: 1.5Gi

Применить пользовательский ресурс AstroKube

Выполните команду ниже, чтобы применить пользовательский ресурс AstroKube, заменив его фактическим именем файла вашего пользовательского ресурса AstroKube <your-AstroKube-CR>. Веб-хук проверки предоставит полезные сообщения об ошибках в случае возникновения проблем.

kubectl apply -f <your-AstroKube-CR>.yaml

Проверка развертки

необязательный

Убедитесь, что AstroKube запущен, а все модули в пространстве имен Ключ-АСТРОМ запущены и готовы.

> kubectl get AstroKube -n astromkey

NAME         APIURL                                          STATUS     AGE

AstroKube     https://<ENVIRONMENTID>.live.astromkey.com/api  Running    45s

В конфигурации AstroKube по умолчанию вы должны увидеть следующие модули:

> kubectl get pods -n astromkey

NAME                                  READY   STATUS    RESTARTS        AGE

AstroKube-activegate-0                 1/1     Running   0               50s

AstroKube-oneagent-b88rn               1/1     Running   0               50s

AstroKube-oneagent-m5jm4               1/1     Running   0               50s

AstroKube-oneagent-qhd9u               1/1     Running   0               50s

astromkey-oneagent-csi-driver-qxfwx   4/4     Running   0               2m49s

astromkey-oneagent-csi-driver-xk5c4   4/4     Running   0               2m49s

astromkey-oneagent-csi-driver-mz6ch   4/4     Running   0               2m49s

astromkey-operator-7dc8dc7d8c-wmh4z   1/1     Running   0               2m59s

astromkey-webhook-7bb6957fb5-l8fsq    1/1     Running   0               2m59s

astromkey-webhook-7bb6957fb5-rqnqk    1/1     Running   0               2m59s

Поскольку ЕдиныйАгент и драйвер CSI развернуты как DaemonSet, на каждом узле должен быть модуль ЕдиногоАгента и драйвера CSI.

OpenShift

Добавление проекта `astromkey`

Добавить проект astromkey:

oc adm new-project --node-selector="" astromkey

Установка Ключ-АСТРОМ Operator

oc apply -f https://github.com/astromkey/astromkey-operator/releases/download/v1.6.0/openshift-csi.yaml

Выполните следующую команду, чтобы увидеть, когда компоненты Ключ-АСТРОМ Operator завершат инициализацию:

oc -n astromkey wait pod --for=condition=ready --selector=app.kubernetes.io/name=astromkey-operator,app.kubernetes.io/component=webhook --timeout=300s

Создание секрета для токенов доступа

Создайте секрет, названный AstroKubeдля токена Ключ-АСТРОМ Operator, и токен сбора данных, полученный в разделе Требуемые токены и разрешения.

oc -n astromkey create secret generic AstroKube --from-literal="apiToken=<OPERATOR_TOKEN>" --from-literal="dataIngestToken=<DATA_INGEST_TOKEN>"

Создание своего собственного файла YAML ресурсов AstroKube

Пример пользовательского ресурса AstroKube для мониторинга полного стека

Вы можете просмотреть доступные параметры или руководства по применению и адаптировать пользовательский ресурс AstroKube в соответствии со своими требованиями.

apiVersion: astromkey.com/v1beta3

kind: AstroKube

metadata:

  name: AstroKube

  namespace: astromkey

  annotations:

    feature.astromkey.com/k8s-app-enabled: "true"

    feature.astromkey.com/injection-readonly-volume: "true"

spec:

  # For detailed instructions on AstroKube parameters in the spec section, visit https://docs.astromkey.com/docs/ingest-from/setup-on-k8s/reference/AstroKube-parameters

  # astromkey apiUrl including the /api path at the end.

  # Replace 'ENVIRONMENTID' with your environment ID.

  # For instructions on how to determine the environment ID and how to configure the apiUrl address, see https://www.astromkey.com/support/help/reference/astromkey-concepts/environment-id/.

  apiUrl: https://ENVIRONMENTID.live.astromkey.com/api

  metadataEnrichment:

    enabled: true

  oneAgent:

    cloudNativeFullStack:

      tolerations:

        - effect: NoSchedule

          key: node-role.kubernetes.io/master

          operator: Exists

        - effect: NoSchedule

          key: node-role.kubernetes.io/control-plane

          operator: Exists

  activeGate:

    capabilities:

      - routing

      - kubernetes-monitoring

    resources:

      requests:

        cpu: 500m

        memory: 512Mi

      limits:

        cpu: 1000m

        memory: 1.5Gi

Применение пользовательского ресурса AstroKube

Выполните команду ниже, чтобы применить пользовательский ресурс AstroKube, заменив его фактическим именем файла вашего пользовательского ресурса AstroKube <your-AstroKube-CR>. Веб-хук проверки предоставит полезные сообщения об ошибках в случае возникновения проблем.

oc apply -f <your-AstroKube-CR>.yaml

Проверка развертки

необязательный

Убедитесь, что AstroKube запущен, а все модули в пространстве имен Ключ-АСТРОМ запущены и готовы.

> oc get AstroKube -n astromkey

NAME         APIURL                                          STATUS     AGE

AstroKube     https://<ENVIRONMENTID>.live.astromkey.com/api  Running    45s

В конфигурации AstroKube по умолчанию вы должны увидеть следующие модули:

> oc get pods -n astromkey

NAME                                  READY   STATUS    RESTARTS        AGE

AstroKube-activegate-0                 1/1     Running   0               50s

AstroKube-oneagent-b88rn               1/1     Running   0               50s

AstroKube-oneagent-m5jm4               1/1     Running   0               50s

AstroKube-oneagent-qhd9u               1/1     Running   0               50s

astromkey-oneagent-csi-driver-qxfwx   4/4     Running   0               2m49s

astromkey-oneagent-csi-driver-xk5c4   4/4     Running   0               2m49s

astromkey-oneagent-csi-driver-mz6ch   4/4     Running   0               2m49s

astromkey-operator-7dc8dc7d8c-wmh4z   1/1     Running   0               2m59s

astromkey-webhook-7bb6957fb5-l8fsq    1/1     Running   0               2m59s

astromkey-webhook-7bb6957fb5-rqnqk    1/1     Running   0               2m59s

Лицензирование

Мониторинг платформы Kubernetes + возможность наблюдения за всем стеком требует подписки на платформу Ключ-АСТРОМ (DPS) и лицензируется по объему памяти хоста (ГБ-часы).