mcpField
K
kubernetes-deployment-patterns

kubernetes-deployment-patterns

github.com/nickcrew云与 DevOps6293 次安装17 周前更新
代码仓库

关于 kubernetes-deployment-patterns

此技能为 Kubernetes 生产部署提供实践指导,适用于设计和运营云原生应用的开发与运维团队。内容涵盖部署策略、工作负载类型、配置、资源管理、自动扩缩容和健康检查。

主要功能

  1. 01选择滚动更新、蓝绿或金丝雀策略
  2. 02按任务选择工作负载类型
  3. 03使用 ConfigMaps 和 Secrets 管理配置
  4. 04设置资源请求、限制与自动扩缩容
  5. 05配置健康检查探针

适用场景

  1. 01规划应用升级并降低发布中断风险
  2. 02为服务、数据库或批处理任务选择工作负载
  3. 03管理敏感配置及容器资源
  4. 04为生产应用配置探针和自动扩缩容

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/nickcrew/claude-cortex --skill kubernetes-deployment-patterns

安装后在 Claude Code 中输入/kubernetes-deployment-patterns确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
configuration-management.md
deployment-strategies.md
production-best-practices.md
resource-management.md
workload-types.md

详细介绍

Kubernetes 部署模式

为生产级 Kubernetes 部署提供专家指导,涵盖部署策略、工作负载类型、配置管理、资源优化,以及云原生应用的自动扩缩容模式。

何时使用此技能

  • 实施部署策略(滚动更新、蓝绿部署、金丝雀发布)
  • 选择合适的工作负载类型(Deployment、StatefulSet、DaemonSet、Job)
  • 设计零停机部署的发布策略
  • 使用 ConfigMaps 和 Secrets 实施配置管理
  • 设置资源管理和自动扩缩容(HPA、VPA)
  • 配置运行状况检查和探针策略
  • 在 Kubernetes 上设计高可用应用
  • 实施批处理和定时任务

核心概念

部署策略

滚动更新: 逐步将旧 Pod 替换为新 Pod(零停机,默认策略) 重新创建: 创建新 Pod 前先终止所有旧 Pod(短暂停机) 蓝绿部署: 运行两个环境,即时切换流量(资源用量翻倍) 金丝雀发布: 在监控的同时逐步将流量转移到新版本(降低风险)

工作负载类型

Deployment: 无状态应用(Web 服务器、API、微服务) StatefulSet: 有状态应用(数据库、消息队列) DaemonSet: 节点级服务(日志收集器、监控 Agent) Job: 一次性任务(批处理、迁移) CronJob: 定时任务(备份、定期报告)

资源管理

Requests: 调度时保证的资源 Limits: 由 kubelet 强制执行的资源上限 HPA: 水平 Pod 自动扩缩容器(根据指标扩缩副本) VPA: 垂直 Pod 自动扩缩容器(调整资源 requests/limits)

快速参考

任务加载参考资料
部署策略(滚动、蓝绿、金丝雀)skills/kubernetes-deployment-patterns/references/deployment-strategies.md
工作负载类型(Deployment、StatefulSet、DaemonSet、Job)skills/kubernetes-deployment-patterns/references/workload-types.md
配置管理(ConfigMaps、Secrets)skills/kubernetes-deployment-patterns/references/configuration-management.md
资源管理和自动扩缩容(HPA、VPA)skills/kubernetes-deployment-patterns/references/resource-management.md
生产环境最佳实践和安全skills/kubernetes-deployment-patterns/references/production-best-practices.md

工作流

1. 选择部署策略
# Rolling update for standard deployments
strategy:
  type: RollingUpdate
  rollingUpdate:
    maxSurge: 1
    maxUnavailable: 0

# Recreate for incompatible versions
strategy:
  type: Recreate
2. 选择工作负载类型
  • 无状态? → 使用 Deployment
  • 有状态且需要持久标识? → 使用 StatefulSet
  • 每个节点运行一个 Pod? → 使用 DaemonSet
  • 运行至完成? → 使用 Job
  • 按计划运行? → 使用 CronJob
3. 配置资源
resources:
  requests:
    memory: "256Mi"
    cpu: "250m"
  limits:
    memory: "512Mi"
    cpu: "1000m"
4. 添加配置
# ConfigMap for non-sensitive config
envFrom:
- configMapRef:
    name: app-config

# Secret for sensitive data
env:
- name: DB_PASSWORD
  valueFrom:
    secretKeyRef:
      name: db-credentials
      key: password
5. 实施运行状况检查
livenessProbe:
  httpGet:
    path: /healthz
    port: 8080
  initialDelaySeconds: 30
  periodSeconds: 10

readinessProbe:
  httpGet:
    path: /ready
    port: 8080
  initialDelaySeconds: 5
  periodSeconds: 5
6. 启用自动扩缩容
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
spec:
  scaleTargetRef:
    kind: Deployment
    name: app
  minReplicas: 2
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 70

常见错误

  1. 使用 latest 标签: 始终使用特定版本标签,以确保可复现性
  2. 未设置资源限制: 可能导致资源匮乏和集群不稳定
  3. 缺少运行状况检查: 没有探针时,Kubernetes 无法管理 Pod 的运行状况
  4. 生产环境仅使用一个副本: 不具备高可用性或弹性
  5. 将机密信息放在 ConfigMaps 中: 敏感数据应使用 Secrets,而非 ConfigMaps
  6. 未设置更新策略: 会导致部署行为不可预测
  7. 以 root 身份运行: 存在安全漏洞,违反最小权限原则
  8. 未进行监控: 无法发现或排查生产环境中的问题

Resources

评论

支持 Markdown