Введение
Kubernetes (K8s) — стандарт оркестрации контейнеров, но даже опытные инженеры тратят часы на написание манифестов, отладку Helm-чартов и настройку деплоя. Я ежедневно работаю с K8s и использую AI-промты, чтобы сократить рутину. В этой подборке — 10 проверенных промтов, которые я применяю сам. Они подойдут для Pod, Service, Ingress, Helm и CI/CD-деплоя. Каждый промт — рабочий, с реальным примером применения. Никакой воды — только то, что можно скопировать и использовать.
1. Генерация базового манифеста Pod
Промт: «Сгенерируй манифест Kubernetes Pod для веб-приложения на Python (Flask), которое слушает порт 5000. Используй образ python:3.11-slim, добавь readinessProbe с проверкой /health и resource limits: cpu 500m, memory 256Mi.»
Пример применения: Быстро получить готовый YAML для локального теста или Minikube. Промт явно задаёт образ, пробу и лимиты — AI не гадает.
Результат (сокращённо):
apiVersion: v1
kind: Pod
metadata:
name: flask-app-pod
spec:
containers:
- name: flask-app
image: python:3.11-slim
ports:
- containerPort: 5000
resources:
limits:
memory: "256Mi"
cpu: "500m"
readinessProbe:
httpGet:
path: /health
port: 5000
2. Создание Service и Ingress для микросервиса
Промт: «Создай манифесты Service типа ClusterIP и Ingress для микросервиса 'orders-api'. Сервис слушает порт 8080, Ingress использует TLS-сертификат из секрета tls-orders, хост orders.example.com.»
Пример применения: Деплой микросервиса с внешним доступом. Промт задаёт тип сервиса, Ingress с TLS — AI сгенерирует оба ресурса сразу.
Результат:
apiVersion: v1
kind: Service
metadata:
name: orders-api-service
spec:
selector:
app: orders-api
ports:
- protocol: TCP
port: 8080
targetPort: 8080
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: orders-api-ingress
spec:
tls:
- hosts:
- orders.example.com
secretName: tls-orders
rules:
- host: orders.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: orders-api-service
port:
number: 8080
3. Написание Helm-чарта для StatefulSet с PostgreSQL
Промт: «Напиши Helm-чарт для PostgreSQL StatefulSet с 3 репликами, PVC на 10 ГБ, headless service и secret для пароля. Используй values.yaml для параметризации образа, размера PVC и количества реплик.»
Пример применения: Деплой базы в production с Helm. Промт явно указывает StatefulSet, headless service и параметры в values — AI создаст структуру чарта.
Результат: Чарт включает templates/statefulset.yaml, templates/service.yaml, templates/secret.yaml и values.yaml с параметрами: image: postgres:16, size: 10Gi, replicas: 3.
4. Автоматизация деплоя через GitLab CI
Промт: «Создай .gitlab-ci.yml для деплоя в Kubernetes через kubectl с использованием GitLab CI. Этапы: build (Docker-образ), test, deploy на staging (kubectl apply -f k8s/). Используй переменные $KUBE_CONFIG и $DOCKER_PASSWORD.»
Пример применения: Быстрая настройка CI/CD для K8s. Промт задаёт этапы и переменные — AI генерирует рабочий конфиг.
Результат (фрагмент):
stages:
- build
- test
- deploy
build:
stage: build
script:
- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA .
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA
5. Оптимизация ConfigMap для переменных окружения
Промт: «Напиши ConfigMap и Deployment для Node.js приложения, где переменные окружения (DB_HOST, DB_PORT, LOG_LEVEL) берутся из ConfigMap. ConfigMap хранит значения: DB_HOST=postgres-svc, DB_PORT=5432, LOG_LEVEL=info.»
Пример применения: Централизованное управление конфигом. Промт избегает хранения секретов в ConfigMap — это best practice.
6. Создание HPA для автоскейлинга
Промт: «Создай HorizontalPodAutoscaler для Deployment 'web-app', который масштабируется от 2 до 10 реплик при CPU > 70% и памяти > 80%.»
Пример применения: Production-автоскейлинг. Промт задаёт метрики CPU и memory — AI сгенерирует HPA с metrics.
7. Генерация NetworkPolicy
Промт: «Напиши NetworkPolicy, которая разрешает входящий трафик к подам с меткой app: api только от подов с меткой tier: frontend. Исходящий трафик — только к DNS и базе данных с меткой db: postgres.»
Пример применения: Изоляция микросервисов. Промт задаёт ingress и egress rules — AI создаёт политику.
8. Миграция с Deployment на StatefulSet
Промт: «Преобразуй Deployment для Redis в StatefulSet с сохранением данных через PVC. Добавь initContainer для инициализации, используй volumeClaimTemplates с storage 5Gi.»
Пример применения: Переход на stateful-приложения. Промт явно указывает volumeClaimTemplates — AI генерирует правильный StatefulSet.
9. Написание Helm-чарта с зависимостями
Промт: «Создай Helm-чарт для приложения, которое зависит от чарта bitnami/redis и bitnami/postgresql. Определи зависимости в Chart.yaml, передай параметры из values.»
Пример применения: Сложные Helm-чарты с внешними зависимостями. Промт задаёт Chart.yaml с dependencies и параметризацию.
10. Отладка Pod с помощью временного контейнера
Промт: «Создай YAML для debug-поды с временным контейнером (ephemeral container) на основе nicolaka/netshoot, который подключается к существующему поду 'app-pod' для диагностики сети.»
Пример применения: Быстрая отладка без изменения манифеста. Промт использует ephemeral containers (поддерживаются с K8s 1.23+).
Заключение
Эти 10 промтов покрывают 80% моих ежедневных задач с Kubernetes: от генерации манифестов до Helm и CI/CD. Они экономят часы ручного копирования YAML и поиска в документации. Попробуй их в работе — адаптируй под свои имена, образы и хосты. K8s не станет проще, но с правильными промтами ты будешь деплоить быстрее. Если хочешь углубиться в автоматизацию, обрати внимание на курсы по K8s и DevOps — ASI Biont поддерживает подключение к Kubernetes через API — подробнее на asibiont.com/courses. Удачи в деплое!
Комментарии