10 промтов для Kubernetes: манифесты, Helm, деплой — шпаргалка для инженера

10 промтов для Kubernetes: манифесты, Helm, деплой — шпаргалка для инженера

Kubernetes (или просто k8s) стал стандартом для оркестрации контейнеров. По данным CNCF Annual Survey 2025, 96% организаций, использующих контейнеры, применяют Kubernetes в production — это на 5% больше, чем годом ранее. Но даже опытные инженеры тратят часы на написание манифестов, отладку Helm-чартов и настройку деплоя. Я собрал 10 промтов, которые помогут автоматизировать рутину: от создания Pod до кастомизации Helm. Каждый промт можно скопировать, вставить в ChatGPT или аналогичную LLM и получить готовый YAML-файл. В статье — только проверенные подходы, основанные на официальной документации Kubernetes (kubernetes.io/docs) и Helm (helm.sh/docs).

Введение: зачем промты для Kubernetes?

Представьте: вам нужно развернуть микросервис с ConfigMap, Secret, HPA и Ingress. Ручное написание 200 строк YAML — это 30 минут работы и гарантированная опечатка в indent или apiVersion. Промты (от англ. prompt — подсказка) — это инструкции для LLM, которые генерируют корректный код. Они экономят время и снижают число ошибок. По опросу Stack Overflow 2025, 44% разработчиков используют AI-ассистентов для генерации конфигураций, и Kubernetes — одна из топ-3 категорий. В этой подборке — промты для 10 типовых задач, от простых Pod до сложных Helm-чартов с зависимостями.

1. Создание Pod с ресурсами и health check

Задача: Сгенерировать минимальный Pod с nginx, запросами CPU/RAM и liveness probe.

Промт:

Создай YAML-манифест для Pod в Kubernetes, который запускает контейнер nginx:1.25. Укажи: requests: cpu=100m, memory=128Mi; limits: cpu=200m, memory=256Mi; livenessProbe: HTTP GET на порт 80, путь /healthz, initialDelaySeconds=5, periodSeconds=10. Добавь label app: my-nginx.

Пример использования:
Скопируйте промт в чат с LLM. Вы получите YAML вроде:

apiVersion: v1
kind: Pod
metadata:
  name: my-nginx
  labels:
    app: my-nginx
spec:
  containers:
  - name: nginx
    image: nginx:1.25
    resources:
      requests:
        cpu: "100m"
        memory: "128Mi"
      limits:
        cpu: "200m"
        memory: "256Mi"
    livenessProbe:
      httpGet:
        path: /healthz
        port: 80
      initialDelaySeconds: 5
      periodSeconds: 10

Этот манифест можно сразу применить через kubectl apply -f pod.yaml.

2. Deployment с rolling update и стратегией

Задача: Создать Deployment для приложения с тремя репликами, rolling update и readiness probe.

Промт:

Напиши YAML для Deployment в Kubernetes с именем app-frontend, 3 репликами, контейнером image: myapp:1.0, порт 8080. Укажи стратегию rollingUpdate: maxSurge=1, maxUnavailable=0. Добавь readinessProbe: HTTP GET /ready, port 8080, initialDelaySeconds=3, periodSeconds=5. Включи livenessProbe: TCP socket на порт 8080.

Пример использования:
Полученный YAML содержит все поля для production-ready деплоя. После применения kubectl rollout status deployment app-frontend вы увидите, как Pods обновляются по одному.

3. Service (ClusterIP и NodePort)

Задача: Сгенерировать Service двух типов: ClusterIP для внутреннего трафика и NodePort для внешнего доступа.

Промт:

Создай YAML для Service типа ClusterIP, который выбирает Pods с label app: my-app, порт 80 -> targetPort 8080. Также создай второй Service типа NodePort с тем же selector, порт 30080 -> targetPort 8080.

Пример использования:
Вы получите два манифеста. Первый — для внутренней коммуникации между микросервисами, второй — для доступа снаружи кластера через nodeIP:30080.

4. Ingress с правилами маршрутизации

Задача: Настроить Ingress для двух доменов с разными сервисами.

Промт:

Сгенерируй YAML для Ingress (apiVersion networking.k8s.io/v1) с именем main-ingress. Для хоста api.example.com направь трафик на Service api-service:80. Для хоста app.example.com — на Service app-service:80. Добавь аннотацию nginx.ingress.kubernetes.io/rewrite-target: /

Пример использования:
Этот промт подходит для стандартного NGINX Ingress Controller. После применения настройте DNS-записи на IP балансировщика.

5. ConfigMap и Secret для хранения конфигурации

Задача: Создать ConfigMap с переменными окружения и Secret с паролем БД.

Промт:

Напиши YAML для ConfigMap с именем app-config, который содержит: DB_HOST=localhost, DB_PORT=5432. Также создай Secret с именем app-secret, тип Opaque, с полями DB_USER=admin, DB_PASSWORD=pass123 (закодируй в base64). Оба манифеста должны быть в namespace production.

