Эта статья является первой в серии из двух о переходе с Flux v1 на Flux v2:
- Миграция с Flux v1 на Flux v2: официальный метод
- Миграция Flux v1 на Flux v2: масштабная обратная связь (продолжение следует)
В предыдущем статья о Гитопсемы быстро упомянули Flux наряду с ArgoCD. Сегодня мы сосредоточимся на Потокболее конкретно и более подробно.
Нам пришлось обновить его до версии 2 на десятках кластеров Kubernetes как у себя дома, так и у наших клиентов. И я подумал, что это возможность оставить вам отзыв о переходе на эту новую основную версию.
Напоминаем, что такое Flux?
Флюс – это инструмент для GitOps. Проще говоря, он позволяет настроить Kubernetes и работает в режиме pull
.
С одной стороны у нас есть Поток, выполняемый в кластере Kubernetes и с другой репозиторий git со всеми ресурсами для развертывания на кластере. Flux будет регулярно проверять репозиторий git и гарантировать, что объявленные там ресурсы правильно применяются к кластеру. Таким образом, тем, кто отвечает за настройку и эксплуатацию кластера Kubernetes, достаточно отправить изменения в git, чтобы они были развернуты в кластере Kubernetes спасибо Флюксу.
С октября 2020 года Flux v1 считается на техобслуживании, с новыми выпусками, целью которых является только исправление критических ошибок. Flux v2 объявлен жизнеспособным и предпочтительным по сравнению с версией v1 с 30 июня 2021 г. График миграции и поддержки доступен по адресу Документация Flux v2.
Переключиться с Flux v1 на v2
Переработанная архитектура Flux
Во Flux v2 мы переходим от оператора монолитный (часто в сопровождении оператора Helm) к архитектуре с выделенный контроллер по функцияма лучшая интеграция с Kubernetes (со многими пользовательские ресурсы) и др. интерфейс командной строки контролировать все это.
в Контроллеры Flux v2 по умолчаниюна :
- исходный контроллеркоторый заботится о сохранении GitРепозиторий или HelmRepository чтобы обнаружить изменение
- настроить-контроллеркоторый будет применять сверку в соответствии с Кастомизация
- штурвал-контролеркто будет управлять ХелмВыпуск и их примирение
- контроллер уведомленийкоторый позволяет отправлять уведомления
И когда мы используемобновление автоматизации изображенийтакже необходимо добавить:
- контроллер-отражателя изображениякоторый будет использовать Репозиторий изображений и др. Политика изображения для перечисления доступных тегов и их обновления
- контроллер автоматизации изображенийкоторый применит обновление изображения
Прекращение поддержки некоторых исторических компонентов.
Поддержка Шлем v2 был удален. Эта версия Helm устарела с ноября 2020 года, поэтому это не должно быть проблемой для большинства пользователей, которые, вероятно, уже имеют перешел на Helm v3.
минимальная версия Kubernetes, изначально необходимый для использования Flux v2, — это 1.16. Сегодня мы должны отдать предпочтение 1.20.6 минимум!
Куча новых пользовательских ресурсов Flux
Flux v2 поставляется с новыми пользовательские ресурсыбудь то ХелмВыпуск рулевого, оказавшегося всплески на нескольких ресурсах (с репозиторий кроме примера) или для автоматизации обновления изображений. В версии 1 они были основаны на большой степени неявности, теперь мы можем гораздо точнее контролировать то, что делаем.
Несколько элементов, которые ранее находились в строке команды/конфигурации потока v1, также находятся в пользовательские ресурсы. Это упрощает управление всем (особенно частными репозиториями Helm), а также позволяет при необходимости использовать несколько репозиториев git в качестве источников.
С операционной точки зрения одним из больших преимуществ наличия отдельных ресурсов является то, что каждый из них сообщает о своем состоянии независимо: поэтому мы можем тонко приостановить каждый ресурс кластера. Исследовать проблему действительно удобнее, чем большой черный ящик, каким временами был Flux v1.
Более подробная информация доступна на сайте Часто задаваемые вопросы по миграции в котором перечислены основные различия и различные дополнения между версиями 1 и 2 Flux.
Migration Flux v2: все просто
Метод, рекомендованный Руководство по миграции на Flux v2 это использовать flux bootstrap
налить сгенерируйте всю базовую конфигурацию и поместите ее в новый репозиторий git. который будет содержать все ресурсы, перенесенные во Flux v2.
Идея состоит в том, чтобы постепенно переносить манифесты вместе с изменениями в Flux v2. Мы удаляем их из репозитория git, управляемого Flux v1, и добавляем обновленную версию в репозиторий Flux v2, и все должно быть в порядке. Разумеется, вам необходимо отключить вывоз мусора Flux v1 раньше, иначе ресурсы будут удалены, а затем воссозданы вместо того, чтобы быть прикреплены к новой версии Flux. Таким образом, две версии Flux сосуществуют, и мы можем мигрировать в своем собственном темпе.
С некоторыми ХелмВыпускЕсть еще несколько шагов миграции. Мы должны остановить рулевой (Flux v1) во избежание конфликтов с рулевым-контроллером (Flux v2) при поддержке HelmRelease. А затем перенести ХелмВыпуск в новом формате.
Официальный метод имеет то достоинство, что простой и иметь возможность мигрировать постепенно.
К сожалению, я столкнулся с клубок проблем сложным на наших клиентских платформах, что побудило меня отказаться от отмеченного пути, описанного в статье. Миграция с Flow v1 на Flow v2: масштабная обратная связь!
Не пропустите наши следующие статьи DevOps и др. Облачный родной! Следовать Эникс на Твиттер!
2023-09-14 17:30:16
1694749274
#Миграция #Flux #на #Flux #REXP #Gitops