standard_init_linux.go:219: пользовательский процесс exec вызвал: ошибка формата exec ECR + Quarkus

Хорошо, я уже знаю, что на SO много ошибок, однако я не могу найти ни одной, подходящей для моего случая.

ПРЕДПОСЫЛКА:

Моя среда — MacOS с M1.

У меня есть кластер EKS с linux (amd64) в качестве архитектуры ОС на AWS.

При попытке создать и развернуть свой микросервис с помощью Quarkus я установил в application.properties:

quarkus.container-image.image=<my ECR repository>
quarkus.container-image.build=true
quarkus.container-image.push=true
quarkus.jib.platforms=linux/amd64

Я использую расширение jib для создания изображения.

Как только образ успешно развернут в моем реестре ECR aws, я запускаю:

 kubectl apply -f target/kubernetes/kubernetes.yaml

потом

 kubectl get po

Я понимаю

NAME                              READY   STATUS             RESTARTS   AGE
kube-cm-example-6ffd58655-rzzqh   0/1     CrashLoopBackOff   8          16m

Затем

kubectl logs kube-cm-example-6ffd58655-rzzqh

вернуть следующий вывод

standard_init_linux.go:219: exec user process caused: exec format error

Я читал во многих источниках, что это проблема образа платформы, однако, используя jib, я установил linux/amd64, который является той же аркой узла.

Я также пытался вручную создать образ докера, указав платформу = linux/amd64, а затем развернуть его в ECR, но ничего не изменилось.


person Fabrizio Stellato    schedule 04.05.2021    source источник
comment
Может ли быть так, что кластер k8s не тянет новые образы? stackoverflow.com/a/35941366/1701388   -  person Chanseok Oh    schedule 04.05.2021
comment
Я уже пытался удалить образ из ECR и добавить новый, думаю, этого должно хватить.   -  person Fabrizio Stellato    schedule 04.05.2021
comment
Нет, удаление изображения из ECR или установка нового изображения ничего не дает. Возможно, k8s просто не тянет образ из ecr.   -  person Chanseok Oh    schedule 05.05.2021
comment
Вы были правы, установка imagePullPolicy: всегда выполняла свою работу. Вы можете опубликовать ответ для голосования   -  person Fabrizio Stellato    schedule 05.05.2021


Ответы (1)


Основываясь на наблюдениях, возможно, ваш кластер Kubernetes не загружает недавно обновленные образы из ECR при запуске модуля. Если не выполняются некоторые условия, политика извлечения по умолчанию k8s пропускает получение изображений, если они уже существуют. Во время разработки вы можете подумать о том, чтобы всегда извлекать изображения. Взгляните на этот вопрос о переполнении стека.

person Chanseok Oh    schedule 05.05.2021