EKS工作者节点尚未准备就绪,并且ECR无法访问

时间:2019-10-10 14:12:03

标签: amazon-web-services kubernetes amazon-eks

我的us-east-1中的EKS集群停止使用所有未就绪节点,因为kubelet无法拉出暂停容器。这是在启动时执行的kubelet命令

/usr/bin/kubelet --cloud-provider aws --config /etc/kubernetes/kubelet/kubelet-config.json --kubeconfig /var/lib/kubelet/kubeconfig --container-runtime docker --network-plugin cni --node-ip=10.0.21.107 --pod-infra-container-image=602401143452.dkr.ecr.us-east-1.amazonaws.com/eks/pause-amd64:3.1 --node-labels=kubernetes.io/lifecycle=spot

问题在于拉出图像

602401143452.dkr.ecr.us-east-1.amazonaws.com/eks/pause-amd64:3.1

其他必需的容器也不可用,例如:

602401143452.dkr.ecr.us-east-1.amazonaws.com/eks/kube-proxy:v1.14.6
602401143452.dkr.ecr.us-east-1.amazonaws.com/eks/coredns:v1.3.1

另一方面,容器映像可从其他区域获得,而不仅仅是群集所在的区域。

Kubernetes事件提到未初始化的cni插件。这是预料之中的,因为aws节点容器无法启动。

1 个答案:

答案 0 :(得分:0)

工作节点所在的VPC具有用于ECR的PrivateLink端点。该终结点及其附带的DNS条目使同一区域内的ECR域解析为私有IP。这就是为什么docker pull只对同一区域的ECR失败的原因。

辅助节点的安全组需要允许(https)通信出到PrivateLink终结点安全组。