Рейтинг:0

Поды Kubernetes не работают с ImagePullBackOff при попытке получить изображение из AWS ECR

флаг gb

Я пытаюсь запустить несколько модулей Kubernetes на своем компьютере с Windows с помощью Docker-Desktop. Я пытаюсь установить их с помощью HELM. Я создал образы Docker и поместил их в частный репозиторий AWS ECR.

Когда я пытаюсь запустить команду установки HELM для запуска контейнера, они создаются. Однако, когда они пытаются извлечь образы из AWS ECR, возникает ошибка, и контейнер получает «ИзображениеPullBackOff' ошибка.

Ошибка при описании неудачного пода:

Не удалось получить изображение "012345678900.dkr.ecr.ap-south-1.amazonaws.com/arjun-poc1/centos-test1:latest": ошибка rpc: code = Unknown desc = Ошибка ответа от демона: Head "https:/ /012345678900.dkr.ecr.ap-south-1.amazonaws.com/v2/arjun-poc1/centos-test1/manifests/latest": нет базовых учетных данных

я сделал 'настроить aws' шаг и запустить 'AWS ECR получить логин-паролькоманда. Я могу вручную запустить «docker pull» и получить образ локально. Однако он не извлекается автоматически во время запуска контейнера.

Я также попытался настроить 'imagePullSecret', выполнив следующую команду: kubectl создать секретный реестр докеров aws-secret --docker-server=https://[email protected] --docker-username=AWS --docker-password=$ (AWS ECR получить-логин-пароль). Пытался включить его и в values.yaml.

диаграммы\centos-test1\templates\deployment.yaml

спецификация:
  imagePullSecrets: {{- toYaml .Values.global.imagePullSecrets | ниндент 12 }}

значения.yaml

Глобальный:
  центр: 012345678900.dkr.ecr.ap-south-1.amazonaws.com/arjun-poc1
  imagePullSecrets:
  - имя: aws-секрет


  картинки:
    центрос-тест1:
        имя: Centos-test1
        тег: последний
        pullPolicy: всегда

Тем не менее это не работает.Я получаю сообщение об ошибке «ImagePullBackOff» каждый раз. Кто-нибудь знает, как решить эту проблему?

флаг in
Судя по крошечному фрагменту, который вы опубликовали, `global.imagePullSecrets:` представляет собой **строку**, тогда как [в `PodSpec` это **список** объектов](https://kubernetes.io/docs /reference/generated/kubernetes-api/v1.22/#podspec-v1-core), как ясно показано в [прекрасном руководстве](https://kubernetes.io/docs/concepts/containers/images/#referring- to-an-imagepullsecrets-on-a-pod). Я понятия не имею, как ваш PodSpec вообще пройдет проверку, но вот вы здесь.
arjunbnair avatar
флаг gb
Сожалею. Я внес одно изменение в этот фрагмент, и теперь он обновлен в моем вопросе. Вот как сейчас выглядит мой код.
arjunbnair avatar
флаг gb
Тем не менее я сталкиваюсь с той же проблемой.
флаг in
Конечно, подозрительно, что у вас есть `--docker-username` **и** встроенное имя пользователя в `https://AWS@`, поскольку [документы AWS этого не делают](https://docs. aws.amazon.com/AmazonECR/latest/userguide/registry_auth.html#get-login-password)
arjunbnair avatar
флаг gb
Как насчет: `kubectl создать секретный реестр докеров aws-secret --docker-server=https://[email protected] --username=AWS --password=$ (aws ecr get-login-password --region ap-south-1)` ??
arjunbnair avatar
флаг gb
Однако я получаю эту ошибку: ** ошибка: требуется либо --from-file, либо комбинация --docker-username, --docker-password и --docker-server**
флаг in
Я не знаю, как быть более ясным; опустите `https://AWS@` из вашего параметра `--docker-server`, поскольку `--docker-username` — это место, куда идут имена пользователей, а не встроенные в URL https.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.