如何解决在树莓派上的 micro8s 集群上部署 Jenkins
我在本地设置了三个 raspBerry pi,并遵循了 here 上的教程。 我设法让我的 microk8s 集群运行起来。接下来我想部署 Jenkins。
每当我执行第一个命令时:
kubectl create -f jenkins-deployment.yaml -n jenkins
我收到以下错误:
standard_init_linux.go:219: exec user process caused: exec format error
其他一些搜索建议安装 docker。但是在 tutorial 中没有关于安装 docker 的内容。知道这里发生了什么吗?
解决方法
Docker 与容器化
关于您对 docker 的建议。 From Version 1.14.0 of MicroK8s (released 25 March 2019) containerd replaced dockerd。 从 1.14.0 版本开始,containerd 自动随 MicroK8S 安装一起提供,因此,您不需要 dockerd 作为 CRI。 您可以在下面找到安装期间设置的 MicroK8S 模块: following systemd services 将在您的系统中运行:
- snap.microk8s.daemon-apiserver,是使用
${SNAP_DATA}/args/kube-apiserver
中的参数启动的 kube-apiserver 守护进程 - snap.microk8s.daemon-controller-manager,是使用
${SNAP_DATA}/args/kube-controller-manager
中的参数启动的 kube-controller-manager 守护进程 - snap.microk8s.daemon-scheduler,是使用
${SNAP_DATA}/args/kube-scheduler
中的参数启动的 kube-scheduler 守护进程 - snap.microk8s.daemon-kubelet,是使用
${SNAP_DATA}/args/kubelet
中的参数启动的 kubelet 守护进程 - snap.microk8s.daemon-proxy,是使用
${SNAP_DATA}/args/kube-proxy
中的参数启动的 kube-proxy 守护进程 -
snap.microk8s.daemon-containerd,是使用
${SNAP_DATA}/args/containerd
和${SNAP_DATA}/args/containerd-template.toml
中的配置启动的 containerd 守护进程。 - snap.microk8s.daemon-etcd,是使用
${SNAP_DATA}/args/etcd
中的参数启动的 etcd 守护进程
ARM 架构
接下来是 Raspberry Pi,以及之前社区提到的 ARM。 您不能将基于 amd64 的常规映像用于 ARM 架构。
可能的解决方案
要解决问题,我向您推荐以下 2 个选项。
- 使用 Jenkins for ARM architecture 的已经准备好的基于 ARM 的映像。您也可以使用过滤器搜索 Raspberry Pi 的图像。只需选择您要使用的架构:ARM、ARM64 等。
一些图像已被移植到其他架构中,其中许多都得到官方支持(在不同程度上)。
ARMv6 32 位 (arm32v6
):https://hub.docker.com/u/arm32v6/
ARMv7 32 位 (arm32v7
):https://hub.docker.com/u/arm32v7/
ARMv8 64 位 (arm64v8
):https://hub.docker.com/u/arm64v8/
- 使用 buildx 为 ARM 准备自己的映像
参考文献:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。