Начало работы с мониторингом платформы Kubernetes + наблюдаемость приложений
На этой странице приведены инструкции по развёртыванию Dynatrace Operator для включения мониторинга платформы Kubernetes и наблюдаемости приложений. Эта конфигурация идеально подходит для мониторинга сред Kubernetes и контейнеризированных приложений.
Сценарии использования¶
- Оценка и устранение неполадок в кластере и рабочих нагрузках Kubernetes
- Оптимизация использования ресурсов рабочих нагрузок Kubernetes
- Получение оповещений и событий для обнаружения аномалий кластера и реагирования на них
- Изучение метрик, событий и логов ваших подов и узлов в едином интерфейсе
- Устранение типичных проблем со здоровьем рабочих нагрузок Kubernetes
- Автоматическая распределённая трассировка между контейнерами
- Инсайты на уровне кода и сервисов в контейнерах приложений
- Профилирование и анализ потоков
Если вы хотите получить полное представление о вашей среде Kubernetes, ознакомьтесь с обзором развёртывания, чтобы узнать о полной наблюдаемости Full-Stack. Вы можете расширить наблюдаемость Kubernetes за счёт аналитики логов, цифрового опыта и безопасности приложений.
Предварительные требования
Перед началом работы¶
Перед установкой Dynatrace в кластере Kubernetes убедитесь, что выполнены следующие требования:
- Ваш CLI
kubectlподключён к кластеру Kubernetes, который вы хотите мониторить. - У вас достаточно привилегий в отслеживаемом кластере для выполнения команд
kubectlилиoc.
Настройка и конфигурация кластера¶
- Необходимо разрешить исходящий трафик для подов Dynatrace (по умолчанию: пространство имён Dynatrace) к URL вашей среды Dynatrace.
- Для OpenShift Dedicated необходима роль cluster-admin.
- Установка через Helm: используйте Helm версии 3.
Поддерживаемые версии¶
См. поддерживаемые версии платформ и дистрибутивы Kubernetes/OpenShift.
Настройка SCC требуется для OpenShift при развёртывании cloudNativeFullStack и applicationMonitoring с CSI-драйвером Dynatrace Operator.
Комбинация hostMonitoring и applicationMonitoring в кластере Kubernetes в одной среде не поддерживается.
Варианты установки¶
Выберите один из методов установки, который лучше всего соответствует вашим потребностям.
[
Helm](#helm)Манифест
Helm¶
Dynatrace Operator версии 0.8.0+
Новые инструкции по установке и обновлению через Helm используют Helm-чарт, доступный из реестра OCI. Поэтому, если репозиторий Dynatrace в настоящее время добавлен в ваши локальные репозитории Helm, его можно безопасно удалить.
Процесс установки не зависит от того, используете ли вы Kubernetes или OpenShift. Платформа определяется автоматически во время установки.
- Установите Dynatrace Operator
При использовании Helm версии 4.0+ необходимо использовать --rollback-on-failure вместо флага --atomic.
У вас есть два варианта:
Установка по умолчанию / установка из реестра OCI
Следующая команда работает как для стандартной установки, так и для установки с использованием реестра OCI.
helm install dynatrace-operator oci://public.ecr.aws/dynatrace/dynatrace-operator \
--create-namespace \
--namespace dynatrace \
--atomic
Установка с дополнительной конфигурацией Helm-чарта
Отредактируйте пример values.yaml из GitHub, а затем выполните команду установки, передав YAML-файл в качестве аргумента:
helm install dynatrace-operator oci://public.ecr.aws/dynatrace/dynatrace-operator \
--create-namespace \
--namespace dynatrace \
--atomic \
-f values.yaml
Если installCRD установлен в false, необходимо создать определение пользовательского ресурса вручную перед началом установки через Helm:
kubectl apply -f https://github.com/Dynatrace/dynatrace-operator/releases/download/v1.8.1/dynatrace-operator-crd.yaml
VMware Tanzu Kubernetes (TKGI) и IBM Kubernetes Service (IKS) требуют дополнительной конфигурации. 2. Создайте секрет для токенов доступа
Создайте секрет с именем dynakube для токена Dynatrace Operator и токена приёма данных, полученных в разделе Необходимые токены и разрешения.
kubectl -n dynatrace create secret generic dynakube --from-literal="apiToken=<OPERATOR_TOKEN>" --from-literal="dataIngestToken=<DATA_INGEST_TOKEN>"
Пример пользовательского ресурса DynaKube для мониторинга приложений
Вы можете просмотреть доступные параметры или руководства и адаптировать пользовательский ресурс DynaKube в соответствии с вашими требованиями.
apiVersion: dynatrace.com/v1beta5
kind: DynaKube
metadata:
name: dynakube
namespace: dynatrace
annotations:
feature.dynatrace.com/k8s-app-enabled: "true"
feature.dynatrace.com/injection-readonly-volume: "true"
spec:
# For detailed instructions on DynaKube parameters in the spec section, visit https://docs.dynatrace.com/docs/ingest-from/setup-on-k8s/reference/dynakube-parameters
# Dynatrace 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.dynatrace.com/support/help/reference/dynatrace-concepts/environment-id/.
apiUrl: https://ENVIRONMENTID.live.dynatrace.com/api
metadataEnrichment:
enabled: true
oneAgent:
applicationMonitoring: {}
activeGate:
capabilities:
- routing
- kubernetes-monitoring
resources:
requests:
cpu: 500m
memory: 512Mi
limits:
cpu: 1000m
memory: 1.5Gi
Для мониторинга потенциально конфиденциальных данных, таких как Secrets (значения маскируются перед приёмом) и ConfigMaps, необходимо создать ClusterRole, разрешающую доступ к этим ресурсам. Добавьте следующий фрагмент в конец вашего YAML-файла пользовательского ресурса DynaKube.
Установка с мониторингом конфиденциальных данных
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
rbac.dynatrace.com/aggregate-to-monitoring: "true"
name: dynatrace-kubernetes-monitoring-sensitive
rules:
- apiGroups:
- ""
resources:
- configmaps
- secrets
verbs:
- list
- watch
- get
Роль будет автоматически привязана к ClusterRole dynatrace-kubernetes-monitoring через правила агрегации. Для получения дополнительной информации об агрегации ClusterRole см. документацию по агрегации ClusterRole.
5. Примените пользовательский ресурс DynaKube
Выполните приведённую ниже команду для применения пользовательского ресурса DynaKube, убедившись, что вы заменили <your-DynaKube-CR> на фактическое имя файла вашего пользовательского ресурса DynaKube. Валидационный вебхук предоставит полезные сообщения об ошибках, если возникнет проблема.
Убедитесь, что ваш DynaKube работает и все поды в пространстве имён Dynatrace запущены и готовы.
> kubectl get dynakube -n dynatrace
NAME APIURL STATUS AGE
dynakube https://<ENVIRONMENTID>.live.dynatrace.com/api Running 45s
В конфигурации DynaKube по умолчанию с CSI-драйвером вы должны увидеть следующие поды:
> kubectl get pods -n dynatrace
NAME READY STATUS RESTARTS AGE
dynakube-activegate-0 1/1 Running 0 50s
dynatrace-oneagent-csi-driver-qxfwx 4/4 Running 0 2m49s
dynatrace-oneagent-csi-driver-xk5c4 4/4 Running 0 2m49s
dynatrace-oneagent-csi-driver-mz6ch 4/4 Running 0 2m49s
dynatrace-operator-7dc8dc7d8c-wmh4z 1/1 Running 0 2m59s
dynatrace-webhook-7bb6957fb5-l8fsq 1/1 Running 0 2m59s
dynatrace-webhook-7bb6957fb5-rqnqk 1/1 Running 0 2m59s
CSI-драйвер не является обязательным (см. шаг 2). При включении он развёртывается как DaemonSet, что приводит к созданию пода CSI-драйвера на каждом узле.
Манифест¶
Kubernetes
OpenShift
- Создайте пространство имён
dynatrace
kubectl apply -f https://github.com/Dynatrace/dynatrace-operator/releases/download/v1.8.1/kubernetes-csi.yaml
Без CSI-драйвера
kubectl apply -f https://github.com/Dynatrace/dynatrace-operator/releases/download/v1.8.1/kubernetes.yaml
VMware Tanzu Kubernetes (TKGI) и IBM Kubernetes Service (IKS) требуют дополнительной конфигурации.
Выполните следующую команду, чтобы увидеть, когда компоненты Dynatrace Operator завершат инициализацию:
kubectl -n dynatrace wait pod --for=condition=ready --selector=app.kubernetes.io/name=dynatrace-operator,app.kubernetes.io/component=webhook --timeout=300s
Создайте секрет с именем dynakube для токена Dynatrace Operator и токена приёма данных, полученных в разделе Необходимые токены и разрешения.
kubectl -n dynatrace create secret generic dynakube --from-literal="apiToken=<OPERATOR_TOKEN>" --from-literal="dataIngestToken=<DATA_INGEST_TOKEN>"
Пример пользовательского ресурса DynaKube для мониторинга приложений
Вы можете просмотреть доступные параметры или руководства и адаптировать пользовательский ресурс DynaKube в соответствии с вашими требованиями.
apiVersion: dynatrace.com/v1beta5
kind: DynaKube
metadata:
name: dynakube
namespace: dynatrace
annotations:
feature.dynatrace.com/k8s-app-enabled: "true"
feature.dynatrace.com/injection-readonly-volume: "true"
spec:
# For detailed instructions on DynaKube parameters in the spec section, visit https://docs.dynatrace.com/docs/ingest-from/setup-on-k8s/reference/dynakube-parameters
# Dynatrace 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.dynatrace.com/support/help/reference/dynatrace-concepts/environment-id/.
apiUrl: https://ENVIRONMENTID.live.dynatrace.com/api
metadataEnrichment:
enabled: true
oneAgent:
applicationMonitoring: {}
activeGate:
capabilities:
- routing
- kubernetes-monitoring
resources:
requests:
cpu: 500m
memory: 512Mi
limits:
cpu: 1000m
memory: 1.5Gi
Для мониторинга потенциально конфиденциальных данных, таких как Secrets (значения маскируются перед приёмом) и ConfigMaps, необходимо создать ClusterRole, разрешающую доступ к этим ресурсам. Добавьте следующий фрагмент в конец вашего YAML-файла пользовательского ресурса DynaKube.
Установка с мониторингом конфиденциальных данных
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
rbac.dynatrace.com/aggregate-to-monitoring: "true"
name: dynatrace-kubernetes-monitoring-sensitive
rules:
- apiGroups:
- ""
resources:
- configmaps
- secrets
verbs:
- list
- watch
- get
Роль будет автоматически привязана к ClusterRole dynatrace-kubernetes-monitoring через правила агрегации. Для получения дополнительной информации об агрегации ClusterRole см. документацию по агрегации ClusterRole.
6. Примените пользовательский ресурс DynaKube
Выполните приведённую ниже команду для применения пользовательского ресурса DynaKube, убедившись, что вы заменили <your-DynaKube-CR> на фактическое имя файла вашего пользовательского ресурса DynaKube. Валидационный вебхук предоставит полезные сообщения об ошибках, если возникнет проблема.
Убедитесь, что ваш DynaKube работает и все поды в пространстве имён Dynatrace запущены и готовы.
> kubectl get dynakube -n dynatrace
NAME APIURL STATUS AGE
dynakube https://<ENVIRONMENTID>.live.dynatrace.com/api Running 45s
В конфигурации DynaKube по умолчанию с CSI-драйвером вы должны увидеть следующие поды:
> kubectl get pods -n dynatrace
NAME READY STATUS RESTARTS AGE
dynakube-activegate-0 1/1 Running 0 50s
dynatrace-oneagent-csi-driver-qxfwx 4/4 Running 0 2m49s
dynatrace-oneagent-csi-driver-xk5c4 4/4 Running 0 2m49s
dynatrace-oneagent-csi-driver-mz6ch 4/4 Running 0 2m49s
dynatrace-operator-7dc8dc7d8c-wmh4z 1/1 Running 0 2m59s
dynatrace-webhook-7bb6957fb5-l8fsq 1/1 Running 0 2m59s
dynatrace-webhook-7bb6957fb5-rqnqk 1/1 Running 0 2m59s
CSI-драйвер не является обязательным (см. шаг 2). При включении он развёртывается как DaemonSet, что приводит к созданию пода CSI-драйвера на каждом узле.
- Добавьте проект
dynatrace
oc apply -f https://github.com/Dynatrace/dynatrace-operator/releases/download/v1.8.1/openshift-csi.yaml
Без CSI-драйвера
Выполните следующую команду, чтобы увидеть, когда компоненты Dynatrace Operator завершат инициализацию:
oc -n dynatrace wait pod --for=condition=ready --selector=app.kubernetes.io/name=dynatrace-operator,app.kubernetes.io/component=webhook --timeout=300s
Создайте секрет с именем dynakube для токена Dynatrace Operator и токена приёма данных, полученных в разделе Необходимые токены и разрешения.
oc -n dynatrace create secret generic dynakube --from-literal="apiToken=<OPERATOR_TOKEN>" --from-literal="dataIngestToken=<DATA_INGEST_TOKEN>"
Пример пользовательского ресурса DynaKube для мониторинга приложений
Вы можете просмотреть доступные параметры или руководства и адаптировать пользовательский ресурс DynaKube в соответствии с вашими требованиями.
apiVersion: dynatrace.com/v1beta5
kind: DynaKube
metadata:
name: dynakube
namespace: dynatrace
annotations:
feature.dynatrace.com/k8s-app-enabled: "true"
feature.dynatrace.com/injection-readonly-volume: "true"
spec:
# For detailed instructions on DynaKube parameters in the spec section, visit https://docs.dynatrace.com/docs/ingest-from/setup-on-k8s/reference/dynakube-parameters
# Dynatrace 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.dynatrace.com/support/help/reference/dynatrace-concepts/environment-id/.
apiUrl: https://ENVIRONMENTID.live.dynatrace.com/api
metadataEnrichment:
enabled: true
oneAgent:
applicationMonitoring: {}
activeGate:
capabilities:
- routing
- kubernetes-monitoring
resources:
requests:
cpu: 500m
memory: 512Mi
limits:
cpu: 1000m
memory: 1.5Gi
Для мониторинга потенциально конфиденциальных данных, таких как Secrets (значения маскируются перед приёмом) и ConfigMaps, необходимо создать ClusterRole, разрешающую доступ к этим ресурсам. Добавьте следующий фрагмент в конец вашего YAML-файла пользовательского ресурса DynaKube.
Установка с мониторингом конфиденциальных данных
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
rbac.dynatrace.com/aggregate-to-monitoring: "true"
name: dynatrace-kubernetes-monitoring-sensitive
rules:
- apiGroups:
- ""
resources:
- configmaps
- secrets
verbs:
- list
- watch
- get
Роль будет автоматически привязана к ClusterRole dynatrace-kubernetes-monitoring через правила агрегации. Для получения дополнительной информации об агрегации ClusterRole см. документацию по агрегации ClusterRole.
6. Примените пользовательский ресурс DynaKube
Выполните приведённую ниже команду для применения пользовательского ресурса DynaKube, убедившись, что вы заменили <your-DynaKube-CR> на фактическое имя файла вашего пользовательского ресурса DynaKube. Валидационный вебхук предоставит полезные сообщения об ошибках, если возникнет проблема.
Убедитесь, что ваш DynaKube работает и все поды в пространстве имён Dynatrace запущены и готовы.
> oc get dynakube -n dynatrace
NAME APIURL STATUS AGE
dynakube https://<ENVIRONMENTID>.live.dynatrace.com/api Running 45s
В конфигурации DynaKube по умолчанию с CSI-драйвером вы должны увидеть следующие поды:
> oc get pods -n dynatrace
NAME READY STATUS RESTARTS AGE
dynakube-activegate-0 1/1 Running 0 50s
dynatrace-oneagent-csi-driver-qxfwx 4/4 Running 0 2m49s
dynatrace-oneagent-csi-driver-xk5c4 4/4 Running 0 2m49s
dynatrace-oneagent-csi-driver-mz6ch 4/4 Running 0 2m49s
dynatrace-operator-7dc8dc7d8c-wmh4z 1/1 Running 0 2m59s
dynatrace-webhook-7bb6957fb5-l8fsq 1/1 Running 0 2m59s
dynatrace-webhook-7bb6957fb5-rqnqk 1/1 Running 0 2m59s
CSI-драйвер не является обязательным (см. шаг 2). При включении он развёртывается как DaemonSet, что приводит к созданию пода CSI-драйвера на каждом узле.
Лицензирование¶
Мониторинг платформы Kubernetes + наблюдаемость приложений требует подписку Dynatrace Platform Subscription (DPS) — модели лицензирования для всех возможностей Dynatrace."). Мониторинг платформы Kubernetes лицензируется по количеству подов в час (под-часы), а наблюдаемость приложений — по сумме памяти контейнеров (ГиБ-часы).
Дополнительные материалы¶
После успешной установки Dynatrace Operator следующие ресурсы могут быть полезны для дальнейшего изучения и устранения неполадок.
Получение практических ответов¶
Начните анализировать свои кластеры Kubernetes и контейнеризированные приложения с Dynatrace и получайте практические ответы.### Руководства
Узнайте, как настроить Dynatrace Operator для поддержки конкретных сценариев использования.### Устранение неполадок
Устранение проблем, которые могут возникнуть при работе с Dynatrace Operator и его различными компонентами.
Как это работает¶
Хотите узнать больше о компонентах Dynatrace в вашем кластере Kubernetes?### Справочник
Справочник по API и параметры конфигурации для всех компонентов Dynatrace в вашем кластере Kubernetes.### Примечания к выпуску Dynatrace Operator
Примечания к выпуску Dynatrace Operator.### Обновление или удаление
На этой странице приведены подробные инструкции по обновлению и удалению Dynatrace Operator.### Руководство по размеру Dynatrace ActiveGate
Руководство по выбору размера для компонентов Dynatrace ActiveGate
Связанные темы¶
- Kubernetes Classic