Установка дополнительных компонентов#
Перечень сценариев установки дополнительных компонентов:
Примечание
В данном разделе приводятся сценарии установки дополнительных компонентов с настройками инструментов по умолчанию. Дополнительные настройки инструментов приведены в разделе «Конфигурации инструментов дополнительных компонентов».
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 созданы автоматически в пространстве имен
dapp-alerting, проверьте pod:./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 созданы автоматически в пространстве имен
dapp-logging, проверьте pod:./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 созданы автоматически в пространстве имен
dapp-security, проверьте pod:./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 созданы автоматически в пространстве имен
dapp-monitoring, проверьте pod:./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 созданы автоматически в пространстве имен
dapp-gitops, проверьте pod:./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 созданы автоматически в пространстве имен
dapp-devops, проверьте pod:./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 созданы автоматически в пространстве имен
dapp-aiops, проверьте pod:./kubectl get pods -n dapp-aiopsВывод команды покажет список установленных ресурсов и их версии:
NAME READY STATUS RESTARTS AGE k8sgpt-operator-controller-manager-7b8465449f-79bqp 2/2 Running 0 7dПосле установки в выводе будет только K8sGPT-operator.
Интеграция с OpenAI-совместимым API#
Создайте секрет (для примера 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 backend: localai baseUrl: https://openrouter.ai/api/v1 secret: name: dapp-sre-ai-agent-secret key: ai-api-key
Интеграция с GigaChat#
Создайте секрет (для примера API-токен:
32345345detertfdgdg):kubectl create secret generic dapp-sre-ai-agent-secret --from-literal=ai-api-key=32345345detertfdgdg -n dapp-aiopsНастройте инструмент K8sGPT (например, для gpt2giga):
apiVersion: config.dropapp.ru/v1alpha1 kind: Tool metadata: name: k8sgpt spec: values: ai: model: GigaChat-Max backend: gpt2giga # с такой настройкой в pod dapp-sre-ai-agent поднимется sidecar-контейнер, который преобразует OpenAI API-ресурсы в совместимые с GigaChat API baseUrl: http://localhost:8090 # это адрес sidecar-контейнера language: russian secret: name: dapp-sre-ai-agent-secret key: ai-api-key
Результат анализа кластера#
Теперь K8sGPT запустит pod для анализа кластера. Для просмотра результатов воспользуйтесь командой:
kubectl get results -A -o json | jq .
Пример вывода:
Результат запуска pod для анализа состояния кластера
{
"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": {}
}
],
...
}