Пример использования:
LLM вернёт корректные YAML с base64-закодированными значениями в Secret. Подключите их к Pod через envFrom.

6. Helm-чарт для микросервиса (структура)

Задача: Создать базовую структуру Helm-чарта для Node.js приложения.

Промт:

Создай структуру Helm-чарта с именем node-app. Включи файлы: Chart.yaml (apiVersion v2), values.yaml с переменными image.repository, image.tag, replicaCount, service.type, service.port. Сгенерируй шаблоны templates/deployment.yaml, templates/service.yaml, templates/_helpers.tpl с метаданными. Используй стандартные функции Helm: .Values, .Release.Name, include.

Пример использования:
После применения helm create вы получите заготовку, но промт даёт более кастомизированный шаблон под конкретные нужды.

7. Helm-чарт с зависимостями (subcharts)

Задача: Добавить зависимость от PostgreSQL в Helm-чарт.

Промт:

В Helm-чарт my-app добавь зависимость от bitnami/postgresql версии 12.x. Напиши Chart.yaml с dependencies, где alias=postgres, condition=postgresql.enabled. В values.yaml добавь блок postgresql.enabled: true, postgresql.auth.database: mydb. Создай шаблон configmap.yaml, который получает строку подключения из зависимого чарта с помощью .Subcharts.postgres.

Пример использования:
Этот промт генерирует корректную структуру для многочартового приложения. Выполните helm dependency update для загрузки зависимостей.

8. HorizontalPodAutoscaler (HPA) на основе CPU

Задача: Настроить автоскалирование Deployment по CPU.

Промт:

Создай YAML для HPA (apiVersion autoscaling/v2) с именем app-hpa. Target: Deployment app-frontend. Минимальное количество реплик: 2, максимальное: 10. Используй метрику CPU: averageUtilization=70%. Добавь метрику memory: averageUtilization=80%.

Пример использования:
После применения kubectl get hpa будет отображаться текущая загрузка. HPA сработает при превышении порогов.

9. Job и CronJob для разовых задач

Задача: Создать Job для миграции БД и CronJob для ежедневного бэкапа.

Промт:

Напиши YAML для Job с именем db-migrate, контейнер image: myapp:1.0, команда ["node", "migrate.js"], restartPolicy: Never. Также создай CronJob с именем daily-backup, расписание "0 2 * * *", контейнер image: backup-tool, команда ["backup", "--all"].

Пример использования:
Job выполнится один раз и завершится. CronJob будет запускаться каждую ночь в 2:00.

10. NetworkPolicy для изоляции трафика

Задача: Ограничить входящий трафик к Pods только от определённых меток.

Промт:

Создай YAML для NetworkPolicy с именем allow-frontend. PolicyTypes: Ingress. PodSelector: app: backend. Ingress rules: from pods with label app: frontend, порт 8080 TCP. Добавьте namespaceSelector: из того же namespace.

Пример использования:
Политика применяется к Pods с меткой app: backend. Только Pods с меткой app: frontend могут обращаться к ним на порт 8080. Это повышает безопасность в многокомпонентных приложениях.

Заключение

Промты — это не замена знанию Kubernetes, а ускоритель рутинных задач. Используйте их для генерации черновиков, а затем проверяйте через kubectl dry-run или helm template. Со временем вы сможете адаптировать эти промты под свой стек, добавляя специфические аннотации, tolerations или sidecar-контейнеры. Помните: лучший способ освоить k8s — практика. Начните с малого: создайте Pod, потом Deployment, а затем Helm-чарт для целого приложения. Удачи в деплое!

ASI Biont поддерживает подключение к Kubernetes API через AI-ассистентов — подробнее на asibiont.com/courses

← Все статьи

Комментарии

Читайте также

Контекстная инженерия: что это такое, как работать с контекстом и почему за это начали платить

9 июля 2026

Атомарные регулярные выражения: как я перестал гадать на кофейной гуще и заставил regex работать предсказуемо

9 июля 2026

Vibe Coding и титаны: Почему Anthropic, OpenAI и SpaceX перевешивают 25 лет кремниевых выходов

9 июля 2026

🤗 Kernels: Major Updates — Что нового в главном инструменте AI-разработчика

9 июля 2026

Запись в сообществе Маркетинг: как AI меняет правила игры и почему компании недооценивают его потенциал

9 июля 2026

Как подключить TFT LCD (ILI9341, ST7789) к AI-агенту ASI Biont: интеграция дисплеев для IoT-дашбордов и уведомлений

9 июля 2026

Интеграция 3D-принтера (Marlin, Klipper) с AI-агентом ASI Biont: автоматизация печати и предиктивная калибровка

9 июля 2026

Графовые базы данных: как освоить Neo4j и Cypher для создания рекомендательных систем и Knowledge Graphs с помощью AI-обучения на Asibiont

9 июля 2026

Data Science с нуля: как освоить профессию будущего с помощью AI-тьютора

9 июля 2026