ChatGPT вместо ночного дежурства: 10 промтов для Docker, Kubernetes и Terraform, которые я использую в проде

Каждый, кто хоть раз сталкивался с падающим подом в три часа ночи или с ошибкой в Terraform-плане перед релизом, знает: инфраструктура не прощает невнимательности. Но что, если переложить часть рутины на ChatGPT? Я не предлагаю слепо доверять ИИ в проде — наоборот, покажу, как использовать промты, чтобы быстро получить черновик конфигурации, разобрать логи или найти причину сбоя, а затем проверить результат вручную. Эти 10 промтов я отшлифовал на реальных задачах: от генерации Dockerfile до диагностики CrashLoopBackOff и написания модулей Terraform. Каждый — с примером запроса и разбором, как убедиться, что ИИ не наврал.

Важно: ChatGPT не заменяет инженера, но может стать вашим «вторым пилотом» в инфраструктурных задачах. Главное — знать, как правильно спросить и что проверять. Поехали.

1. Генерация Dockerfile с оптимизацией под размер и безопасность

Задача: Написать Dockerfile для Python-приложения, чтобы образ был минимальным и не содержал уязвимостей.

Промт:

Ты — DevOps-инженер. Напиши Dockerfile для Python 3.11 приложения на FastAPI. Требования:
- multi-stage сборка
- использование slim-образа
- запуск от непривилегированного пользователя
- кэширование зависимостей pip
- игнорирование dev-зависимостей
Добавь комментарии, объясняющие ключевые решения. Не используй latest-теги.

Пример использования: Я дал этот промт для сервиса, который раньше собирался в образ размером 1.2 ГБ. ChatGPT предложил такой вариант:

# ---- Build stage ----
FROM python:3.11-slim AS builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --user -r requirements.txt

# ---- Runtime stage ----
FROM python:3.11-slim
WORKDIR /app
COPY --from=builder /root/.local /root/.local
COPY . .
ENV PATH=/root/.local/bin:$PATH
RUN useradd -m appuser && chown -R appuser:appuser /app
USER appuser
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

Проверка: Соберите образ и проверьте размер (docker images). Убедитесь, что пользователь appuser действительно создан и имеет права. Просканируйте образ на уязвимости (например, docker scan или Trivy). В моём случае размер уменьшился до 280 МБ, а количество CVE снизилось.

2. Диагностика падающего пода в Kubernetes

Задача: Под в состоянии CrashLoopBackOff, логи не дают явной причины.

Промт:

Я получил такие логи от пода (вставь логи). Под падает с ошибкой. Проанализируй и предложи возможные причины и шаги для устранения. Учти, что это Java-приложение в Kubernetes.

Пример: Логи содержали java.lang.OutOfMemoryError: Java heap space. ChatGPT предположил, что не заданы лимиты памяти, и предложил добавить ресурсы в deployment:

resources:
  requests:
    memory: "512Mi"
  limits:
    memory: "1Gi"

Проверка: Примените изменения в staging, проверьте, что под не перезапускается. Используйте kubectl describe pod для анализа событий.

3. Написание Terraform-модуля для AWS S3

Задача: Создать переиспользуемый модуль для бакета S3 с шифрованием и блокировкой публичного доступа.

Промт:

Напиши Terraform-модуль для AWS S3 bucket. Требования:
- включить шифрование по умолчанию (SSE-S3)
- блокировать публичный доступ
- включить версионирование
- создать output с именем бакета
Используй переменные для имени бакета и тегов. Добавь README с примером использования.

Пример: ChatGPT выдал модуль с файлами main.tf, variables.tf, outputs.tf. В main.tf был ресурс:

resource "aws_s3_bucket" "this" {
  bucket = var.bucket_name
  tags   = var.tags
}

resource "aws_s3_bucket_server_side_encryption_configuration" "this" {
  bucket = aws_s3_bucket.this.id
  rule {
    apply_server_side_encryption_by_default {
      sse_algorithm = "AES256"
    }
  }
}

Проверка: Запустите terraform validate и terraform plan в тестовом окружении. Убедитесь, что все ресурсы создаются корректно и соответствуют политике безопасности.

4. Разбор ошибки в CI/CD пайплайне

Задача: Пайплайн падает на шаге сборки с невнятной ошибкой.

Промт:

Мой CI/CD пайплайн (GitLab CI) падает на шаге сборки Docker-образа. Вот лог ошибки (вставь лог). Объясни причину и предложи исправление.

Пример: Лог содержал Cannot connect to the Docker daemon at unix:///var/run/docker.sock. ChatGPT подсказал, что в GitLab Runner не включён привилегированный режим. Решение: добавить privileged = true в config.toml runner'а.

Проверка: Перезапустите пайплайн после исправления, убедитесь, что шаг проходит.

5. Оптимизация Kubernetes Deployment

Задача: Deployment использует слишком много ресурсов, нужно снизить затраты.

Промт:

Проанализируй мой Deployment (вставь YAML). Предложи, как оптимизировать ресурсы: уменьшить requests/limits, добавить HPA, использовать PodDisruptionBudget. Объясни каждое изменение.

