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

Tekton流水线推送AWS ECR镜像报401 Unauthorized错误如何解决

排查解决步骤

你通过Deployment验证可正常拉取ECR镜像,仅能证明kubelet拉取镜像时所用的imagePullSecrets有效。Tekton的镜像推送逻辑是在任务容器内部执行,不会直接复用kubelet的镜像拉取凭证,二者属于完全独立的凭证链路,可按以下顺序排查:

  • 检查流水线绑定的ServiceAccount配置
    你需要将ECR凭证的dockerconfigjson类型Secret关联到Tekton运行PipelineRun所用的ServiceAccount上,同时添加指定仓库地址的Tekton专用注解,示例配置如下:
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: tekton-build-sa
      annotations:
        # 替换为你的ECR仓库地址前缀
        tekton.dev/docker-0: https://12345678910.dkr.ecr.us-east-1.amazonaws.com
    secrets:
    # 替换为你的ECR凭证Secret名称
    - name: ecr-docker-config
    
    同时需要确保你的PipelineRun显式指定serviceAccountName: tekton-build-sa,不要使用默认ServiceAccount。
  • 验证IAM权限范围
    你当前仅验证了镜像拉取权限,推送ECR需要额外的写权限,确认你的IAM身份(用户/角色)绑定的策略包含以下必要权限:
    ecr:PutImage、ecr:InitiateLayerUpload、ecr:UploadLayerPart、ecr:CompleteLayerUpload、ecr:BatchCheckLayerAvailability
  • 确认ECR仓库已预先创建
    AWS ECR不支持推送时自动创建仓库,你需要提前在对应区域创建名称为test-api的镜像仓库,AWS会对不存在的仓库请求返回401未授权错误,而非明确提示仓库不存在。
  • 排查凭证有效期问题
    ECR的登录凭证默认有效期仅为12小时,如果你是手动生成的Secret,需要定期刷新,建议部署集群内的ECR凭证自动刷新组件避免过期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:24:03