Оркестровка. Каков Рекомендуемый Способ Отслеживания Различий Между Несколькими Пространствами Имен/Кластерами Kubernetes?

  • Автор темы GodWar
  • Обновлено
  • 21, Oct 2024
  • #1

Дан кластер Kubernetes с двумя пространствами имен; Каков рекомендуемый способ мониторинга и синхронизации различий в картах конфигурации, развертываниях, входах и т. д. между пространствами имен?

#kubernetes #оркестрация

GodWar


Рег
13 Feb, 2008

Тем
69

Постов
215

Баллов
580
  • 25, Oct 2024
  • #2

В настоящее время мы расследуем https://github.com/roboll/helmfile для простой синхронизации диаграмм Helm между пространствами имен.

 

Yuzka


Рег
16 Dec, 2011

Тем
65

Постов
202

Баллов
567
  • 25, Oct 2024
  • #3

Редактировать: Сценарий развертывания, описанный в этом ответе, очень похож Хелмфайл и сейчас мы находимся в процессе обновления до Helmfile, чтобы мы могли отказаться от наших скриптов, которые запускают несколько выпусков Helm, поскольку с этим Helmfile работает хорошо.

Это немного альтернативный и косвенный ответ. Используйте лучшие практики «инфраструктура как код», чтобы избежать рассинхронизации сред. Я верю, что люди найдут это полезным альтернативным предложением и действительным ответом.

Профилактика лучше лечения. Не позволяйте пространствам имен рассинхронизироваться, рассматривая вашу конфигурацию как код и управляя ею через git. Helm — менеджер пакетов для конфигурации Kubernetes. Он может обрабатывать произвольные объекты конфигурации, такие как расширения Openshift. Это позволит вам настроить конвейер развертывания и рабочий процесс git, который обеспечит синхронизацию ваших сред. (Обновление: используйте Helmfile для управления несколькими выпусками Helm).

В качестве примера в нашей настройке у нас есть диаграмма Helm, которая просто устанавливает карты конфигурации, и другая, которая просто устанавливает секреты. Фактические значения для установки передаются как параметр, например my-app-secret-values.yaml . So we have different yaml values all under git and a deploy script that iterates over them applying the helm chart that loads the values and updates the corresponding configmap or secret. Helm reads, compares, and only writes when something has changed. So the deploy script will result in only changing a secret or config map that has changed in git. All the configuration is under git and managed like code. Syncing configuration between environments can then be managed just like promotion of code. As a bonus helm creates a backup every version of every object it changes stored inside of Kubernetes. If let's you list the prior versions and rollback to a previous configuration. Also as everything is deployed from git all the history of all settings in all namespaces can be seen in git.

Мы также устанавливаем и запускаем основные приложения в виде традиционных диаграмм Helm, которые продвигаются через среды. Эти управляющие диаграммы ссылаются на карты конфигурации и секреты, которые развертываются отдельно, когда мы хотим настроить параметры в данной среде.

 

Verbena700


Рег
19 Mar, 2020

Тем
61

Постов
199

Баллов
504
  • 25, Oct 2024
  • #4

Heptio открыла исходный код инструмента под названием Тезей чтобы помочь с этим. В Kubernetes нет ничего встроенного для этого, но воспользуйтесь утилитой Тесей, вы сможете написать для этого скрипт.

 

Rusos


Рег
15 Jun, 2005

Тем
94

Постов
217

Баллов
697
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно