<p>I installed a K8S cluster on my 4 raspberry pi 4 with 2gb of RAM and 32gb SD cards.</p>
<p>On my master and slave nodes I installed <em>qemu binfmt-support qemu-user-static</em> in order to enable the support of ARM CPU for the docker images.</p>
<p>I tried to install Grafana and Prometheus in order to monitor the cluster by doing:</p>
<pre class="lang-sh prettyprint-override"><code>kubectl apply --filename https://raw.githubusercontent.com/giantswarm/prometheus/master/manifests-all.yaml
</code></pre>
<p>But the pods <code>prometheus-node-exporter</code> failed with the status <code>CrashLoopBackOff</code></p>
<p>When I check the logs <code>kubectl logs prometheus-node-exporter-dn8t9 -n monitoring</code> I got the error <code>qemu: uncaught target signal 11 (Segmentation fault) - core dumped</code></p>
<p>And I do not know how to solve this issue or where to start looking.</p>
<p>Is there anyone that could help with that?</p>

<p>I looked at this 👀 and see 👀 since you are running on a raspberry pi 4, your architecture is probably <code>aarch64</code> (arm64). So, it seems like the node-exporter DaemonSet K8s manifest is pulling the following image: <code>prom/node-exporter:v0.14.0</code> and I looked at <a href="https://hub.docker.com/r/prom/node-exporter/tags" rel="nofollow noreferrer">dockerhub and that image tag doesn't have the <code>aarch64</code> architecture tag</a>, so it's most likely pulling the <code>amd64</code> version causing <code>qemu</code> on the node to crash in your case.</p>
<p>You can also see that there's an <a href="https://hub.docker.com/layers/prom/node-exporter/v0.18.0/images/sha256-503d64cf65ad001e4b1946d2d53140d7accbb7c2fa79307c4a90b73b644eb332?context=explore" rel="nofollow noreferrer"><code>arm64</code> image starting with <code>prom/node-exporter:v0.18.0</code></a>. So, you can try downloading the file editing the node-exporter container to use <code>v0.18.0</code> and that should fix the issue with that container. You may also need to update other containers that have matching <code>arm64</code> architecture.</p>
<p>🏃‍♀️🏃‍♂️🏃</p>
<pre class="lang-sh prettyprint-override"><code>$ wget https://raw.githubusercontent.com/giantswarm/prometheus/master/manifests-all.yaml
</code></pre>
<p>Then change:</p>
<pre class="lang-yaml prettyprint-override"><code>...
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: prometheus-node-exporter
  namespace: monitoring
  labels:
    app: prometheus
    component: node-exporter
spec:
  selector:
    matchLabels:
      app: prometheus
  template:
    metadata:
      name: prometheus-node-exporter
      labels:
        app: prometheus
        component: node-exporter
    spec:
      containers:
      - image: prom/node-exporter:v0.18.0 👈 Change here
        name: prometheus-node-exporter
        ports:
        - name: prom-node-exp
          #^ must be an IANA_SVC_NAME (at most 15 characters, ..)
          containerPort: 9100
          hostPort: 9100
      hostNetwork: true
      hostPID: true
...
</code></pre>
<p>✌️</p>
