Развертывание Ресурсов Kubernetes в Управляемом и Порядочном Режиме

При развертывании ресурсов Kubernetes в кластере иногда необходимо развернуть их в определенном порядке. Например, определение пользовательского ресурса (CRD) должно существовать до создания любых пользовательских ресурсов этого типа.

Sveltos может помочь вам решить эту проблему, позволяя указать порядок развертывания ресурсов Kubernetes.

Порядок ClusterProfile

A ClusterProfile is a Kubernetes custom resource definition (CRD) that defines the resources that you want to deploy on a set of Kubernetes clusters.

ClusterProfile позволяет клиентам определять порядок:

  • Использование поля helmCharts: Поле helmCharts позволяет указать список диаграмм Helm, которые необходимо развернуть. Sveltos развернет диаграммы Helm в том порядке, в котором они перечислены в этом поле.
  • Использование поля policyRefs: Поле policyRefs позволяет ссылаться на список ресурсов ConfigMap и Secret, содержимое которых необходимо развернуть. Sveltos развернет ресурсы в том порядке, в котором они перечислены в этом поле.

Вот несколько примеров:

  • Следующий ClusterProfile сначала развернет диаграмму Helm Prometheus, а затем диаграмму Grafana:
YAML

 

apiVersion: config.projectsveltos.io/v1alpha1
kind: ClusterProfile
metadata:
  name: prometheus-grafana
spec:
  clusterSelector: env=fv
  syncMode: Continuous
  helmCharts:
  - repositoryURL:    https://prometheus-community.github.io/helm-charts
    repositoryName:   prometheus-community
    chartName:        prometheus-community/prometheus
    chartVersion:     23.4.0
    releaseName:      prometheus
    releaseNamespace: prometheus
    helmChartAction:  Install
  - repositoryURL:    https://grafana.github.io/helm-charts
    repositoryName:   grafana
    chartName:        grafana/grafana
    chartVersion:     6.58.9
    releaseName:      grafana
    releaseNamespace: grafana
    helmChartAction:  Install

Порядок развертывания ресурсов с событиями

В некоторых случаях необходимо развернуть ресурсы Kubernetes только после того, как другие ресурсы будут в здоровом состоянии. Например, задача, создающая таблицу в базе данных, не должна развертываться до тех пор, пока развертывание базы данных не будет здоровым.

Sveltos может помочь вам решить эту проблему, позволяя использовать события для управления развертыванием вашего приложения.

Событие — это уведомление, которое отправляется, когда выполняется определенное условие. Например, можно создать событие, которое отправляется, когда развертывание базы данных становится здоровым.

Затем это событие можно использовать для запуска развертывания задания, которое создает таблицу в базе данных.

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

В приведенном выше примере Sveltos был инструктирован:

  1. Развернуть развертывание PostgreSQL и сервис
  2. Подождать, пока развертывание PostgreSQL будет готово
  3. Развернуть задание, которое создает таблицу в БД
  4. Подождать, пока задание будет завершено
  5. Развернуть todo-app, который может получить доступ к развертыванию PostgreSQL
  6. Подождать, пока todo-app будет здоровым
  7. Развернуть задание, которое добавляет запись в базу данных через todo-app

Все YAML для этого примера можно найти в документации projectsveltos.

Поддержите этот проект

I hope you enjoyed this article! If you did, please check out the GitHub repo for the project. The repo contains the code, documentation, and examples, so it’s a great resource for getting started. 

Вы также можете отметить проект звездочкой, если он вам помог.

Спасибо за внимание!

Source:
https://dzone.com/articles/deploy-kubernetes-resources-in-a-controlled-and-or