我有一个全新的Kubernetes v1.7.6主控制器。
节点能够加入,标记为从使用公共容器存储库的部署接收pod的节点工作正常(即Prometheus等)。
我的API服务和控制器服务都是用--cloud-provider = aws启动的,不过我在#kubernetes slack频道上被告知我不需要在kubelet的systemd单元中设置它事实上,这将导致kubelet不运行。这也是我的经验所以它没有在那里配置(与Kubernetes文档相反,我相信v1.7.6没有更新)。
我的AWS节点是使用具有以下权限的IAM角色启动的:
DescribeRepositories ListImages BatchCheckLayerAvailability BatchGetImage DescribeImages GetAuthorizationToken GetDownloadUrlForLayer GetRepositoryPolicy
同样的IAM角色与我以前的Kubernetes v1.6.3主控制器一起运行良好。
在使用kubectl描述pod时我看到的错误是:
无法提取图像":" :rpc错误:代码= 2 desc =未授权:需要身份验证
我节点上的uname -a是:
Linux ip-X-X-X-X 4.4.0-1022-aws#31-Ubuntu SMP Tue Jun 27 11:27:55 UTC 2017 x86_64 x86_64 x86_64 GNU / Linux
主控制器上的uname -a是:
Linux ip-X-X-X-X 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的要求):
{ "版本":" 2012-10-17", "陈述":[ { "效果":"允许", "行动":[ " ECR:GetAuthorizationToken&#34 ;, " ECR:BatchCheckLayerAvailability&#34 ;, " ECR:GetDownloadUrlForLayer&#34 ;, " ECR:GetRepositoryPolicy&#34 ;, " ECR:DescribeRepositories&#34 ;, " ECR:ListImages&#34 ;, " ECR:DescribeImages&#34 ;, " ECR:BatchGetImage" ] "资源":" *" } ] }
我完全不知道接下来要做什么。非常感谢任何帮助。