Пример: ChatGPT предложил снизить CPU requests с 1 до 0.5, добавить HPA с целевой загрузкой 70% и настроить PDB с minAvailable: 1.

Проверка: Примените изменения в staging, наблюдайте за метриками (kubectl top pods), убедитесь, что приложение работает стабильно.

6. Генерация Helm-чарта для микросервиса

Задача: Упаковать приложение в Helm-чарт для удобного деплоя.

Промт:

Создай Helm-чарт для микросервиса на Go. Включи Deployment, Service, Ingress, ConfigMap. Параметризуй имя образа, тег, количество реплик, ресурсы. Добавь values.yaml с комментариями.

Пример: ChatGPT сгенерировал структуру чарта с шаблонами, где values.yaml содержал:

replicaCount: 2
image:
  repository: myapp
  tag: latest
  pullPolicy: IfNotPresent
resources:
  limits:
    cpu: 100m
    memory: 128Mi

Проверка: Выполните helm lint и helm template для проверки синтаксиса. Задеплойте в тестовый кластер.

7. Написание политики NetworkPolicy в Kubernetes

Задача: Ограничить трафик между подами: разрешить только определённые соединения.

Промт:

Напиши NetworkPolicy для Kubernetes, которая разрешает входящий трафик только от подов с меткой app=frontend к подам с меткой app=backend на порт 8080. Запрети весь остальной входящий трафик.

Пример: ChatGPT выдал манифест:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-frontend-to-backend
spec:
  podSelector:
    matchLabels:
      app: backend
  policyTypes:
  - Ingress
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: frontend
    ports:
    - protocol: TCP
      port: 8080

Проверка: Примените политику и протестируйте соединения с помощью kubectl exec и curl.

8. Разбор логов Terraform apply

Задача: Terraform apply падает с ошибкой, нужно понять причину.

Промт:

Terraform apply завершился с ошибкой (вставь текст ошибки). Объясни, что пошло не так, и как исправить. Учти, что используется провайдер AWS.

Пример: Ошибка: Error: creating S3 Bucket: BucketAlreadyExists. ChatGPT объяснил, что имя бакета должно быть глобально уникальным, и предложил добавить случайный суффикс через random_id.

Проверка: Внесите изменения, запустите terraform plan и убедитесь, что ошибка исчезла.

9. Автоматизация создания Docker Compose для локальной разработки

Задача: Быстро поднять окружение из нескольких сервисов.

Промт:

Создай docker-compose.yml для локальной разработки: PostgreSQL, Redis, backend на Python (FastAPI), frontend на React. Настрой healthcheck для базы, volumes для персистентности. Добавь переменные окружения.

Пример: ChatGPT сгенерировал compose-файл с сервисами, healthcheck для Postgres и пробросом портов.

Проверка: Запустите docker-compose up, убедитесь, что все сервисы стартуют и доступны.

10. Генерация скрипта для бэкапа etcd в Kubernetes

Задача: Настроить регулярный бэкап etcd в кластере.

Промт:

Напиши bash-скрипт для бэкапа etcd в Kubernetes с использованием etcdctl. Скрипт должен делать снапшот, сжимать его и загружать в S3. Предусмотри ротацию старых бэкапов.

Пример: ChatGPT предложил скрипт с использованием etcdctl snapshot save, tar, aws s3 cp и удалением файлов старше 7 дней.

Проверка: Запустите скрипт вручную, проверьте, что снапшот создаётся и загружается. Восстановите из бэкапа в тестовом кластере.


Эти промты — не волшебная таблетка, а инструмент, который экономит время на рутине. Всегда проверяйте сгенерированные конфиги в тестовой среде, используйте линтеры (hadolint, tflint, kubeval) и не давайте ИИ доступ к продакшену без ревью. ChatGPT хорошо справляется с шаблонными задачами, но окончательное решение — за вами. Попробуйте эти промты в следующем спринте — и, возможно, ночные дежурства станут чуть спокойнее.

← Все статьи

Комментарии

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

12 промтов для UI/UX-дизайнера в Figma: полный цикл от брифа до передачи макета в разработку

17 октября 2026

ChatGPT как DevOps-напарник: 10 промтов, которые не дадут уронить прод

17 октября 2026

12 промтов для Terraform и GitHub Actions: как вести инфраструктуру через диалог с ChatGPT и не сидеть на дежурствах

17 октября 2026

12 промтов для ChatGPT, с которыми DevOps укрощает кластер: kubectl, Helm и DevSecOps без ночных разборов CrashLoopBackOff

17 октября 2026

Лидерство в области ИИ и науки о данных — Директор по ИИ: как превратить соответствие требованиям EU AI Act 2026 в работающую систему управления

17 октября 2026

12 DevSecOps-промтов для аудита Docker, Kubernetes и OWASP Top 10: находим уязвимости до релиза

17 октября 2026

Промты для SEO в 2026: как заставить ChatGPT работать за младшего аналитика — семантика, аудит, контент

17 октября 2026

Docker и Kubernetes без боли: 12 промтов, которые переводят DevOps с языка документации на человеческий

17 октября 2026

Промты, которые верстают, рефакторят и деплоят: как отдать веб-разработку ИИ, не потеряв контроль

17 октября 2026