SuperAPI AI 工具集

harness-eks-deployments

部署与运维

查看项目

更新于 10-16 04:37

技能介绍

Harness EKS Deployments Skill 面向通过 Harness CD 向 AWS EKS 部署应用的场景,提供可参考的 YAML 配置模式。

用途

用于构建 EKS 部署流水线、配置部署策略(Rolling/Canary/Blue-Green)、实施 Native Helm 部署、结合 ArgoCD 的 GitOps,以及多环境提升。

主要能力

支持三种部署类型:

  • Native Helm Deployment:以 NativeHelm 作为 serviceDefinition 类型,通过 HarnessCode 存储加载 Helm Chart,chartVersion 使用 <+input>,helmVersion 为 V3,制品来源为 ECR 镜像。
  • Kubernetes Manifest Deployment:以 Kubernetes 作为 serviceDefinition 类型,通过 K8sManifest 加载 k8s/base 与 k8s/overlays/<+env.name> 路径下的清单。
  • GitOps:描述中提及 GitOps 与 ArgoCD,但未提供具体的配置片段。

支持三种部署策略:

  • Rolling(零停机默认):使用 K8sRollingDeploy 步骤,skipDryRun 为 false,超时 10m,回滚使用 K8sRollingRollback。
  • Canary(渐进式流量切换):使用 K8sCanaryDeploy 按百分比推进(示例为 10%、50%、100%),中间插入 HarnessApproval 审批步骤,回滚使用 K8sCanaryDelete。
  • Blue-Green(即时切换):使用 K8sBGStageDeployment 暂存部署,经 HarnessApproval 审批后通过 K8sBGSwapServices 切换服务,回滚同样使用 K8sBGSwapServices。

其他能力:

  • EKS 基础设施定义:infrastructureDefinition 类型为 KubernetesDirect,包含 connectorRef、namespace(<+service.name>-<+env.name>)、releaseName(<+service.name>),并设置 allowSimultaneousDeployments 为 false。
  • AWS EKS 连接器:connector 类型为 K8sCluster,凭据类型为 InheritFromDelegate,并通过 delegateSelectors 指定 eks-delegate。
  • 环境配置:Development 为 PreProduction 类型、Production 为 Production 类型,各自通过 Values 类型的 manifest 覆盖 values-dev.yaml 或 values-prod.yaml。
  • 验证与健康检查:Verify 步骤(类型 Canary,敏感度 MEDIUM,时长 5m)与 Http 步骤(对 cluster.local 的 /health 发起 GET,断言响应码为 200)。
  • 多环境提升流水线:包含 Deploy Dev、Deploy Staging、Deploy Production 阶段,后续阶段通过 pipelineStatus 与阶段状态条件控制。
  • 常见表达式:如 <+service.name>、<+env.name>、<+env.type>、<+infra.namespace>、<+infra.releaseName>、<+artifact.image>、<+artifact.tag>、<+pipeline.executionId>。

使用方式

按照技能提供的 YAML 片段配置服务定义、部署策略、基础设施定义、连接器、环境覆盖与提升流水线,并在 Harness 中执行。

适用场景

适用于需要规范化 EKS 发布流程、区分多环境(开发/预发/生产)、采用渐进式或即时切换策略、并加入审批与部署验证的团队。

限制

资料未提供价格、平台限制、配额或性能数据;GitOps 部分仅提及支持 ArgoCD,未给出具体配置示例;故障排查部分仅列出问题与对应解决方向,未展开详细步骤。