Юзкейс: развернуть MKS кластер в Yandex Cloud, поставить NGINX Ingress и Argo CD — с помощью ИИ
Ниже — практический юзкейс для пользователей нашей системы: как с помощью ИИ-помощника повторить полный сценарий “с нуля до работающего Ingress и Argo CD” в Yandex Cloud (Managed Kubernetes).
Сценарий ориентирован на ситуацию, когда на вашей машине уже установлен и настроен yc (Yandex Cloud CLI), а ИИ имеет доступ к этой машине и может выполнять команды.
Что в итоге получится
- Managed Kubernetes кластер
demo9-k8s - Node group
demo9-ng1 - Установленный
ingress-nginxс внешним IP (ServiceLoadBalancer) - Установленный Argo CD, опубликованный через Ingress
- Проверка, что Ingress реально роутит трафик на тестовый сервис
Шаг 0. Подготовка (что нужно заранее)
- На машине, к которой подключена наша система, установлен
ycи выполненyc init. - Есть права создавать Managed Kubernetes, VPC, Load Balancer.
- Есть сеть/подсеть в нужной зоне (часто уже есть
default).
Команда для ИИ (пример запроса):
- «Проверь, что
ycнастроен, покажи cloud-id/folder-id, список сетей и подсетей. Затем создай кластерdemo9-k8s»
Место для скриншота #1: экран с результатом проверки окружения (версии yc, yc config list, сеть/подсеть).
Шаг 1. Создать кластер Managed Kubernetes
Попросите ИИ:
- «Создай кластер Managed Kubernetes с именем
demo9-k8sвru-central1-a, вdefaultnetwork/subnet, с публичным endpoint мастера».
ИИ должен:
- создать кластер
- дождаться статуса
RUNNING/HEALTHY
Место для скриншота #2: карточка/лог, где видно demo9-k8s: RUNNING/HEALTHY и внешний endpoint мастера.
Шаг 2. Создать node group
Попросите ИИ:
- «Добавь node group
demo9-ng1: 2 ноды, platform standard-v2, 2 CPU, 4 GB RAM, диск SSD 64GB, containerd, с публичными IP на нодах».
ИИ должен:
- создать node group
- дождаться готовности
- получить kubeconfig (
yc managed-kubernetes cluster get-credentials ...) - проверить
kubectl get nodes(нодыReady)
Шаг 3. Поставить NGINX Ingress Controller
Попросите ИИ:
- «Поставь ingress-nginx через Helm в namespace
ingress-nginx, сервис контроллера сделайLoadBalancer».
ИИ должен:
- установить helm (если нет)
- поставить chart
ingress-nginx/ingress-nginx - дождаться готовности deployment
- дождаться внешнего IP у сервиса
ingress-nginx-controller
Частая проблема: квота на Load Balancer
Если внешний IP долго pending, ИИ проверит события сервиса и может увидеть ошибку:
Quota limit ylb.networkLoadBalancers.count exceeded
Тогда нужно увеличить квоту на ylb.networkLoadBalancers.count (в консоли/через поддержку, в зависимости от доступности quota-request API).
Место для скриншота #3: событие SyncLoadBalancerFailed с текстом про quota exceeded + (после фикса) сервис с EXTERNAL-IP.
Шаг 4. Проверить, что Ingress работает (тестовый сервис)
Попросите ИИ:
- «Разверни тестовый сервис (например, echo-server) и создай Ingress, чтобы по host-запросу отдавался ответ через внешний IP ingress-nginx».
В демо использовался трюк с nip.io:
echo.<LB_IP>.nip.ioрезолвится в<LB_IP>без настройки DNS.
Проверка:
curl -H "Host: echo.<LB_IP>.nip.io" http://<LB_IP>/
Шаг 5. Поставить Argo CD и опубликовать через Ingress
Попросите ИИ:
- «Накати Argo CD в namespace
argocd(официальный манифест), выведи наружу через ingress-nginx, дай URL и админский пароль».
ИИ должен:
- применить
install.yamlArgo CD - дождаться Ready основных компонентов
- (для простоты HTTP) включить
server.insecure=true - создать Ingress на
argocd.<LB_IP>.nip.io - вывести initial admin password из
argocd-initial-admin-secret
Место для скриншота #4: веб-интерфейс Argo CD (страница логина) по argocd.<LB_IP>.nip.io.
Важный нюанс: admission webhook ingress-nginx
Иногда при создании Ingress может появиться ошибка валидации webhook с TLS (x509 unknown authority). В демо для ускорения ИИ временно отключил admission webhooks у ingress-nginx. Для production-использования лучше корректно починить webhook-сертификаты и включить проверку обратно.
Как “свернуть демо” (без риска сломать чужое)
Правильный запрос к ИИ:
- «Удалить только то, что создавали в демо: namespaces demo/argocd/ingress-nginx (если это отдельный кластер), node group demo9-ng1 и кластер demo9-k8s. Другие кластера/балансеры не трогать. В конце покажи список оставшихся кластеров».
ИИ должен:
- удалить
demo,argocd,ingress-nginx - удалить node group
demo9-ng1 - удалить кластер
demo9-k8s - проверить, что другие кластера не затронуты
Итог
Этот юзкейс показывает, как пользователь нашей системы может одной цепочкой запросов к ИИ:
- поднять MKS кластер
- добавить ноды
- развернуть ingress-nginx
- решить типичную проблему с квотой на LB
- поставить Argo CD
- получить публичный доступ через Ingress
Всё это делается без ручного SSH и без «копипасты» команд — пользователь описывает задачу на человеческом языке, а ИИ выполняет необходимые шаги и возвращает готовые ссылки/пароли/статусы.