k8s-deploy

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Kubernetes Deployment Workflows

Kubernetes 部署工作流

Comprehensive deployment strategies using kubectl-mcp-server tools, including Argo Rollouts and Flagger for progressive delivery.
使用kubectl-mcp-server工具实现的全面部署策略,包括基于Argo Rollouts和Flagger的渐进式交付方案。

When to Apply

适用场景

Use this skill when:
  • User mentions: "deploy", "release", "rollout", "scale", "update", "upgrade"
  • Operations: creating deployments, updating images, scaling replicas
  • Strategies: canary, blue-green, rolling update, recreate
  • Keywords: "new version", "push to production", "traffic shifting"
在以下场景中使用本技能:
  • 用户提及:“部署”“发布”“版本推送”“扩缩容”“更新”“升级”
  • 操作场景:创建部署、更新镜像、调整副本数
  • 策略类型:金丝雀部署、蓝绿部署、滚动更新、重建式更新
  • 关键词:“新版本”“推送至生产环境”“流量切换”

Priority Rules

优先级规则

PriorityRuleImpactTools
1Preview with template before applyCRITICAL
template_helm_chart
2Check existing state firstCRITICAL
get_pods
,
list_helm_releases
3Use progressive delivery for prodHIGH
rollout_*
tools
4Verify health after deploymentHIGH
get_pod_metrics
,
get_endpoints
5Keep rollback revision notedMEDIUM
get_helm_history
6Scale incrementallyLOW
scale_deployment
优先级规则影响级别工具
1应用前使用模板预览CRITICAL
template_helm_chart
2先检查现有状态CRITICAL
get_pods
,
list_helm_releases
3生产环境使用渐进式交付HIGH
rollout_*
工具
4部署后验证健康状态HIGH
get_pod_metrics
,
get_endpoints
5记录回滚版本MEDIUM
get_helm_history
6增量式扩缩容LOW
scale_deployment

Quick Reference

快速参考

TaskToolExample
Deploy from manifest
kubectl_apply
apply_manifest(yaml, namespace)
Deploy with Helm
install_helm_chart
install_helm_chart(name, chart, namespace)
Update image
set_deployment_image
set_deployment_image(name, ns, container, image)
Scale replicas
scale_deployment
scale_deployment(name, ns, replicas=5)
Rollback
rollback_deployment
rollback_deployment(name, ns, revision=0)
Canary promote
rollout_promote_tool
rollout_promote_tool(name, ns)
任务工具示例
通过清单部署
kubectl_apply
apply_manifest(yaml, namespace)
使用Helm部署
install_helm_chart
install_helm_chart(name, chart, namespace)
更新镜像
set_deployment_image
set_deployment_image(name, ns, container, image)
调整副本数
scale_deployment
scale_deployment(name, ns, replicas=5)
回滚操作
rollback_deployment
rollback_deployment(name, ns, revision=0)
金丝雀发布推广
rollout_promote_tool
rollout_promote_tool(name, ns)

Standard Deployments

标准部署方案

Deploy from Manifest

通过清单部署

python
kubectl_apply(manifest_yaml, namespace)
python
kubectl_apply(manifest_yaml, namespace)

Deploy with Helm

使用Helm部署

python
install_helm_chart(
    name="my-app",
    chart="bitnami/nginx",
    namespace="production",
    values={"replicaCount": 3}
)
python
install_helm_chart(
    name="my-app",
    chart="bitnami/nginx",
    namespace="production",
    values={"replicaCount": 3}
)

Scale Deployment

扩缩容部署

python
scale_deployment(name, namespace, replicas=5)
python
scale_deployment(name, namespace, replicas=5)

Rolling Update

滚动更新

python
set_deployment_image(name, namespace, container="app", image="myapp:v2")

rollout_status(name, namespace, resource_type="deployment")
python
set_deployment_image(name, namespace, container="app", image="myapp:v2")

rollout_status(name, namespace, resource_type="deployment")

Progressive Delivery

渐进式交付

Argo Rollouts (Recommended)

Argo Rollouts(推荐)

For canary and blue-green deployments with analysis.
List Rollouts
python
rollouts_list_tool(namespace)
Canary Promotion
python
rollout_status_tool(name, namespace)

rollout_promote_tool(name, namespace)
Abort Bad Release
python
rollout_abort_tool(name, namespace)
Retry Failed Rollout
python
rollout_retry_tool(name, namespace)
See ROLLOUTS.md for detailed Argo Rollouts workflows.
支持带分析的金丝雀和蓝绿部署。
列出发布实例
python
rollouts_list_tool(namespace)
金丝雀发布推广
python
rollout_status_tool(name, namespace)

