CARV-ICS-FORTH / kubernetes-riscv64

Status of work on running Kubernetes on RISC-V
17 stars 1 forks source link

Different containerd runtimes (spin) #3

Open matsbror opened 3 weeks ago

matsbror commented 3 weeks ago

Has anyone tried to use different containerd runtimes with the RISCV port of k3s?

I am trying to run WebAssembly containers using the spin runtime from https://github.com/spinkube/containerd-shim-spin

I get a problem when invoking this containerd runtime shim. Below are the relevant log entries. If you have any insight in what might be happening I would be happy.

Do you know if there is a chance that k3s will accept your PR of if there is any alternative to k3s on RISCV?

Jun 13 04:46:01 k3s-riscv-1 k3s[74143]: time="2024-06-13T04:46:01.535737281Z" level=error msg="RunPodSandbox for &PodSandboxMetadata{Name:wasm-spin-85cf4f8479-t7f9r,Uid:e3c29281-3b3c-4e2e-ada1-284a7d590ff0,Namespace:default,Attempt:0,} failed, error" error="failed to create containerd task: failed to start shim: start failed: io.containerd.spin.v2: InvalidArgument(\"error loading runtime spec: serde failed\")\n: exit status 1: unknown"
Jun 13 04:46:01 k3s-riscv-1 k3s[74143]: E0613 04:46:01.537647   74143 remote_runtime.go:176] "RunPodSandbox from runtime service failed" err=<
Jun 13 04:46:01 k3s-riscv-1 k3s[74143]:         rpc error: code = Unknown desc = failed to create containerd task: failed to start shim: start failed: io.containerd.spin.v2: InvalidArgument("error loading runtime spec: serde failed")
Jun 13 04:46:01 k3s-riscv-1 k3s[74143]:         : exit status 1: unknown
Jun 13 04:46:01 k3s-riscv-1 k3s[74143]:  >
Jun 13 04:46:01 k3s-riscv-1 k3s[74143]: E0613 04:46:01.537892   74143 kuberuntime_sandbox.go:72] "Failed to create sandbox for pod" err=<
Jun 13 04:46:01 k3s-riscv-1 k3s[74143]:         rpc error: code = Unknown desc = failed to create containerd task: failed to start shim: start failed: io.containerd.spin.v2: InvalidArgument("error loading runtime spec: serde failed")
Jun 13 04:46:01 k3s-riscv-1 k3s[74143]:         : exit status 1: unknown
Jun 13 04:46:01 k3s-riscv-1 k3s[74143]:  > pod="default/wasm-spin-85cf4f8479-t7f9r"
Jun 13 04:46:01 k3s-riscv-1 k3s[74143]: E0613 04:46:01.538002   74143 kuberuntime_manager.go:1122] "CreatePodSandbox for pod failed" err=<
Jun 13 04:46:01 k3s-riscv-1 k3s[74143]:         rpc error: code = Unknown desc = failed to create containerd task: failed to start shim: start failed: io.containerd.spin.v2: InvalidArgument("error loading runtime spec: serde failed")
Jun 13 04:46:01 k3s-riscv-1 k3s[74143]:         : exit status 1: unknown
Jun 13 04:46:01 k3s-riscv-1 k3s[74143]:  > pod="default/wasm-spin-85cf4f8479-t7f9r"
Jun 13 04:46:01 k3s-riscv-1 k3s[74143]: E0613 04:46:01.538308   74143 pod_workers.go:1294] "Error syncing pod, skipping" err="failed to \"CreatePodSandbox\" for \"wasm-spin-85cf4f8479-t7f9r_default(e3c29281-3b3c-4e2e-ada1-284a7d590ff0)\" with CreatePodSandboxError: \"Failed to create sandbox for pod \\\"wasm-spin-85cf4f8479-t7f9r_default(e3c29281-3b3c-4e2e-ada1-284a7d590ff0)\\\": rpc error: code = Unknown desc = failed to create containerd task: failed to start shim: start failed: io.containerd.spin.v2: InvalidArgument(\\\"error loading runtime spec: serde failed\\\")\\n: exit status 1: unknown\"" pod="default/wasm-spin-85cf4f8479-t7f9r" podUID=e3c29281-3b3c-4e2e-ada1-284a7d590ff0
chazapis commented 3 weeks ago

No, I have not tried any different container runtimes. From the log, it looks like serde does not work. Does this code work outside a container?

As for merging this work into upstream K3s, it looks like the team is reluctant to merge code that can not be tested on real hardware. I suggested to have an "experimental" build, but this has not moved forward. So I think this port of K3s is your best bet for now. I am not aware of other alternatives.