Коллега создал для меня кластер K8s. Я могу без проблем запускать службы в этом кластере. Однако я не могу запускать сервисы, зависящие от изображения из Amazon ECR, чего я действительно не понимаю. Возможно, я допустил небольшую ошибку в своем файле развертывания и, таким образом, вызвал эту проблему.
Вот мой файл развертывания:
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-deployment
labels:
app: hello
spec:
replicas: 3
selector:
matchLabels:
app: hello
template:
metadata:
labels:
app: hello
spec:
containers:
- name: hello
image: xxxxxxxxx.yyy.ecr.eu-zzzzz.amazonaws.com/test:latest
ports:
- containerPort: 5000
Вот мой служебный файл:
apiVersion: v1
kind: Service
metadata:
name: hello-svc
labels:
app: hello
spec:
type: NodePort
ports:
- port: 5000
nodePort: 30002
protocol: TCP
selector:
app: hello
Я запустил это на главном узле, чтобы убедиться, что Kubernetes знает о развертывании и сервисе.
kubectl create -f dep.yml
kubectl create -f service.yml
Я использовал расширение K8s в vscode для проверьте журналы моих стручков.
Это ошибка, которую я получаю:
Ошибка с сервера (BadRequest): контейнер hello в модуле hello-deployment-xxxx-49pbs ожидает запуска: попытка получения образа, но не удается.
Судя по всему, проблема с вытягиванием ..... Этого не происходит при использовании общедоступного образа из общедоступного центра докеров. По логике вещей, это будет вопрос прав. Но похоже, что это не так. Я не получаю сообщения об ошибке при выполнении этой команды на главном узле:
docker pull xxxxxxxxx.yyy.ecr.eu-zzzzz.amazonaws.com/test:latest
Эта команда просто вытягивает мое изображение.
Я сейчас в замешательстве. Я могу вытащить свое изображение с помощью docker pull
на главный узел. Но K8s не справляется. Мне что-то не хватает в моем файле развертывания? Некоторое свойство, которое говорит: repositoryIsPrivateButDoNotComplain? Я просто не понимаю этого.
Как это исправить, чтобы K8s мог легко использовать мое изображение из Amazon ECR?
imagePullSecrets
. Я не вижу, чтобы вы использовали его в конфигурации развертывания. Это необходимо для получения образа из частного реестра. 12-часовая проблема - это проблема, с которой вы столкнетесь после решения своей первой проблемы - если с тех пор AWS не внесла каких-либо изменений. - person rock'n rolla   schedule 26.03.2021