exec /usr/bin/java:Kubernetes中的exec格式错误

t1rydlwq  于 2023-10-17  发布在  Kubernetes
关注(0)|答案(1)|浏览(300)

我已经使用kubespray在arm64服务器上安装了kubernetes。
启动pod时出现错误:

root@node1:~# kubectl logs java-demo-788fbc87cc-j2s9r
exec /usr/bin/java: exec format error

你知道怎么才能修好吗?

3qpi33ja

3qpi33ja1#

正如评论中提到的,如果你不能改变PC(从arm 64到amd 64),你可以用这个来创建你的docker镜像:
Docker镜像示例:

# FROM arm64v8/ubuntu:20.04
# or use a base image suitable for both ARM64 and AMD64 architectures
FROM --platform=linux/amd64,linux/arm64 ubuntu:20.04

RUN apt-get update && apt-get install -y openjdk-11-jre

# Copy your Java application JAR or files
COPY your-app.jar /app.jar

CMD ["java", "-jar", "/app.jar"]

参考号:https://docs.docker.com/build/building/multi-platform/

docker buildx install
docker buildx build --push --platform linux/amd64,linux/arm64 -t your-image-name:tag .
docker run -d your-image-name:tag  # please test on both amd64 and arm64

**参考号:**https:docs.docker.com/build/building/multi-platform/#cross-compilation

你应该在arm 64设备上构建。在上面的参考(交叉编译)中,您可以列出Arm 64上的构建器:

docker buildx ls

请详细阅读交叉编译参考。

相关问题