Установка дополнительных компонентов#
Перечень сценариев установки дополнительных компонентов:
Примечание
В данном разделе приводятся сценарии установки дополнительных компонентов с настройками инструментов по умолчанию. Дополнительные настройки инструментов приведены в разделе «Конфигурации инструментов дополнительных компонентов».
Alerting#
Компонент Alerting устанавливает инструмент Alertmanager, который отвечает за отправку уведомлений настроенных событий кластера по адресатам настроенным для Alertmanager.
Для установки компонента Alerting:
Создайте файл
component-alerting.yaml:component-alerting.yaml
apiVersion: config.dropapp.ru/v1alpha1 kind: Component metadata: name: alertingПримените файл:
./kubectl apply -f component-alerting.yamlДождитесь статуса
successдля инструмента Alertmanager:./kubectl get tool alertmanagerВывод команды покажет установленный по умолчанию инструмент и его версию:
NAME STATUS AGE COMPONENT alertmanager success 9s alertingРесурсы Alertmanager созданы автоматически в namespace
dapp-alerting, проверьте pods:./kubectl get all -n dapp-alertingВывод команды покажет список установленных ресурсов и их версии:
NAME READY STATUS RESTARTS AGE pod/alertmanager-0 2/2 Running 0 66s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/alertmanager ClusterIP 00.00.00.000 <none> 9093/TCP 66s service/alertmanager-headless ClusterIP None <none> 9093/TCP 66s NAME READY AGE statefulset.apps/alertmanager 1/1 66s
Logging#
Компонент Logging устанавливает инструменты Vector-agent и Vector-aggregator.
Для установки компонента Logging:
Создайте файл
component-logging.yaml:component-logging.yaml
apiVersion: config.dropapp.ru/v1alpha1 kind: Component metadata: name: loggingПримените файл:
./kubectl apply -f component-logging.yamlДождитесь статуса
successдля инструмента Vector-agent и Vector-aggregator:./kubectl get tools -o wide | grep loggingВывод команды покажет список установленных по умолчанию инструментов и их версии:
NAME STATUS RETRY AGE VERSION DAPP VERSION COMPONENT vector-agent success 0 11m <tool-version> <version> logging vector-aggregator success 0 11m <tool-version> <version> loggingРесурсы Logging созданы автоматически в namespace
dapp-logging, проверьте pods:./kubectl get pods -n dapp-loggingВывод команды покажет список установленных ресурсов и их версии:
NAME READY STATUS RESTARTS AGE vector-agent-g87th 1/1 Running 0 11m vector-agent-gmw67 1/1 Running 0 11m vector-agent-zhs6l 1/1 Running 0 11m vector-aggregator-0 1/1 Running 0 11m vector-aggregator-1 1/1 Running 0 11m
Security#
Компонент Security устанавливает инструмент Gatekeeper, который реализует функции безопасности настроек в кластере.
Для установки компонента Security:
Создайте файл
component-security.yaml, укажите в нем логин и пароль для реестра, в котором лежит база данных Trivy:component-security.yaml
apiVersion: config.dropapp.ru/v1alpha1 kind: Component metadata: name: securityПримените файл:
./kubectl apply -f component-security.yamlДождитесь статуса
successдля инструмента Gatekeeper:./kubectl get tools -o wide | grep securityВывод команды покажет установленный по умолчанию инструмент и его версию:
NAME STATUS RETRY AGE VERSION DAPP VERSION COMPONENT gatekeeper success 0 15s <tool-version> <version> securityРесурсы Security созданы автоматически в namespace
dapp-security, проверьте pods:./kubectl get pods -n dapp-securityВывод команды покажет список установленных ресурсов и их версии:
NAME READY STATUS RESTARTS AGE gatekeeper-audit-7565f7dc86-f55nj 1/1 Running 0 2m gatekeeper-controller-manager-6566c97597-l99kn 1/1 Running 0 2m gatekeeper-controller-manager-6566c97597-xt6sh 1/1 Running 0 2m
Monitoring#
Компонент Monitoring устанавливает инструменты Grafana, Victoria-metrics-operator, Console-dashboards, Kube-state-metrics, Prometheus-node-exporter, Metrics-server, Victoria-metrics-k8s-stack, которые реализуют функции мониторинга и наблюдаемости в кластере.
Для установки компонента Monitoring:
Создайте файл
component-monitoring.yaml:component-monitoring.yaml
apiVersion: config.dropapp.ru/v1alpha1 kind: Component metadata: name: monitoringПримените файл:
./kubectl apply -f component-monitoring.yamlДождитесь статуса
successдля инструментов Grafana, Victoria-metrics-operator, Console-dashboards, Kube-state-metrics, Prometheus-node-exporter, Metrics-server, Victoria-metrics-k8s-stack:./kubectl get tools -o wide | grep monitoringВывод команды покажет список установленных по умолчанию инструментов и их версии:
NAME STATUS RETRY AGE VERSION DAPP VERSION COMPONENT console-dashboards success 0 56s <tool-version> <version> monitoring grafana success 0 56s <tool-version> <version> monitoring kube-state-metrics success 0 46s <tool-version> <version> monitoring metrics-server success 0 36s <tool-version> <version> monitoring prometheus-node-exporter success 0 46s <tool-version> <version> monitoring victoria-metrics-k8s-stack success 0 26s <tool-version> <version> monitoring victoria-metrics-operator success 0 66s <tool-version> <version> monitoringРесурсы Monitoring созданы автоматически в namespace
dapp-monitoring, проверьте pods:./kubectl get pods -n dapp-monitoringВывод команды покажет список установленных ресурсов и их версии:
NAME READY STATUS RESTARTS AGE grafana-86b6dc67fd-9vk2l 1/1 Running 0 108s kube-state-metrics-779cc7f75d-bmswf 1/1 Running 0 109s metrics-server-d46d68bd-6vgjm 1/1 Running 0 97s prometheus-node-exporter-9f84q 1/1 Running 0 109s prometheus-node-exporter-bmv9q 1/1 Running 0 109s prometheus-node-exporter-hvgz7 1/1 Running 0 109s prometheus-node-exporter-jld9q 1/1 Running 0 110s prometheus-node-exporter-nrp8t 1/1 Running 0 110s prometheus-node-exporter-tj472 1/1 Running 0 110s victoria-metrics-operator-5dc4c77bc7-28dzn 1/1 Running 0 2m6s vmagent-victoria-metrics-k8s-stack-567d9f8497-mz54b 2/2 Running 0 77s vmalert-victoria-metrics-k8s-stack-848d7655d8-r292r 2/2 Running 0 76s vminsert-victoria-metrics-k8s-stack-857469cd74-5f2f8 1/1 Running 0 22s vminsert-victoria-metrics-k8s-stack-857469cd74-nwfvr 1/1 Running 0 22s vmselect-victoria-metrics-k8s-stack-0 1/1 Running 0 52s vmselect-victoria-metrics-k8s-stack-1 1/1 Running 0 52s vmstorage-victoria-metrics-k8s-stack-0 1/1 Running 0 78s vmstorage-victoria-metrics-k8s-stack-1 1/1 Running 0 78s
Grafana доступна по адресу https://grafana.<clusterName>.<publicDomain>. По умолчанию в Grafana можно авторизоваться от имени пользователя kubeadmin так же, как в Console.
В Grafana предустановлены панели (dashboards), позволяющие следить за состоянием кластера DropApp:

