无法从使用 CRI-O 作为容器运行时接口的 Kubernetes 中从 AWS ECR 中提取映像,并出现以下错误。
Failed to pull image "<aws_account_id>.dkr.ecr.<region-name>.amazonaws.com/<image>": reading manifest <version> in <aws_account_id>.dkr.ecr.<region-name>.amazonaws.com/<image>: authentication required
答案1
您需要安装 Skopeo 并运行以下命令。确保将区域替换为存储 ECR 映像的区域。
skopeo login -u AWS -p $(/usr/local/bin/aws ecr get-login-password --region <AWS Region>) $(/usr/local/bin/aws sts get-caller-identity --query Account --output text).dkr.ecr.<AWS Region>.amazonaws.com
我建议将其转变为 CRON 作业并每 11 小时运行一次,因为令牌在 12 小时后过期。