Lewati ke konten
🛠️ToolsShed

Kubernetes YAML Generator

Hasilkan manifest Kubernetes untuk Deployment, Service, ConfigMap, dan Namespace.

Konfigurasi 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

Terapkan dengan: kubectl apply -f deployment.yaml

Tentang alat ini

Kubernetes YAML Generator adalah alat pengembang yang mengonversi definisi manifest Kubernetes manual menjadi file konfigurasi YAML yang diformat dengan benar. Baik Anda menerapkan aplikasi yang dikontainerisasi, mengelola mikroservis, atau mengonfigurasi infrastruktur sebagai kode, alat ini menghilangkan tugas yang membosankan dari penulisan YAML Kubernetes secara manual dengan menghasilkan manifest yang bersih dan sintaksisnya benar untuk Deployments, Services, ConfigMaps, dan Namespaces. Ini memastikan konfigurasi Anda mengikuti spesifikasi API Kubernetes dan praktik terbaik.

Untuk menggunakan alat ini, isi formulir konfigurasi dengan detail sumber daya Anda—tentukan metadata penerapan, gambar kontainer, port layanan, variabel lingkungan, dan parameter lainnya. Generator secara otomatis menghasilkan YAML yang diindentasi dengan benar dan terstruktur dengan baik yang siap diterapkan langsung ke cluster Kubernetes Anda menggunakan kubectl atau pipeline CI/CD Anda. Anda dapat menyesuaikan nama sumber daya, label, pemilih, dan semua bidang lainnya sebelum pembuatan.

Alat ini sangat berharga bagi insinyur DevOps, pengembang aplikasi, dan tim infrastruktur yang bekerja dengan Kubernetes. Alat ini menangani kasus tepi umum seperti pemetaan port, volumeMounts, securityContext, dan batas sumber daya, menghemat waktu dan mengurangi kesalahan sintaksis YAML yang dapat mencegah penerapan yang berhasil.

Pertanyaan yang Sering Diajukan

Implementasi Kode

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.