The Cloud-Native Challenge for RISC-V
The cloud-native ecosystem has embraced containerization and orchestration as fundamental building blocks. Kubernetes has become the de facto standard for container orchestration, powering everything from small startups to massive enterprise deployments. However, there's a growing problem: architecture lock-in.
Most cloud-native tooling, including Kubernetes, officially supports only x86_64 and Arm64.
As RISC-V gains traction in edge computing, IoT, and specialized workloads, the lack of official support creates a significant barrier. Organizations exploring RISC-V for its open-source nature, customizability, and cost benefits find themselves unable to leverage the same cloud-native tools they use elsewhere.
The problem isn't just Kubernetes itself... it's the entire ecosystem:
- Container runtime components (pause containers, containerd configurations)
- Core infrastructure (etcd, CoreDNS)
- Network plugins (CNI providers)
- Pre-built images and tooling
Do you want to set up Kubernetes on RISC-V? If yes, then you're in the right place!
The Solution: kubernetes-riscv
I've built a complete solution that brings Kubernetes to RISC-V with full automation and multi-architecture support. Everything you need is available at github.com/alitariq4589/kubernetes-riscv.
This project provides:
- Pre-built multi-architecture images for all Kubernetes components
- Automated build pipelines that stay current with upstream releases
- One-command installation scripts with a user-friendly UI
- Support for mixed x86/RISC-V clusters
- Complete documentation and troubleshooting guides
All as part of the RISC-V software ecosystem by Cloud-V.
Build environment and status
The best thing about this setup is the way it stays up to date with the latest version of Kubernetes from the official upstream repository.
The repository kubernetes-riscv builds Kubernetes, its core components/dependencies, CNI plugin (which is flannel here) periodically every month on Milk-V Pioneer Box.
This means the core components used in the images and binaries stay the same as the upstream repository, and there is little to no change in the way they are hosted/released.
The change (if any) is just a wrapper of the Dockerfiles on the officially built binaries
What's Included
Core Kubernetes Components (v1.35.0)
- kube-apiserver
- kube-controller-manager
- kube-scheduler
- kube-proxy
- kubelet, kubectl, kubeadm
- The pause container ( the special container :) )
Infrastructure Components
- etcd (v3.6.6) - Distributed key-value store
- CoreDNS (v1.14.0) - DNS server for service discovery
- Pause container (v3.10) - Pod infrastructure container
Networking
- Flannel CNI (v0.28.0) - Container network interface
- CNI plugins (v1.5.1) - Standard networking plugins
All images support both linux/amd64 and linux/riscv64 and are available on Docker Hub under the cloudv10x organization. The source code of every image is available as CI files in .github/workflow in the same GitHub repository.
Quick Start: Install Kubernetes on RISC-V
The scripts in the repository's `scripts` dir work out of the box for three configurations.
- Running control plane on x86 and worker nodes on RISC-V
- Running control plane on RISC-V and worker nodes on RISC-V
- Running the control plane on RISC-V and running the worker nodes on the same machine as the control plane
Note: Before starting the script, it is important to note that you will have to provide sudo access for the scripts to set up the necessary files on the machine
Control Plane Setup
For RISC-V control plane:
wget https://raw.githubusercontent.com/alitariq4589/kubernetes-riscv/main/scripts/control-plane-setup-riscv64.sh
chmod +x control-plane-setup-riscv64.sh
./control-plane-setup-riscv64.sh
This will ask if you need to run the pods on the same node as control plane.
Once the installation finishes, you will see something like the following output if everything went without error.

You can also see the status of all the system pods running the following command
kubectl get pods -A

For x86 control plane (control plane on x86 and worker nodes on RISC-V):
wget https://raw.githubusercontent.com/alitariq4589/kubernetes-riscv/main/scripts/control-plane-setup-x86.sh
chmod +x control-plane-setup-x86.sh./control-plane-setup-x86.sh
Adding Worker Nodes
Get the join command from your control plane:
sudo kubeadm token create --print-join-command
# This outputs something like:
kubeadm join 192.168.18.15:6443 --token l97r2v.c6vq9tudzirbku7y \ --discovery-token-ca-cert-hash sha256:cb3c1028b059b937bab187df8f6ac789b04033eb2bcd00ee52521029bdae592e
On each worker node (RISC-V or x86):
wget https://raw.githubusercontent.com/alitariq4589/kubernetes-riscv/main/scripts/worker-node-setup.sh
chmod +x worker-node-setup.sh
./worker-node-setup.sh kubeadm join 192.168.18.15:6443 --token l97r2v... --discovery-token-ca-cert-hash sha256:cb3c...
The script automatically detects architecture and installs the correct binaries.
Verification
Check your cluster:
kubectl get nodes
NAME STATUS ROLES AGE VERSION
pioneer-1 Ready control-plane 5m v1.35.0
sf2-1 Ready <none> 2m v1.35.0
sf2-2 Ready <none> 2m v1.35.0
Use Cases
This setup is ideal for:
- Edge computing - Deploy Kubernetes at the edge on RISC-V hardware
- Development clusters - Test applications on RISC-V before production
- Heterogeneous clusters - Mix x86 control plane with RISC-V workers
- IoT orchestration - Container orchestration for RISC-V IoT devices
- Research - Evaluate RISC-V for containerized workloads
ISA Support Matrix
| Component | x86_64 | riscv64 |
| Control Plane | ||
| Worker Nodes | ||
| Pause Container | ||
| etcd | ||
| CoreDNS | ||
| Flannel | ||
| CNI Plugins |
Resources and Links
GitHub Repository: kubernetes-riscv
Docker Images: hub.docker.com/u/cloudv10x
Cloud-V Platform:https://cloud-v.co
Community Discord: Join Discord
Get Involved
This (and all other projects of Cloud-V) is an open-source project, and contributions are welcome:
- Test on different RISC-V hardware
- Report bugs via GitHub Issues
- Submit pull requests for improvements
- Share your use cases
Do you have a package you'd like to port to RISC-V? Reach out at our discord server or contact us at cloud-v.co/contactus.
This project is part of Cloud-V's initiative to expand the RISC-V software ecosystem. Cloud-V is a community platform providing free access to RISC-V resources for developers around the world for expanding RISC-V ecosystem.
For questions and support, join our Discord community.
