Flux2: различия между версиями

Материал из ALT Linux Wiki
Строка 37: Строка 37:
</pre>
</pre>
без необходимости подключения к <code>кластеру Kubernetes</code>.
без необходимости подключения к <code>кластеру Kubernetes</code>.
==== Создание (если еще не создан) ssh-ключа ====
Если ssh-ключ типа <code>ed25519</code> еще не сформирован вызовите клманду:
<pre>
ssh-keygen -t ed25519
</pre>
Скопируйте открытый ключ из файла <code>~/.ssh/id_ed25519.pub</code>
и добавьте его на странице добавления SSH-ключей.
[[Файл:AddKey.png||альт=Добавление открытого ключа в gitea-репозиторий|Добавление открытого ключа в gitea-репозиторий]]


==== Создание git-репозитория ====
==== Создание git-репозитория ====
Строка 44: Строка 56:
в git-репозитории  
в git-репозитории  
[https://gitea.basealt.ru/ gitea.basealt.ru]
[https://gitea.basealt.ru/ gitea.basealt.ru]
[[Файл:GitrepoCreate.png|мини]]
[[Файл:GitrepoCreate.png|GitrepoCreate.png]]
 
==== Создание (если еще не создан) ssh-ключа ====


==== Загрузка flux-манифестов в git-репозиторий и разворачиние flux-манифестов в kubernetes-кластере ====
==== Загрузка flux-манифестов в git-репозиторий и разворачиние flux-манифестов в kubernetes-кластере ====

Версия от 08:56, 31 июля 2024

Установка и настройка flux2

Flux2 — это инструмент для синхронизации кластеров Kubernetes с источниками конфигурации (такими как репозитории Git и артефакты OCI), а также для автоматизации обновлений конфигурации при необходимости развертывания нового кода.

Flux2 для бранча sisyphus включает в себя следующие компоненты (с версиями на 30.07.2024):

  • команда flux пакета flux2 (версия 2.3.0);
  • образ registry.altlinux.org/sisyphus/flux2/source-controller:v1.3.0;
  • образ registry.altlinux.org/sisyphus/flux2/notification-controller:v1.3.0;
  • образ registry.altlinux.org/sisyphus/flux2/kustomize-controller:v1.3.0;
  • образ registry.altlinux.org/sisyphus/flux2/helm-controller:v1.0.1;
  • образ registry.altlinux.org/sisyphus/flux2/image-automation-controller:v0.38.0;
  • образ registry.altlinux.org/sisyphus/flux2/image-reflector-controller:v0.32.0.

(Выделенные жирным шрифтом являются обязательными).

Разворачивание flux с хранением манифестов в git-репозиториях

В данном разделе описан способ универсальный способ хранения манифестов в любом git-репозитории, поддерживающий доступ по SSH Private Key. В этом случае необходимо наличие (возможно пустого) репозитория. Для git-репозиториев различных типов существуют специализированные способы работы с git-репозиториями (см. Flux bootstrap). В этих случаях flux сам создает необходимый указанный git-репозиторий.

Команда

flux bootstrap git ... 

развертывает Flux-контроллеры в кластере Kubernetes и настраивает контроллеры для синхронизации состояния кластера из git-репозитория . Помимо установки контроллеров, команда flux bootstrap отправляет flux-манифесты в git-репозиторий и настраивает flux для обновления из git-репозитория.

После запуска команды

flux bootstrap git ... 

в дальнейшем любую операцию в кластере (включая обновления flux) можно выполнить с помощью

git push

без необходимости подключения к кластеру Kubernetes.

Создание (если еще не создан) ssh-ключа

Если ssh-ключ типа ed25519 еще не сформирован вызовите клманду:

ssh-keygen -t ed25519

Скопируйте открытый ключ из файла ~/.ssh/id_ed25519.pub и добавьте его на странице добавления SSH-ключей. Добавление открытого ключа в gitea-репозиторий


Создание git-репозитория

В данном примере создадим git-репозиторий alt/fluxtest в git-репозитории gitea.basealt.ru GitrepoCreate.png

Загрузка flux-манифестов в git-репозиторий и разворачиние flux-манифестов в kubernetes-кластере

Разворачивание podinfo deployment

Рассмотрим разворачивание решения podinfo, используемый в CNCF-проектах для доступа к информации POD'ов и тестирования.

В общем случае любой git-репозиторий поддерживаемый flux должен содержать каталог с файлом kustomization.yaml, который и обеспечивает генерацию манифестов для конкретного deployments.

Разворачивание nginx deployment