<p>I have a local setup of three raspberry pi's and followed the tutorial on <a href="https://ubuntu.com/tutorials/how-to-kubernetes-cluster-on-raspberry-pi#1-overview" rel="nofollow noreferrer">here</a>.
I managed to get my microk8s cluster running. Next I wanted to deploy <a href="https://www.jenkins.io/doc/book/installing/kubernetes/#install-jenkins-with-yaml-files" rel="nofollow noreferrer">Jenkins</a>.</p>
<p>Whenever I execute the first command:</p>
<pre><code>kubectl create -f jenkins-deployment.yaml -n jenkins
</code></pre>
<p>I get the following error:</p>
<pre><code>standard_init_linux.go:219: exec user process caused: exec format error
</code></pre>
<p>Some other searches suggest installing docker. However in the <a href="https://ubuntu.com/tutorials/how-to-kubernetes-cluster-on-raspberry-pi#1-overview" rel="nofollow noreferrer">tutorial</a> there is nothing about  installing docker. Any ideas what is happening here?</p>

greedsin
<p><strong>Docker vs. containerd</strong></p>
<p>Regarding your suggestion about the docker.
<a href="https://stackoverflow.com/a/55478145/9929015">From Version 1.14.0 of MicroK8s (released 25 March 2019) containerd replaced dockerd</a>.
Starting from version 1.14.0 containerd automatically ships with MicroK8S installation So, you don't need dockerd as CRI.
Below you can find modules MicroK8S set up during installation:
The <a href="https://tharangarajapaksha.medium.com/start-k8s-with-microk8s-85b67738b557" rel="nofollow noreferrer">following systemd services</a> will be running in your system:</p>
<ul>
<li>snap.microk8s.daemon-apiserver, is the kube-apiserver daemon started using the arguments in  <code>${SNAP_DATA}/args/kube-apiserver</code></li>
<li>snap.microk8s.daemon-controller-manager, is the  kube-controller-manager daemon started using the arguments in  <code>${SNAP_DATA}/args/kube-controller-manager</code></li>
<li>snap.microk8s.daemon-scheduler, is the kube-scheduler daemon started using the arguments in  <code>${SNAP_DATA}/args/kube-scheduler</code></li>
<li>snap.microk8s.daemon-kubelet, is the kubelet daemon started using the arguments in  <code>${SNAP_DATA}/args/kubelet</code></li>
<li>snap.microk8s.daemon-proxy, is the kube-proxy daemon started using the arguments in  <code>${SNAP_DATA}/args/kube-proxy</code></li>
<li><strong>snap.microk8s.daemon-containerd</strong>, is the containerd daemon started using the configuration in  <code>${SNAP_DATA}/args/containerd</code>  and  <code>${SNAP_DATA}/args/containerd-template.toml</code>.</li>
<li>snap.microk8s.daemon-etcd, is the etcd daemon started using the arguments in  <code>${SNAP_DATA}/args/etcd</code></li>
</ul>
<hr />
<p><strong>ARM architecture</strong></p>
<p>Next, Raspberry Pi and, as mentioned previously by community, ARM.
You can not use regular amd64-based images for ARM architecture.</p>
<p><strong>Possible solutions</strong></p>
<p>To solve a problem, I recommend you 2 options below.</p>
<ol>
<li><strong>Use already prepared ARM-based image</strong> of <a href="https://hub.docker.com/r/mlucken/jenkins-arm" rel="nofollow noreferrer">Jenkins for ARM architecture</a>.  Also you can search images for Raspberry Pi with filters. Just select which architecture you would like to use: ARM, ARM64, etc.</li>
</ol>
<p>Some images have been ported for other architectures, and many of these are officially supported (to various degrees).</p>
<p>ARMv6 32-bit (<code>arm32v6</code>):  <a href="https://hub.docker.com/u/arm32v6/" rel="nofollow noreferrer">https://hub.docker.com/u/arm32v6/</a></p>
<p>ARMv7 32-bit (<code>arm32v7</code>):  <a href="https://hub.docker.com/u/arm32v7/" rel="nofollow noreferrer">https://hub.docker.com/u/arm32v7/</a></p>
<p>ARMv8 64-bit (<code>arm64v8</code>):  <a href="https://hub.docker.com/u/arm64v8/" rel="nofollow noreferrer">https://hub.docker.com/u/arm64v8/</a></p>
<ol start="2">
<li><strong>Prepare your own image for ARM using <a href="https://github.com/docker/buildx" rel="nofollow noreferrer">buildx</a></strong></li>
</ol>
<p>References:</p>
<ul>
<li><a href="https://www.docker.com/blog/multi-arch-build-and-images-the-simple-way/" rel="nofollow noreferrer">Multi-arch build and images, the simple way</a></li>
<li><a href="https://carlosedp.medium.com/cross-building-arm64-images-on-docker-desktop-254d1e0bc1f9" rel="nofollow noreferrer">Cross building ARM images on Docker Desktop</a></li>
</ul>
