SuperAPI AI 工具集

kubernetes-manifest-generator

部署与运维

查看项目

更新于 10-15 18:37

技能介绍

用途

Kubernetes Manifest Generator 用于生成生产级 Kubernetes 清单(manifest),涵盖 Deployment、Service、ConfigMap、Secret、Ingress、HPA 等资源,并遵循安全与可扩展性最佳实践。当用户请求生成 Kubernetes 相关配置时使用。

核心工作流

  1. 定义资源:识别所需的 K8s 对象
  2. 创建命名空间:隔离应用资源
  3. 配置部署:Pod、副本数、资源
  4. 设置服务:网络与负载均衡
  5. 添加 Ingress:外部访问路由
  6. 配置扩缩容:HPA 与资源限制

主要能力

该技能可生成以下类型的清单:

  • Deployment:包含副本数、滚动更新策略(maxSurge/maxUnavailable)、安全上下文(runAsNonRoot、runAsUser、fsGroup)、容器端口、环境变量(来自 Secret 与 ConfigMap)、资源 requests/limits、liveness/readiness 探针、容器级安全上下文(禁止提权、只读根文件系统、丢弃全部 capabilities)、卷挂载、Pod 反亲和性、拓扑分布约束。
  • Service:ClusterIP 类型服务,以及用于 StatefulSet 的 Headless Service(clusterIP: None)。
  • Ingress:配置 nginx ingress class、cert-manager 集群签发者、SSL 重定向、速率限制、代理 body 大小与读取超时、TLS 主机与密钥、多主机路由规则。
  • ConfigMap 与 Secret:普通 ConfigMap、Opaque Secret,以及使用 external-secrets operator 的 ExternalSecret(含刷新间隔、SecretStore 引用、目标与远程引用)。
  • Horizontal Pod Autoscaler:基于 CPU、内存利用率以及 Pods 自定义指标(如 http_requests_per_second)的扩缩容,并配置 scaleDown/scaleUp 行为策略。
  • Pod Disruption Budget:设置 minAvailable 与选择器。
  • Network Policy:定义 Ingress 与 Egress 规则,限制 Pod 通信,包括命名空间选择器、Pod 选择器、端口与 ipBlock 例外。
  • Service Account 与 RBAC:ServiceAccount、Role(对 configmaps、secrets、pods 的最小权限)、RoleBinding。
  • StatefulSet:用于有状态应用,包含 serviceName、副本数、volumeClaimTemplates(访问模式、storageClassName、存储请求)。
  • CronJob:配置调度表达式、时区、并发策略、历史保留数、backoffLimit、activeDeadlineSeconds、重启策略与资源限制。
  • Kustomize 结构:base 与 overlays(如 production)的 kustomization.yaml,包含 resources、commonLabels、namespace、replicas、images、patches。

使用方式

该技能以生成清单文件的方式工作,输出 YAML 配置。示例中文件按 k8s/ 目录组织,如 k8s/deployment.yaml、k8s/service.yaml、k8s/ingress.yaml、k8s/configmap.yaml、k8s/secret.yaml、k8s/hpa.yaml、k8s/pdb.yaml、k8s/network-policy.yaml、k8s/rbac.yaml、k8s/statefulset.yaml、k8s/cronjob.yaml,以及 Kustomize 的 base 与 overlays 目录结构。

最佳实践

  • 资源限制:始终设置 requests 与 limits
  • 健康探针:配置 liveness 与 readiness
  • 安全上下文:以非 root 运行,丢弃 capabilities
  • Pod 反亲和性:跨节点/区域分布
  • 网络策略:限制 Pod 通信
  • 密钥管理:使用 external secrets operator
  • 滚动更新:配置 maxSurge 与 maxUnavailable
  • PDB:确保更新期间的最低可用性

输出检查清单

每个 Kubernetes 部署应包含:

  • 命名空间隔离
  • 带资源限制的 Deployment
  • 健康探针(liveness/readiness)
  • 安全上下文(非 root、只读文件系统)
  • 用于网络的服务
  • 带 TLS 的 Ingress
  • 用于配置的 ConfigMap
  • Secret(优先使用外部密钥)
  • 用于自动扩缩的 HPA
  • 用于可用性的 PDB
  • 网络策略
  • 带最小 RBAC 的 ServiceAccount

适用场景

适用于需要快速生成符合最佳实践的 Kubernetes 部署配置的场景,包括无状态应用、有状态应用、定时任务、多环境(通过 Kustomize overlays)等。

限制

资料未提供该技能的具体安装命令、运行环境要求、收费方式、平台支持范围或效果保证等信息。