nabsul/k8s-ecr-login-renew本镜像提供的工具用于解决AWS ECR(Elastic Container Registry)Docker登录凭证每12小时自动过期的问题。通过自动化流程定期从AWS ECR获取最新登录凭证,并将其存储到Kubernetes Secret中,确保Kubernetes集群持续有权限拉取ECR中的容器镜像,避免因凭证过期导致的服务部署中断。
AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY),需包含ecr:GetAuthorizationToken权限推荐通过Kubernetes CronJob实现定时运行,以下为基础配置示例(需根据实际环境调整参数):
yamlapiVersion: batch/v1 kind: CronJob metadata: name: ecr-credential-renewer namespace: default # 根据实际需求调整命名空间 spec: schedule: "0 */12 * * *" # 每12小时执行一次,与ECR凭证有效期匹配 concurrencyPolicy: Forbid # 禁止并发执行 jobTemplate: spec: template: spec: containers: - name: ecr-credential-renewer image: nabsul/k8s-ecr-login-renew:latest # 替换为实际镜像标签 env: - name: AWS_ACCESS_KEY_ID valueFrom: secretKeyRef: name: aws-ecr-credentials # 存储AWS密钥的Kubernetes Secret名称 key: access-key-id - name: AWS_SECRET_ACCESS_KEY valueFrom: secretKeyRef: name: aws-ecr-credentials key: secret-access-key - name: ECR_REGISTRY_ID value: "123456789012" # 替换为AWS账户ID(ECR仓库所属账户) - name: KUBERNETES_SECRET_NAME value: "ecr-docker-creds" # 目标Kubernetes Secret名称,用于存储Docker凭证 - name: KUBERNETES_NAMESPACE value: "default" # 存储凭证的Secret所在命名空间 restartPolicy: OnFailure # 任务失败时重启容器 serviceAccountName: ecr-renewer-sa # 需绑定具有Secret管理权限的ServiceAccount
| 环境变量 | 描述 | 是否必填 | 默认值 |
|---|---|---|---|
AWS_ACCESS_KEY_ID | AWS访问密钥ID,需具有ECR访问权限 | 是 | 无 |
AWS_SECRET_ACCESS_KEY | AWS秘密访问密钥 | 是 | 无 |
ECR_REGISTRY_ID | AWS账户ID(ECR仓库所属账户) | 是 | 无 |
KUBERNETES_SECRET_NAME | 存储Docker凭证的Kubernetes Secret名称 | 是 | 无 |
KUBERNETES_NAMESPACE | Secret所在的Kubernetes命名空间 | 否 | default |
详细的部署指南、权限配置及高级用法可参考项目GitHub仓库:[***]

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务