Налаштування готового до GitOps кластера в Azure з AKS, Argo CD та Terraform

💡 Усі статті, обговорення, новини про DevOps — в одному місці. Приєднуйтесь до DevOps спільноти!

Сьогодні ми зануримося у світ GitOps, щоб дізнатися, як налаштувати готовий до GitOps кластер на Azure за допомогою AKS, Argo CD та Terraform. GitOps — це сучасна методологія розробки та розгортання програмного забезпечення, яка використовує репозиторії Git як єдине джерело даних як для інфраструктури, так і для програмного коду. У GitOps вся система, включаючи інфраструктуру та конфігурації додатків, оголошується та контролюється версіями в сховищі Git.

Крок 1. Ініціалізація репозиторія Git

Ми починаємо зі створення порожнього репозиторію Git, який буде зберігати нашу конфігурацію інфраструктури. Перший файл, який ми створимо, визначатиме постачальників, необхідних для налаштування нашого кластера GitOps.

Оскільки ми націлені на Azure Cloud, ми оголошуємо офіційним постачальником Azure. Перед почаком важливо перевірити і обрати версію, щоб забезпечити узгодженість, у цьому випадку ми використовуємо версію3.84.0. Далі ми ініціалізуємо постачальників наступною командою:

terraform init

Крок 2: Визначаємо групу ресурсів і віртуальну мережу

Ми визначаємо групу ресурсів, яка містить наш кластер і віртуальну мережу Kubernetes. Служба Azure Kubernetes (AKS) створить спеціальну групу ресурсів для вузлів Kubernetes. Замість визначення нової групи ми використовуємо data ключове слово для посилання на існуючу.

Приклад конфігурації:

resource «azurerm_resource_group» «aks_group» {
name = «my-aks-group»
location = «East US»
}

Крок 3: Налаштування кластера AKS

Далі ми налаштовуємо кластер AKS, вказуючи такі параметри, як ім’я кластера, розташування та група ресурсів. Ми також визначаємо назву групи ресурсів вузла, або Azure автоматично згенерує назву.

Ми використовуємо Standard_DS2_v2 тип машин для наших вузлів, оскільки він достатній для розміру кластера, який ми створюємо.

Застосуваня змін Terraform:

Щоб перевірити конфігурацію, ми запускаємо:

terraform plan

Якщо все виглядає добре, ми застосовуємо зміни за допомогою:

terraform apply

Підтверджуємо введенням yes коли буде запропоновано. Потім Terraform створить усі ресурси в Azure, використовуючи облікові дані, надані під час az login процесу.

Крок 4: Перевірка статусу кластера

Коли кластер створено, ми запитуємо необхідні облікові дані від Azure:

az aks get-credentials —resource-group my-aks-group —name my-aks-cluster

Потім ми можемо перевірити статус наших вузлів:

kubectl get nodes

Крок 5. Розгортання Argo CD із Terraform і Helm

Коли кластер Kubernetes запущено, наступним кроком є ​​розгортання Argo CD за допомогою Terraform із постачальником Helm.

Під час розгортання ви можете зіткнутися з помилкою, якщо у постачальника Helm немає належних облікових даних для доступу до кластера Kubernetes. Щоб виправити це, надайте необхідні облікові дані та повторно запустіть сценарій.

Команди розгортання:

terraform apply

Після завершення процесу ми перевіряємо, що Argo CD розгорнуто:

kubectl get pods -n argocd

Крок 6. Отриманя доступу до інтерфейсу користувача Argo CD

Щоб отримати доступ до інтерфейсу користувача Argo CD, ми використовуємо переадресацію портів, оскільки вхідні ресурси не визначено:

kubectl port-forward svc/argocd-server -n argocd 8080:443

Потім ми отримуємо пароль адміністратора за допомогою:

kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 -d

Увійшовши в інтерфейс користувача за адресою: https://localhost:8080, ми побачимо, що ще не розгорнуто жодної програми.

Виконавши ці кроки, ми успішно налаштували готовий для GitOps кластер на Azure за допомогою AKS, Argo CD і Terraform. Ця основа дозволяє впорядковане розгортання з контрольованими версіями, кероване безпосередньо зі сховища Git.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Буде продовження? Бо стаття не відповідає першій картинці

Порада автору на майбутнє — не вставляти скріни в статтю, бо нічорта не видно. Краще вставити відформатований код)

дякую. так там жеж i код є )

я про код, який на скрінах, конфіг в terraform) його погано видно, тому замість скрінів я б рекомендував просто код вставляти)

Підписатись на коментарі