Kubernetes — это мощная, но сложная система. Даже опытные инженеры тратят часы на диагностику падающих подов, написание манифестов и настройку сетевых политик. Нейросети, такие как ChatGPT и другие LLM, могут стать вашим виртуальным SRE-помощником, если знать, как правильно формулировать запросы. В этой подборке — 12 проверенных промтов, которые покрывают типичные задачи: от разбора CrashLoopBackOff до аудита безопасности кластера. Каждый промт сопровождается примером YAML и пояснением.
Мы разделили их на три категории: базовые (для рутинных операций), продвинутые (для оптимизации и отладки) и экспертные (для архитектурных решений и безопасности). Все примеры протестированы на реальных кластерах, а синтаксис соответствует официальной документации Kubernetes.
Базовые промты
1. Диагностика CrashLoopBackOff
Задача: Под быстро выяснить причину падения пода.
Промт:
Ты — опытный Kubernetes-инженер. Под в состоянии CrashLoopBackOff. Вот вывод `kubectl describe pod <pod-name>` и `kubectl logs <pod-name> --previous`. Проанализируй и предложи шаги для устранения.
Пример результата: Нейросеть укажет на типичные причины: неверный образ, отсутствие секретов, ошибки в liveness-пробе. Например, если в логах Error: secret "db-pass" not found, советует проверить существование секрета и его монтирование.
2. Генерация манифеста Deployment
Задача: Быстро создать YAML для нового сервиса.
Промт:
Сгенерируй манифест Deployment для приложения на Node.js. Образ: myapp:1.2.3. Порт 3000. Реплики: 3. Ресурсы: requests cpu 100m, memory 128Mi; limits cpu 500m, memory 512Mi. Добавь liveness и readiness пробу на /health.
Пример результата:
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
replicas: 3
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: myapp:1.2.3
ports:
- containerPort: 3000
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 512Mi
livenessProbe:
httpGet:
path: /health
port: 3000
readinessProbe:
httpGet:
path: /health
port: 3000
3. Настройка HPA
Задача: Автоматическое масштабирование по CPU.
Промт:
Напиши манифест HorizontalPodAutoscaler для deployment myapp. Целевая загрузка CPU 70%, минимум 2 пода, максимум 10. Используй autoscaling/v2.
Пример результата:
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: myapp-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: myapp
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
4. Создание NetworkPolicy
Задача: Ограничить трафик между подами.
Промт:
Создай NetworkPolicy, которая разрешает входящий трафик только от подов с меткой role=frontend к подам с меткой role=backend на порт 8080.
Пример результата:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-frontend-to-backend
spec:
podSelector:
matchLabels:
role: backend
ingress:
- from:
- podSelector:
matchLabels:
role: frontend
ports:
- protocol: TCP
port: 8080
Продвинутые промты
5. Отладка Ingress
Задача: Ingress не маршрутизирует трафик.
Промт:
Ingress не работает: запросы к /api возвращают 404. Вот конфигурация Ingress и Service. Проверь соответствие путей и портов, предложи исправления.
Пример результата: Нейросеть может обнаружить, что в Service указан порт 80, а в Ingress — 8080, или что путь в Ingress не совпадает с аннотацией rewrite-target.
6. Оптимизация ресурсов
Задача: Снизить затраты, подобрав requests/limits.
Промт:
У меня есть метрики использования CPU и памяти за неделю для пода. Предложи оптимальные requests и limits, чтобы избежать OOMKilled и избыточного резервирования.
Пример результата: Нейросеть проанализирует пиковые значения и порекомендует, например, requests.memory = 256Mi, limits.memory = 512Mi.
7. Написание Helm-чарта
Задача: Упаковать приложение в Helm.
Промт:
Создай структуру Helm-чарта для веб-приложения с параметризацией образа, реплик и ресурсов. Включи Deployment, Service, Ingress.
Пример результата: Будут сгенерированы файлы Chart.yaml, values.yaml и шаблоны с использованием {{ .Values }}.
8. Аудит безопасности
Задача: Проверить манифесты на уязвимости.
Промт:
Проанализируй Deployment на предмет безопасности: проверь, запускается ли контейнер от root, есть ли privileged режим, readOnlyRootFilesystem, и предложи исправления.
Пример результата: Нейросеть укажет на отсутствие securityContext и порекомендует добавить runAsNonRoot: true, readOnlyRootFilesystem: true.
Экспертные промты
9. Миграция с Docker Compose
Задача: Перенести приложение в Kubernetes.
Промт:
Преобразуй docker-compose.yml в набор манифестов Kubernetes: Deployment, Service, ConfigMap, Secret. Учти зависимости между сервисами.
Пример результата: Нейросеть сгенерирует несколько YAML-файлов и пояснит, как связать их через envFrom и volumeMounts.
10. Настройка Service Mesh
Задача: Внедрить Istio для управления трафиком.
Промт:
Как настроить Istio для канареечного развёртывания? Напиши пример VirtualService и DestinationRule для разделения трафика 90/10 между версиями v1 и v2.
Пример результата: Будут предоставлены манифесты с весами и объяснение, как применять их через kubectl.
11. Диагностика сети
Задача: Под не может достучаться до внешнего сервиса.
Промт:
Под не может подключиться к внешнему API. Вот вывод `kubectl exec` с ping и curl. Проверь DNS, NetworkPolicy, egress-правила.
Пример результата: Нейросеть предложит проверить CoreDNS, наличие NetworkPolicy с egress и настройки kube-proxy.
12. Автоматизация с оператором
Задача: Создать кастомный оператор.
Промт:
Напиши на Go простой оператор для управления кастомным ресурсом MyApp. Он должен создавать Deployment и Service при создании MyApp.
Пример результата: Будет предоставлен скелет оператора с использованием Kubebuilder и client-go.
Эти промты помогут вам быстрее решать повседневные задачи и глубже понять Kubernetes. Экспериментируйте, адаптируйте под свои нужды — и нейросеть станет вашим надёжным помощником.
Источники: официальная документация Kubernetes (kubernetes.io), документация Istio, примеры из репозиториев GitHub. Убедитесь, что используете актуальные версии API.
Комментарии