Kubernetes v1.7.6 AWS ECR“需要身份validation”

我有一个全新的Kubernetes v1.7.6主控制器。

节点能够join,并且被标记为接收来自使用公共容器储存库的部署的节点(即,普罗米修斯等)的节点。

我的API服务和控制器服务都是以–cloud-provider = aws启动的,但是我在#kubernetes松弛信道上被告知我并不需要在kubelet的systemd单元中设置这个,实际上这会导致kubelet不运行。 这也是我的经验,所以它没有configuration在那里(与Kubernetes文档相反,我相信它不会更新为v1.7.6)。

我的AWS节点以具有以下权限的IAMangular色启动:

DescribeRepositories ListImages BatchCheckLayerAvailability BatchGetImage DescribeImages GetAuthorizationToken GetDownloadUrlForLayer GetRepositoryPolicy

我以前的Kubernetes v1.6.3主控制器也是一样的IAMangular色。

我在描述一个带有kubectl的pod时看到的错误是:

无法拉图像“:”:rpc错误:代码= 2 desc =未授权:需要validation

uname -a在我的节点上是:

Linux ip-XXXX 4.4.0-1022-aws#31-Ubuntu SMP Tue Jun 27 27:27:55 UTC 2017 x86_64 x86_64 x86_64 GNU / Linux

uname -a在我的主控制器上是:

Linux ip-XXXX 4.4.0-96-generic#119 -Ubuntu SMP Tue Sep 12 14:59:54 UTC 2017 x86_64 x86_64 x86_64 GNU / Linux

IAM政策JSON(根据Thomas Khalil的要求):

{“Version”:“2012-10-17”,“Statement”:[{“Effect”:“Allow”,“Action”:[“ecr:GetAuthorizationToken”,“ecr:BatchCheckLayerAvailability”,“ecr:GetDownloadUrlForLayer” “ecr:GetRepositoryPolicy”,“ecr:DescribeRepositories”,“ecr:ListImages”,“ecr:DescribeImages”,“ecr:BatchGetImage”],“Resource”:“*”}]}

接下来该做什么,我完全不知所措。 任何帮助是极大的赞赏。