standard_init_linux.go:219:exec用户进程导致:exec格式错误ECR+Quarkus



好的,我已经知道SO上有很多错误,但我找不到适合我的情况。

前提条件:

我的环境是带M1的MacOS。

我有一个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

我正在使用悬臂扩展来构建图像。

一旦图像成功部署在我的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,这是节点的同一个拱门。

我还尝试手动构建一个docker映像,指定platform=linux/aamd64,然后部署到ECR,但没有任何变化。

根据观察结果,您的Kubernetes集群在启动pod时可能没有从ECR中提取最新更新的图像。除非满足某些条件,否则如果图像已经存在,k8s的默认拉取策略将跳过拉取图像。在开发过程中,您可以考虑让它始终拉动图像。看看这个堆栈溢出问题。

最新更新