Перейти к содержимому

Kubernetes YAML Generator

Генерируйте манифесты Kubernetes для Deployments, Services, ConfigMaps и Namespaces.

Конфигурация Deployment

deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
  namespace: default
  labels:
    app: my-app
spec:
  replicas: 2
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: my-app
          image: nginx:latest
          ports:
            - containerPort: 80
        env:
          - name: ENV
            value: "production"
          resources:
            requests:
              cpu: 100m
              memory: 128Mi
            limits:
              cpu: 500m
              memory: 512Mi

Применить с помощью: kubectl apply -f deployment.yaml

Об этом инструменте

Kubernetes YAML Generator – это инструмент для разработчиков, который преобразует ручные определения манифестов Kubernetes в правильно отформатированные файлы конфигурации YAML. Независимо от того, развёртываете ли вы контейнеризированные приложения, управляете микросервисами или настраиваете инфраструктуру как код, этот инструмент избавляет вас от утомительной работы по написанию Kubernetes YAML вручную, генерируя чистые, синтаксически правильные манифесты для Deployments, Services, ConfigMaps и Namespaces. Он гарантирует, что ваши конфигурации соответствуют спецификациям Kubernetes API и лучшим практикам.

Чтобы использовать инструмент, заполните форму конфигурации деталями своих ресурсов—укажите метаданные развёртывания, образы контейнеров, порты сервиса, переменные окружения и другие параметры. Генератор автоматически создаёт правильно отступленный, хорошо структурированный YAML, готовый к применению непосредственно к вашему кластеру Kubernetes с помощью kubectl или вашего конвейера CI/CD. Вы можете настроить имена ресурсов, ярлыки, селекторы и все остальные поля перед генерацией.

Этот инструмент особенно ценен для DevOps-инженеров, разработчиков приложений и команд инфраструктуры, работающих с Kubernetes. Он обрабатывает типичные пограничные случаи, такие как сопоставления портов, volumeMounts, securityContext и ограничения ресурсов, экономя время и снижая количество ошибок синтаксиса YAML, которые могут препятствовать успешному развёртыванию.

Часто задаваемые вопросы

Реализация кода

import subprocess
import yaml
import tempfile
import os

def generate_deployment(name, image, replicas=2, port=80, namespace="default"):
    """Generate a Kubernetes Deployment manifest dict."""
    return {
        "apiVersion": "apps/v1",
        "kind": "Deployment",
        "metadata": {"name": name, "namespace": namespace},
        "spec": {
            "replicas": replicas,
            "selector": {"matchLabels": {"app": name}},
            "template": {
                "metadata": {"labels": {"app": name}},
                "spec": {
                    "containers": [{
                        "name": name,
                        "image": image,
                        "ports": [{"containerPort": port}]
                    }]
                }
            }
        }
    }

manifest = generate_deployment("my-app", "nginx:latest", replicas=3)
yaml_str = yaml.dump(manifest, default_flow_style=False)
print(yaml_str)

# Apply using kubectl
with tempfile.NamedTemporaryFile(mode='w', suffix='.yaml', delete=False) as f:
    f.write(yaml_str)
    tmp = f.name

result = subprocess.run(["kubectl", "apply", "-f", tmp], capture_output=True, text=True)
print(result.stdout)
os.unlink(tmp)

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.