【发布时间】:2021-07-27 00:22:45
【问题描述】:
好的,我已经知道 SO 上有很多错误,但是我找不到任何适合我的情况。
前提:
我的环境是带有 M1 的 MacOS。
我有一个使用 linux (amd64) 作为 AWS 上的操作系统架构的 EKS 集群。
在尝试使用 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 的 docker 映像,然后部署到 ECR,但没有任何变化。
【问题讨论】:
-
会不会是k8s集群没有拉新镜像? stackoverflow.com/a/35941366/1701388
-
我已经尝试从 ecr 中删除图像并推送新图像,我认为应该足够了
-
不,从 ecr 中删除图像或推送新图像没有任何作用。可能是 k8s 只是没有从 ecr 中拉取图像。
-
你是对的,设置 imagePullPolicy: 总是做的工作。您可以发布投票回复
标签: amazon-eks quarkus amazon-ecr jib