You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CircleCI对接EKS部署镜像遇gzip解压报错及部署流程咨询

报错问题修复

你遇到的gzip: stdin: not in gzip format报错是因为使用的CircleCI Orbs版本过旧导致的:旧版aws-eks@1.1.0内置的kubectl、aws-iam-authenticator下载链接已经失效,请求返回的不是合法gzip压缩包,所以解压失败。
修复方式如下:

  • 升级所有相关Orbs到最新稳定版,替换你配置里的orbs段:
orbs:
  aws-ecr: circleci/aws-ecr@8.2.1
  aws-eks: circleci/aws-eks@2.2.0
  kubernetes: circleci/kubernetes@1.3.0
  • 若暂时不升级Orbs,可以在update-kubeconfig-with-authenticator步骤中添加install-kubectl: false参数,提前在你使用的执行器环境中预装kubectl和aws-iam-authenticator工具。

EKS部署流程修正

你当前的流水线配置是官方示例的临时测试逻辑:每次执行都会新建EKS集群、部署测试、随后删除集群,无法让你的业务镜像持久运行在EKS上,需要按以下步骤调整:

  • 提前在AWS控制台/CLI中创建固定的EKS集群,不要在流水线中动态创建删除。同时配置两个权限:
    • CircleCI使用的IAM账号授予EKS集群的管理访问权限
    • EKS节点的IAM角色绑定AmazonEC2ContainerRegistryReadOnly策略,确保可以拉取你推到ECR的私有镜像
  • 修正你的K8S部署配置(configs/k8s/prod-deployment.yaml),将镜像地址替换为你的ECR镜像完整路径,格式为<AWS账号ID>.dkr.ecr.<AWS区域>.amazonaws.com/bwtc-backend:<镜像标签>
  • 调整流水线workflow逻辑,删除动态创建、删除集群的步骤,修正后的核心流程如下:
workflows:
  deployment:
    jobs:
      - aws-ecr/build-and-push-image:
          name: build-push-ecr
          repo: bwtc-backend
          tag: "${CIRCLE_BRANCH}-v0.1.${CIRCLE_BUILD_NUM}"
          dockerfile: configs/Docker/Dockerfile.prod
          path: .
          filters:
            branches:
              only: master # 根据你的需求调整分支过滤规则
      - create-deployment:
          cluster-name: <你的固定EKS集群名称>
          requires:
            - build-push-ecr
          # 可以在此步骤前新增一步,用sed命令动态替换deployment.yaml里的镜像标签为刚生成的tag
  • 修正你当前配置的逻辑冲突:你create-deployment步骤中操作的部署名为deployment/prod-deployment,但后续update-container-image步骤操作的是deployment/nginx-deployment,二者名称不匹配,镜像也是示例的nginx镜像,需要统一改为你自己的业务部署名和ECR镜像地址。

内容的提问来源于stack exchange,提问作者user16373392

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 00:48:04