Введение
Kubernetes и Terraform стали стандартом для управления инфраструктурой, но их сложность часто приводит к ошибкам и выгоранию. YAML-манифесты и HCL-конфигурации требуют внимания к деталям, а отладка занимает часы. По данным опроса CNCF (2025), 67% организаций используют Kubernetes в продакшене, но 45% инженеров жалуются на сложность конфигурации. Искусственный интеллект может стать вашим помощником: правильные промты помогают генерировать, проверять и оптимизировать код, экономя время и снижая риск ошибок.
В этой подборке — 15 промтов для AI-ассистентов (ChatGPT, Claude, Gemini и др.), которые упростят работу с Kubernetes и Terraform. Мы разбили их на три категории: базовые, продвинутые и экспертные. Каждый промт сопровождается задачей, примером результата и пояснениями. Все примеры проверены на реальных сценариях.
Базовые промты
1. Генерация Deployment для stateless-приложения
Задача: Быстро создать манифест Deployment с лучшими практиками.
Промт:
Сгенерируй YAML-манифест Kubernetes Deployment для приложения nginx:1.25. Учти: 3 реплики, resource requests/limits (CPU 100m/200m, память 128Mi/256Mi), liveness и readiness пробу на порту 80, метки app: nginx. Добавь комментарии.
Пример результата:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.25
ports:
- containerPort: 80
resources:
requests:
cpu: "100m"
memory: "128Mi"
limits:
cpu: "200m"
memory: "256Mi"
livenessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 10
periodSeconds: 5
readinessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 5
periodSeconds: 5
2. Создание Terraform-конфигурации для AWS VPC
Задача: Развернуть VPC с публичными и приватными подсетями.
Промт:
Напиши Terraform-код для AWS VPC с CIDR 10.0.0.0/16, двумя публичными и двумя приватными подсетями в разных AZ, Internet Gateway и NAT Gateway. Используй модуль terraform-aws-modules/vpc/aws версии 5.0.
Пример результата:
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
version = "5.0.0"
name = "my-vpc"
cidr = "10.0.0.0/16"
azs = ["us-east-1a", "us-east-1b"]
private_subnets = ["10.0.1.0/24", "10.0.2.0/24"]
public_subnets = ["10.0.101.0/24", "10.0.102.0/24"]
enable_nat_gateway = true
single_nat_gateway = false
tags = {
Terraform = "true"
Environment = "prod"
}
}
3. Проверка YAML на ошибки
Задача: Найти синтаксические и логические ошибки в манифесте.
Промт:
Проверь следующий Kubernetes YAML на ошибки: неправильные отступы, отсутствующие поля, неверные API-версии. Предложи исправления.
---
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: web
image: nginx
ports:
- containerPort: 80
Пример результата: AI укажет, что для Pod не хватает restartPolicy, а также порекомендует использовать Deployment вместо Pod для отказоустойчивости.
4. Генерация Service и Ingress
Задача: Открыть доступ к приложению через Service и Ingress.
Промт:
Создай Service типа ClusterIP и Ingress для приложения с меткой app: nginx, порт 80. Ingress должен использовать host nginx.example.com и TLS с секретом nginx-tls.
Пример результата:
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- port: 80
targetPort: 80
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: nginx-ingress
spec:
tls:
- hosts:
- nginx.example.com
secretName: nginx-tls
rules:
- host: nginx.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: nginx-service
port:
number: 80
5. Создание Terraform state backend в S3
Задача: Настроить удалённое хранение состояния.
Промт:
Напиши Terraform-код для создания S3-бакета и DynamoDB-таблицы для блокировки состояния. Регион us-east-1, имя бакета my-terraform-state-bucket.
Пример результата:
resource "aws_s3_bucket" "terraform_state" {
bucket = "my-terraform-state-bucket"
acl = "private"
versioning {
enabled = true
}
}
resource "aws_dynamodb_table" "terraform_locks" {
name = "terraform-locks"
billing_mode = "PAY_PER_REQUEST"
hash_key = "LockID"
attribute {
name = "LockID"
type = "S"
}
}
Продвинутые промты
6. Настройка Horizontal Pod Autoscaler
Задача: Автоматически масштабировать приложение по нагрузке.
Промт:
Создай HPA для Deployment nginx с целевой загрузкой CPU 70%, минимум 2 пода, максимум 10. Используй autoscaling/v2.
Пример результата:
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: nginx-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: nginx-deployment
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
7. Terraform модуль для EKS
Задача: Развернуть управляемый кластер Kubernetes в AWS.
Промт:
Напиши Terraform-код для создания EKS-кластера с managed node group (2 узла t3.medium). Используй модуль terraform-aws-modules/eks/aws версии 20.0. Учти IAM-роли и security groups.
Пример результата: (сокращённо)
module "eks" {
source = "terraform-aws-modules/eks/aws"
version = "20.0"
cluster_name = "my-eks"
cluster_version = "1.28"
vpc_id = module.vpc.vpc_id
subnet_ids = module.vpc.private_subnets
eks_managed_node_groups = {
main = {
desired_size = 2
min_size = 1
max_size = 3
instance_types = ["t3.medium"]
}
}
}
8. Создание NetworkPolicy
Задача: Ограничить трафик между подами.
Промт:
Сгенерируй NetworkPolicy, разрешающую входящий трафик только от подов с меткой app: frontend к подам с меткой app: backend на порт 8080.
Пример результата:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: backend-policy
spec:
podSelector:
matchLabels:
app: backend
ingress:
- from:
- podSelector:
matchLabels:
app: frontend
ports:
- protocol: TCP
port: 8080
9. Terraform output для подключения к кластеру
Задача: Получить kubeconfig после развёртывания EKS.
Промт:
Добавь output в Terraform для EKS, который выводит команду для обновления kubeconfig и endpoint кластера.
Пример результата:
output "configure_kubectl" {
value = "aws eks update-kubeconfig --region us-east-1 --name ${module.eks.cluster_name}"
}
output "cluster_endpoint" {
value = module.eks.cluster_endpoint
}
10. Отладка ошибок Terraform
Задача: Понять причину ошибки при terraform apply.
Промт:
Я получил ошибку: Error: Error creating Security Group: InvalidGroup.Duplicate. Как исправить? Вот мой код: [фрагмент].
Пример результата: AI предложит импортировать существующую группу или изменить имя, а также добавить lifecycle { create_before_destroy = true }.
11. Генерация Helm-чарта
Задача: Упаковать приложение в Helm для повторного использования.
Промт:
Создай Helm-чарт для простого веб-приложения (nginx) с параметризованными репликами и образом. Включи Deployment, Service и values.yaml.
Пример результата: (структура чарта и ключевые файлы)
Экспертные промты
12. Настройка кластера с отказоустойчивостью в нескольких зонах
Задача: Обеспечить высокую доступность.
Промт:
Спроектируй отказоустойчивый EKS-кластер в 3 AZ с managed node groups, распределёнными по зонам. Используй Terraform. Учти anti-affinity для подов и topologySpreadConstraints.
Пример результата: AI предложит конфигурацию с несколькими node groups, настройками topologySpreadConstraints в Deployment и соответствующими Terraform-ресурсами.
13. Интеграция с CI/CD (GitHub Actions)
Задача: Автоматизировать деплой в Kubernetes.
Промт:
Напиши GitHub Actions workflow для сборки Docker-образа, пуша в ECR и деплоя в EKS с помощью kubectl. Используй OIDC для аутентификации.
Пример результата: (YAML workflow с шагами)
14. Аудит безопасности Kubernetes
Задача: Выявить уязвимости в манифестах.
Промт:
Проанализируй следующие манифесты на предмет безопасности: проверь наличие privileged, root-пользователя, отсутствие resource limits. Дай рекомендации.
Пример результата: AI укажет на необходимость добавить securityContext: runAsNonRoot: true, ограничить capabilities и т.д.
15. Оптимизация затрат на Terraform
Задача: Снизить расходы на AWS.
Промт:
Предложи способы оптимизации затрат для моего Terraform-кода: [фрагмент с EC2, RDS, EBS]. Учти использование reserved instances, autoscaling и удаление неиспользуемых ресурсов.
Пример результата: AI порекомендует перейти на Graviton, использовать spot-инстансы для некритичных нагрузок, настроить lifecycle-политики для S3.
Заключение
Промты для AI-ассистентов — это не замена знаниям, а ускоритель рутинных задач. Они помогают избежать типичных ошибок, следовать лучшим практикам и экономить время. Начните с базовых промтов, постепенно переходите к продвинутым и экспертным. Помните: AI не идеален, всегда проверяйте сгенерированный код. Используйте эти шаблоны как отправную точку для собственных экспериментов. Удачи в построении отказоустойчивых кластеров!
Комментарии