Настройка постоянного хранилища для дополнительных компонентов#

После установки кластера инструменты разворачиваются с использованием томов EmptyDir. Для промышленной эксплуатации необходимо переконфигурировать их на использование постоянных томов - Persistent Volumes. В результате создания кластера с утилитой Dactl по умолчанию создается StorageClass local-storage.

Примечание

Использование внешних хранилищ является рекомендуемой практикой, обеспечивающей надежность и доступность данных. Необходимо установить подходящий StorageClass, который обеспечит необходимую производительность, надежность и доступность системы.

Перечень настроек постоянного хранилища для компонентов:

Alerting#

Для настройки постоянного хранилища выполните следующие шаги:

  1. Создайте файл alerting-persistence.yaml и настройте persistence для Alertmanager:

    logging-persistence.yaml
    apiVersion: config.dropapp.ru/v1alpha1
    kind: Component
    metadata:
      name: alerting
    spec:
      tools:
      - name: alertmanager
        values:
          persistence:
            enabled: true
            storageClass: openebs-hostpath # openebs тут как пример
            accessModes:
            - ReadWriteOnce
            size: 100Mi
    

    Важно

    Просто обновить конфигурацию не получится, так как Kubernetes не позволяет обновлять разделы volume для StatefulSet, поэтому нужно удалить компонент Alerting.

  2. Удалите компонент Alerting:

    ./kubectl delete component alerting
    
  3. Пересоздайте ресурсы конфигурационного файла с постоянным хранилищем, применив манифест:

    ./kubectl apply -f ./alerting-persistence.yaml
    

Ресурсы компонента Alerting будут пересозданы.

Logging#

Для настройки постоянного хранилища выполните следующие шаги:

  1. Создайте файл logging-persistence.yaml и настройте persistence для Vector-aggregator:

    logging-persistence.yaml
    apiVersion: config.dropapp.ru/v1alpha1
    kind: Component
    metadata:
      name: logging
    spec:
      tools:
      - name: vector-aggregator
        values:
          persistence:
            enabled: true
            storageClassName: openebs-hostpath # openebs приведен как пример
    

    Важно

    Просто обновить конфигурацию не получится, так как Kubernetes не позволяет обновлять разделы volume для StatefulSet, поэтому нужно удалить компонент Logging.

  2. Удалите компонент Logging:

    ./kubectl delete component logging
    
  3. Пересоздайте ресурсы конфигурационного файла с постоянным хранилищем, применив манифест:

    ./kubectl apply -f ./logging-persistence.yaml
    

Ресурсы компонента Logging будут пересозданы.

Monitoring#

Для настройки постоянного хранилища выполните следующие шаги:

  1. Создайте файл logging-persistence.yaml и настройте persistence для Victoria-metrics-operator, Console-dashboards, Kube-state-metrics, Prometheus-node-exporter, Metrics-server, Victoria-metrics-k8s-stack:

    monitoring-persistence.yaml
    apiVersion: config.dropapp.ru/v1alpha1
    kind: Component
    metadata:
      name: monitoring
    spec:
      tools:
      - name: victoria-metrics-k8s-stack
        values:
          vmcluster:
            spec:
              vmstorage:
                storage:
                  volumeClaimTemplate:
                    spec:
                      storageClassName: openebs-hostpath # openebs приведен как пример
                      resources:
                        requests:
                          storage: 10Gi
              vmselect:
                storage:
                  volumeClaimTemplate:
                    spec:
                      storageClassName: openebs-hostpath # openebs приведен как пример
                      resources:
                        requests:
                          storage: 2Gi
    

    Важно

    Просто обновить конфигурацию не получится, так как Kubernetes не позволяет обновлять разделы volume для StatefulSet, поэтому нужно удалить компонент Monitoring.

  2. Удалите компонент Monitoring:

    ./kubectl delete component monitoring
    
  3. Пересоздайте ресурсы конфигурационного файла с постоянным хранилищем, применив манифест:

    ./kubectl apply -f ./monitoring-persistence.yaml
    

Ресурсы компонента Monitoring будут пересозданы.