GitOps#
Компонент GitOps устанавливает инструмент Argocd.
Для установки компонента GitOps:
Создайте файл
component-gitops.yaml:component-gitops.yaml
apiVersion: config.dropapp.ru/v1alpha1 kind: Component metadata: name: gitopsПримените файл:
./kubectl apply -f component-gitops.yamlДождитесь статуса
successдля инструмента Argocd:./kubectl get tools -o wide | grep gitopsВывод команды покажет установленный по умолчанию инструмент и его версию:
NAME STATUS RETRY AGE VERSION DAPP VERSION COMPONENT argocd success 0 13m <tool-version> <version> gitopsРесурсы GitOps созданы автоматически в namespace
dapp-gitops, проверьте pods:./kubectl get pods -n dapp-gitopsВывод команды покажет список установленных ресурсов и их версии:
NAME READY STATUS RESTARTS AGE argocd-application-controller-0 1/1 Running 0 12m argocd-applicationset-controller-d7b66fbf8-fqhfh 1/1 Running 0 12m argocd-notifications-controller-588b8cbfb8-cv8vd 1/1 Running 0 12m argocd-redis-59f7ffbfd5-4bczm 1/1 Running 0 12m argocd-repo-server-6478d5988f-v44jx 1/1 Running 0 12m argocd-server-f95c59778-7zc5m 1/1 Running 0 12m
Argocd доступен по адресу https://argocd.<clusterName>.<publicDomain>. По умолчанию в Argocd можно авторизоваться от имени пользователя kubeadmin так же, как в Console.
DevOps#
Компонент DevOps устанавливает инструменты Argo-workflows, Argo-rollouts и Argo-events.
Для установки компонента DevOps:
Создайте файл
component-devops.yaml:component-devops.yaml
apiVersion: config.dropapp.ru/v1alpha1 kind: Component metadata: name: devopsПримените файл:
./kubectl apply -f component-devops.yamlДождитесь статуса
successдля инструментов Argo-workflows, Argo-rollouts и Argo-events:./kubectl get tools -o wide | grep devopsВывод команды покажет список установленных по умолчанию инструментов и их версии:
NAME STATUS RETRY AGE VERSION DAPP VERSION COMPONENT argo-events success 0 16m <tool-version> <version> devops argo-rollouts success 0 16m <tool-version> <version> devops argo-workflows success 0 17m <tool-version> <version> devopsРесурсы DevOps созданы автоматически в namespace
dapp-devops, проверьте pods:./kubectl get pods -n dapp-devopsВывод команды покажет список установленных ресурсов и их версии:
NAME READY STATUS RESTARTS AGE argo-events-controller-manager-6c6fb79cd-qq8hk 1/1 Running 0 17m argo-rollouts-7c4f4c5b86-pt5tb 1/1 Running 0 17m argo-rollouts-7c4f4c5b86-trcz4 1/1 Running 0 17m argo-workflows-server-85d867486-5qrtq 1/1 Running 0 18m argo-workflows-workflow-controller-f7fdcddd7-4tnrv 1/1 Running 0 18m
Argo-workflows доступен по адресу https://argowf.<clusterName>.<publicDomain>. По умолчанию в Argo-workflows можно авторизоваться от имени пользователя kubeadmin так же, как в Console.
AIOps#
Компонент AIOps устанавливает инструменты K8sGPT и K8sGPT-operator.
Для установки компонента AIOps:
Создайте файл
component-aiops.yaml:component-aiops.yaml
apiVersion: config.dropapp.ru/v1alpha1 kind: Component metadata: name: aiopsПримените файл:
./kubectl apply -f component-aiops.yamlДождитесь статуса
successдля инструментов K8sGPT и K8sGPT-operator:./kubectl get tools -o wide | grep gitopsВывод команды покажет установленный по умолчанию инструмент и его версию:
NAME STATUS RETRY AGE VERSION DAPP VERSION COMPONENT k8sgpt success 0 7d <tool-version> <version> aiops k8sgpt-operator success 0 7d <tool-version> <version> aiopsРесурсы AIOps созданы автоматически в namespace
dapp-aiops, проверьте pods:./kubectl get pods -n dapp-aiopsВывод команды покажет список установленных ресурсов и их версии:
NAME READY STATUS RESTARTS AGE k8sgpt-operator-controller-manager-7b8465449f-79bqp 2/2 Running 0 7dПосле установки в выводе будет только K8sGPT-operator.
Чтобы запустить pods K8sGPT необходимо создать секрет с API-токеном для какой-либо LLM и настроить инструмент K8sGPT.
Создайте секрет (для примера API-токен:
32345345detertfdgdg):kubectl create secret generic dapp-sre-ai-agent-secret --from-literal=ai-api-key=32345345detertfdgdg -n dapp-aiopsНастройте инструмент K8sGPT (например, для Openrouter):
apiVersion: config.dropapp.ru/v1alpha1 kind: Tool metadata: name: k8sgpt spec: values: ai: model: qwen/qwen3-235b-a22b baseUrl: https://openrouter.ai/api/v1 secret: name: dapp-sre-ai-agent-secret key: ai-api-keyK8sGPT инструмент анализа состояния кластера с использованием искусственного интеллекта и предоставляет объекты
Result. Извлеките все объекты типаResultво всех namespace (флаг-A— all namespaces) в формате JSON:kubectl get results -A -o json | jq .Пример вывода:
Результат запуска pods для анализа состояния кластера
{ "apiVersion": "v1", "items": [ { "apiVersion": "core.k8sgpt.ai/v1alpha1", "kind": "Result", ... "spec": { "backend": "localai", "details": "Error: StatefulSet ссылается на несуществующий сервис \nSolution: \n1. Проверьте существование сервиса: kubectl get svc \n2. Создайте Headless-сервис с clusterIP: None \n3. Убедитесь, что serviceName в StatefulSet совпадает с именем сервиса \n4. Примените изменения: kubectl apply -f <манifest>", "error": [ { ... ], "text": "StatefulSet uses the service dapp-gitops/argocd-application-controller which does not exist." } // Обнаружена ошибка: StatefulSet ссылается на отсутствующий сервис. // Включены рекомендации по проверке и исправлению. ], "kind": "StatefulSet", "name": "dapp-gitops/argocd-application-controller", "parentObject": "" }, "status": {} }, { "apiVersion": "core.k8sgpt.ai/v1alpha1", "kind": "Result", .... "spec": { "backend": "localai", "details": "Error: Service lacks endpoints due to mismatched/base64-encoded label selector. \nSolution: 1. Check service's label selector. 2. Decode 'kubevirt.io=' and 'virt-exportproxy' using base64. 3. Ensure pods match decoded labels. 4. Update selector/pod labels. 5. Restart service/pods.", "error": [ { ... "text": "Service has no endpoints, expected label kubevirt.io=virt-exportproxy" } ], "kind": "Service", "name": "kubevirt-hyperconverged/virt-exportproxy", "parentObject": "" }, // Обнаружена ошибка: Сервис не имеет endpoints из-за несоответствия селектора меток. // Рекомендации включают проверку и корректировку селектора и перезапуск сервисов. "status": {} } ], ... }