rollout_promote_tool(name, namespace)
终止异常发布
python
rollout_abort_tool(name, namespace)
重试失败的发布
python
rollout_retry_tool(name, namespace)
详细Argo Rollouts工作流请参考 ROLLOUTS.md

Flagger Canary

Flagger 金丝雀发布

For service mesh-integrated canary releases:
python
flagger_canaries_list_tool(namespace)
flagger_canary_get_tool(name, namespace)
适用于集成服务网格的金丝雀发布:
python
flagger_canaries_list_tool(namespace)
flagger_canary_get_tool(name, namespace)

Deployment Strategies

部署策略对比

StrategyUse CaseTools
RollingStandard updates
set_deployment_image
,
rollout_status
RecreateStateful appsSet strategy in manifest
CanaryRisk mitigation
rollout_*
tools
Blue-GreenZero downtime
rollout_*
with blue-green
See references/STRATEGIES.md for detailed strategy comparisons.
策略适用场景工具
滚动更新标准版本更新
set_deployment_image
,
rollout_status
重建式更新有状态应用在清单中配置策略
金丝雀发布风险缓解
rollout_*
工具
蓝绿部署零停机更新结合
rollout_*
实现蓝绿部署
策略详细对比请参考 references/STRATEGIES.md

Rollback Operations

回滚操作

Native Kubernetes

原生Kubernetes回滚

python
rollback_deployment(name, namespace, revision=0)

rollback_deployment(name, namespace, revision=2)
python
rollback_deployment(name, namespace, revision=0)

rollback_deployment(name, namespace, revision=2)

Helm Rollback

Helm回滚

python
rollback_helm_release(name, namespace, revision=1)
python
rollback_helm_release(name, namespace, revision=1)

Argo Rollouts Rollback

Argo Rollouts回滚

python
rollout_abort_tool(name, namespace)
python
rollout_abort_tool(name, namespace)

Health Verification

健康状态校验

After deployment, verify health:
python
get_pods(namespace, label_selector="app=myapp")

get_pod_metrics(name, namespace)

get_endpoints(namespace)
部署完成后,验证健康状态:
python
get_pods(namespace, label_selector="app=myapp")

get_pod_metrics(name, namespace)

get_endpoints(namespace)

Multi-Cluster Deployments

多集群部署

Deploy to specific clusters using context:
python
install_helm_chart(
    name="app",
    chart="./charts/app",
    namespace="prod",
    context="production-us-east"
)

install_helm_chart(
    name="app",
    chart="./charts/app",
    namespace="prod",
    context="production-eu-west"
)
通过上下文指定目标集群进行部署:
python
install_helm_chart(
    name="app",
    chart="./charts/app",
    namespace="prod",
    context="production-us-east"
)

install_helm_chart(
    name="app",
    chart="./charts/app",
    namespace="prod",
    context="production-eu-west"
)

Example Manifests

示例清单

See examples/ for ready-to-use deployment manifests:
  • examples/canary-rollout.yaml - Argo Rollouts canary
  • examples/blue-green.yaml - Blue-green deployment
  • examples/hpa-deployment.yaml - Deployment with HPA
请查看 examples/ 获取可直接使用的部署清单:
  • examples/canary-rollout.yaml - Argo Rollouts金丝雀部署
  • examples/blue-green.yaml - 蓝绿部署
  • examples/hpa-deployment.yaml - 配置HPA的部署

Prerequisites

前置条件

  • Argo Rollouts: Required for
    rollout_*
    tools
    bash
    kubectl create namespace argo-rollouts
    kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/latest/download/install.yaml
  • Flagger: Required for
    flagger_*
    tools
    bash
    kubectl apply -k github.com/fluxcd/flagger/kustomize/kubernetes
  • Argo Rollouts:使用
    rollout_*
    工具需先安装
    bash
    kubectl create namespace argo-rollouts
    kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/latest/download/install.yaml
  • Flagger:使用
    flagger_*
    工具需先安装
    bash
    kubectl apply -k github.com/fluxcd/flagger/kustomize/kubernetes

Related Skills

相关技能

  • k8s-gitops - GitOps deployments with Flux/ArgoCD
  • k8s-autoscaling - Auto-scale deployments
  • k8s-rollouts - Advanced progressive delivery
  • k8s-helm - Helm chart operations
  • k8s-gitops - 基于Flux/ArgoCD的GitOps部署
  • k8s-autoscaling - 部署自动扩缩容
  • k8s-rollouts - 高级渐进式交付
  • k8s-helm - Helm图表操作