我是Kubernetes的新手,作为我自己的教程,我一直在努力为带头盔(v3)的Kubernetes部署一个基本项目。 我在AWS的ECR中有一张图片,以及此项目的本地头盔图表。 但是,我正在努力用Kubernetes运行我的映像。
我的图像设置正确。如果我在本地尝试类似docker run my_image_in_ecr
之类的方法,则其行为将与预期的一样(在本地配置IAM访问凭据之后)。
我的头盔图表正确倾斜,并在我的图像图中指定:
image:
repository: my_image_in_ecr
tag: latest
pullPolicy: IfNotPresent
但是,当我尝试使用掌舵进行部署时,我遇到了问题。 我的理解是带舵运行程序,我应该:
在我的图表上运行头盔安装
在新的kubernetes容器中运行图像
但是当我看着我的kubernetes吊舱时,它们似乎永远无法启动并运行。
hello-test1-hello-world-54465c788c-dxrc7 0/1 ImagePullBackOff 0 49m
hello-test2-hello-world-8499ddfb76-6xn5q 0/1 ImagePullBackOff 0 2m45s
hello-test3-hello-world-84489658c4-ggs89 0/1 ErrImagePull 0 15s
这些吊舱的日志如下:
Error from server (BadRequest): container "hello-world" in pod "hello-test3-hello-world-84489658c4-ggs89" is waiting to start: trying and failing to pull image
由于我不知道如何使用Kubernetes正确设置imagePullSecrets,所以我期望这样做会失败。但是我期待其他错误消息,例如错误的身份验证凭据。
答案 0 :(得分:1)
如何正确设置凭据(例如imagePullSecrets)以授权从ecr中提取图像?
传统方法是向节点授予包含instance role的ecr:*
IAM Permissions,确保在--cloud-provider=aws
,apiserver
和{{ 1}}(如果您在AWS内部使用kubernetes进行任何操作,您肯定会希望正确启用和配置),然后controller-manager
将自动与ECR协调以进行Just Work™
该信息显示在您引用的页面上,标题为Using Amazon Elastic Container Registry,但不清楚您是阅读还是不理解,或者阅读并不适用于您,或者没有深入到页面