我正在使用Terraform部署Azure K8s群集,并且该映像托管在Amazon ECR中。在ECR的图像拉出时部署失败,并出现以下错误:
无法拉图片“tooot.eu -…
基本上,您缺乏从AWS提取图像的凭据。
您需要创建一个包含登录凭据的regcred:
https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
之后,您需要在terraform配置中添加regcred。我没有使用模板,但在部署规范中,您将添加一个名为imagePullSecrets的字段。
https://www.terraform.io/docs/providers/kubernetes/r/deployment.html
imagePullSecrets描述:
image_pull_secrets - (可选)ImagePullSecrets是对同一名称空间中的秘密的引用的可选列表,用于提取此PodSpec使用的任何图像。如果指定,这些秘密将被传递给各个拉拔器实现以供它们使用。例如,在docker的情况下,只有DockerConfig类型的机密被尊重
在kubernetes集群中,您必须添加秘密,用于在提取图像时登录ECR
ECR管理用于推送和拉动图像的令牌。令牌有效期为12小时
亲切地检查ECR中的令牌
我已经编写了shell脚本,你也可以查看它
它从aws ECR获取令牌,删除kubernetes集群中的旧秘密,并在kubernetes集群中再次创建新秘密。哪个秘密将用于从aws ecr中提取图像。
因为我正在检查容器规格选项中没有秘密
你可以在这里查看更多信息:
https://github.com/harsh4870/ECR-Token-automation/blob/master/aws-token.sh