Введение
Kubernetes (k8s) стал стандартом оркестрации контейнеров, но его крутая кривая обучения часто отпугивает новичков. Написание манифестов для Pod, Service, Ingress, создание Helm-чартов и настройка деплоя — рутинные задачи, которые можно автоматизировать с помощью правильно составленных промптов (запросов) для AI-ассистентов. В этой статье мы собрали 10 конкретных, готовых к копированию промптов для работы с Kubernetes, которые сэкономят часы ручного труда. Каждый промпт сопровождается пояснением и примером использования.
1. Генерация базового манифеста Pod
Для чего: Быстро создать YAML-файл простого Pod с контейнером на основе образа.
Промпт:
Сгенерируй YAML-манифест для Kubernetes Pod с именем web-app, использующий образ nginx:1.25-alpine. Контейнер должен слушать на порту 80. Добавь метки app: web и env: production. Ресурсы: CPU request — 100m, limit — 200m; memory request — 128Mi, limit — 256Mi.
Пример использования: Скопируйте промпт в ChatGPT, Claude или Gemini — получите готовый манифест, который можно сразу применить через kubectl apply -f.
2. Создание Service (ClusterIP и NodePort)
Для чего: Сгенерировать манифест Service для внутреннего или внешнего доступа к подам.
Промпт:
Напиши YAML для Kubernetes Service типа ClusterIP с именем api-service. Селектор — app: api. Порты: targetPort 8080, port 80. Также создай отдельный манифест для NodePort-сервиса с тем же селектором, но с портом 30080 на ноде.
Пример использования: Промпт выдаёт два манифеста, которые можно сохранить в service-clusterip.yaml и service-nodeport.yaml. Удобно для быстрой настройки внутреннего и внешнего трафика.
3. Манифест Ingress с правилами маршрутизации
Для чего: Создать Ingress-ресурс для доступа к сервисам по доменному имени.
Промпт:
Сгенерируй YAML-манифест Ingress для Kubernetes (используй API версии networking.k8s.io/v1). Хост: myapp.example.com. Путь /api должен вести на сервис api-service:80, путь /web — на web-service:80. Добавь аннотацию cert-manager.io/cluster-issuer: letsencrypt-prod для автоматического получения SSL-сертификата.
Пример использования: После генерации примените манифест — Ingress-контроллер (например, NGINX Ingress Controller) начнёт маршрутизировать трафик. Проверено на множестве продакшен-кластеров.
4. Деплоймент с стратегией обновления RollingUpdate
Для чего: Автоматизировать создание Deployment с правильной стратегией обновления.
Промпт:
Создай YAML для Kubernetes Deployment с именем backend-app. Образ: myregistry/backend:v2. Реплики: 3. Стратегия обновления — RollingUpdate с maxSurge: 25% и maxUnavailable: 0. Добавь livenessProbe (HTTP GET /health, порт 3000, initialDelaySeconds 10, periodSeconds 5) и readinessProbe (HTTP GET /ready, порт 3000, initialDelaySeconds 5, periodSeconds 10).
Пример использования: Такой промпт генерирует манифест, который обеспечивает zero-downtime деплой. Особенно полезно для микросервисных архитектур.
5. Helm-чарт с нуля
Для чего: Создать структуру Helm-чарта с шаблонами и values.
Промпт:
Сгенерируй структуру Helm-чарта с именем my-chart. Должны быть каталоги templates/ и charts/. Создай файл Chart.yaml с описанием (version: 0.1.0, appVersion: 1.0). В templates/ сделай шаблоны для Deployment, Service, Ingress с использованием значений из values.yaml. В values.yaml пропиши: replicaCount: 2, image.repository: nginx, image.tag: latest, service.port: 80, ingress.enabled: true, ingress.host: chart-example.local.
Пример использования: Промпт выдаёт полную директорию чарта. Можно скопировать в проект и адаптировать под свой образ. Helm-чарты — стандарт де-факто для управления сложными приложениями.
6. Helm-чарт с зависимостями (PostgreSQL, Redis)
Для чего: Создать чарт, который подтягивает сторонние зависимости.
Промпт:
Создай Helm-чарт app-with-db, который включает зависимости: PostgreSQL (битрейм) и Redis (битрейм). В Chart.yaml пропиши зависимости с версиями и репозиториями. В values.yaml добавь настройки для postgresql (auth.database: myapp, auth.username: user) и redis (architecture: standalone, auth.enabled: false).
Пример использования: После генерации выполните helm dependency update, и чарт скачает зависимости. Удобно для быстрой сборки типового стека.
7. ConfigMap и Secret из переменных окружения
Для чего: Сгенерировать манифесты для управления конфигурацией.
Промпт:
Напиши YAML для ConfigMap с именем app-config, содержащий ключи: DB_HOST=localhost, DB_PORT=5432, LOG_LEVEL=info. Создай Secret с именем app-secret, где пароль к БД закодирован в base64 (пароль — mysecretpassword). Добавь пример Pod, который монтирует ConfigMap как env-переменные и Secret как том.
Пример использования: Промпт даёт готовые манифесты для хранения конфигов и секретов. Важно: не храните секреты в открытом виде в коде — используйте Sealed Secrets или External Secrets Operator.
8. StatefulSet для базы данных
Для чего: Создать манифест StatefulSet с PersistentVolumeClaim.
Промпт:
Сгенерируй YAML для StatefulSet с именем mysql-db, образ mysql:8.0. Реплики: 1. Добавь PersistentVolumeClaim с именем data-mysql, storage: 10Gi, accessModes: ReadWriteOnce. Порт контейнера — 3306. Добавь livenessProbe и readinessProbe с TCP-проверкой на порт 3306.
Пример использования: StatefulSet гарантирует стабильные имена подов и persistent storage — идеально для баз данных. Промпт генерирует корректный манифест с PVC.
9. Job и CronJob для фоновых задач
Для чего: Создать однократный Job или периодический CronJob.
Промпт:
Напиши YAML для Job с именем data-migration, образ busybox, команда: sh -c "echo Running migration; sleep 10". Также создай CronJob с именем cleanup-job, расписание */5 * * * *, образ alpine, команда: sh -c "echo Cleaning up".
Пример использования: CronJob — стандартный способ запуска задач по расписанию (например, бекапы). Промпт подходит для быстрого прототипирования.
10. Оптимизация YAML-манифестов через Kustomize
Для чего: Использовать Kustomize для управления вариациями манифестов.
Промпт:
Создай kustomization.yaml, который включает файлы: deployment.yaml и service.yaml. Добавь патч для изменения количества реплик на 5 в окружении production. Используй commonLabels: app: my-app. Также добавь namePrefix: prod-.
Пример использования: Kustomize встроен в kubectl (через -k). Промпт генерирует базовую структуру, которую можно расширять.
Заключение
Предложенные промпты покрывают 80% типовых задач при работе с Kubernetes: от создания простых Pod до Helm-чартов и Kustomize. Копируйте их, адаптируйте под свои образы и имена — и деплой станет заметно быстрее. Помните: AI-ассистенты не заменяют понимание архитектуры, но отлично справляются с генерацией шаблонного кода. Экспериментируйте, комбинируйте промпты и автоматизируйте рутину.
Если вы хотите изучить Kubernetes глубже и научиться писать собственные Helm-чарты, обратите внимание на курсы ASI Biont — они дают практические навыки работы с контейнерами и оркестрацией.
Комментарии