Рабочие узлы EKS не готовы, а ECR недоступны - PullRequest
1 голос
/ 10 октября 2019

Мой кластер EKS в us-east-1 перестал работать со всеми узлами NotReady, так как 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 не инициализирован. Это ожидается, поскольку модули ws-узла не запускаются.

1 Ответ

0 голосов
/ 10 октября 2019

VPC, где находятся рабочие узлы, имеет конечную точку PrivateLink для ECR. Эта конечная точка и входящие в нее записи DNS заставляют домены ECR в том же регионе преобразовываться в частный IP. Вот почему получение Docker не удалось только для ECR в том же регионе.

Группы безопасности рабочих узлов должны разрешать (https) трафик в группу безопасности конечной точки PrivateLink.

...