Kubernetes YAML Generator
生成Kubernetes清单,用于Deployments、Services、ConfigMaps和Namespaces。
部署配置
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 生成器是一个开发者工具,能将手动编写的 Kubernetes 清单定义转换为格式正确的 YAML 配置文件。无论您是在部署容器化应用、管理微服务还是配置基础设施即代码,这个工具都能生成清晰、语法有效的部署、服务、配置映射和命名空间清单,从而消除手工编写 Kubernetes YAML 的繁琐工作。它确保您的配置遵循 Kubernetes API 规范和最佳实践。
使用该工具时,在配置表单中填入资源详情——指定部署元数据、容器镜像、服务端口、环境变量和其他参数。生成器会自动生成格式正确、结构清晰的 YAML,可直接使用 kubectl 或 CI/CD 管道应用到 Kubernetes 集群。您可以在生成前自定义资源名称、标签、选择器和其他所有字段。
这个工具对使用 Kubernetes 的 DevOps 工程师、应用开发者和基础设施团队特别有价值。它能处理端口映射、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.