Skip to content

Установка Unified Agent для мониторинга метрик пода с помощью политики Kyverno.

License

Notifications You must be signed in to change notification settings

yandex-cloud-examples/yc-k8s-unified-agent-deploy-with-kyverno

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Установка Unified Agent для мониторинга метрик пода с помощью политики Kyverno

Установить kyverno

Установите Kyverno из Kubernetes Marketplace или при помощи Helm-чарта: Инструкции по установке

Создание политики

Создайте файл inject-unified-agent.yaml со следующим содержимым, заменив <FOLDER_ID> на идентификатор Вашего каталога в Yandex Cloud:

apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: inject-unified-agent
spec:
  rules:
  - name: inject-unified-agent
    match:
      resources:
        kinds:
        - Deployment
        - DaemonSet
        - StatefulSet
    mutate:
      patchStrategicMerge:
        metadata:
          annotations:
            (monitoring.yc.io/unified-agent-inject): "true"
        spec:
          template:
            spec:
              containers:
              - name: unified-agent
                image: cr.yandex/yc/unified-agent
                imagePullPolicy: IfNotPresent
                env:
                  - name: FOLDER_ID
                    value: <FOLDER_ID>
                  - name: SCRAPE_PORT
                    value: "{{request.object.metadata.annotations.\"monitoring.yc.io/scrape-port\"}}"

Создайте политику при помощи команды:

kubectl apply -f inject-unified-agent.yaml

Создайте приложение

Отредактируйте аннотации существующего приложения, если оно производит экспорт метрик Prometheus, либо создайте тестовое приложение NGINX.

Создайте файл nginx.yaml со следующим содержимым:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  annotations:
    monitoring.yc.io/unified-agent-inject: "true"
    monitoring.yc.io/scrape-port: "8080"
spec:
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: nginx:1.15

Создайте приложение при помощи команды:

kubectl apply -f nginx.yaml

Убедитесь, что под приложения содержит сайдкар с контейнером unified-agent, который находится в состоянии Running:

kubectl describe pod nginx-5c4cd884f8-mtzxz

Результат

Убедитесь, что метрики поступают в Yandex Monitoring. На главной странице сервиса Yandex Monitoring перейдите в раздел Обзор метрик.

В строке запроса выберите:

  • каталог, в который собираются метрики;
  • значение метки service=custom;
  • значение метки host с именем пода Kubernetes.
"*"{folderId="<FOLDER_ID>", service="custom", host="nginx-5c4cd884f8-mtzxz"}

About

Установка Unified Agent для мониторинга метрик пода с помощью политики Kyverno.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published