Налаштування готового до GitOps кластера в Azure з AKS, Argo CD та Terraform
Сьогодні ми зануримося у світ 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.
4 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів