Project Description
We know that Kubernetes clusters need control planes but running them in dedicated VMs might not be always efficient, instead, we can run them as pods within the management cluster. This project aims to solve the following problems:
- Reduce the cost of provisioning control planes
- Provide a declarative API for control plane management
- Centralize management of control planes and decouple them from workers
- Provide k3s clusters as a service on any infrastructure.
Goal for this Hackweek
- Look into existing solutions like https://github.com/clastix/kamaji
- Figure out if any can be reused for managing K3S
- Investigate what changes need to be done in K3S in order to support this use-case
- Build an API that allows provisioning and configuring of K3S control planes, see https://github.com/zawachte/cluster-api-k3s/ for generating k3s configuration using K8S API.
Resources
No project repository for now, all hacking will be done in these forks: https://github.com/alexander-demicev/kamaji https://github.com/alexander-demicev/k3s
What was achieved during hack week?
- I was able to deploy k3s in a pod using experimental agentless feature https://docs.k3s.io/advanced#running-agentless-servers-experimental, meaning the server will not run kubelet, container runtime, or CNI
- It was possible to deploy an external etcd and connect agentless servers to it https://docs.k3s.io/installation/ha#2-launch-server-nodes
- I managed to run and connect a worker node to control planes running in pods
What wasn't done during hack week?
- After some investigation I came to conclusion that kamaji might be reused but with some changes to its codebase as we are plugging our kubernetes distro
- I was working on POC operator based on CAPI k3s provider https://github.com/zawachte/cluster-api-k3s/, the operator would manage pod deployments instead of CAPI machines but one week is not enough to get it working
Looking for hackers with the skills:
This project is part of:
Hack Week 22
Activity
Comments
Be the first to comment!
Similar Projects
Generic Wrangler Controllers by kjoiner
[comment]: # (Please use the project descriptio...
Rancher QA Blog Space by jamcghee
[comment]: # (Please use the project descriptio...
Rancher Token Revoker by mbolot
[comment]: # (Please use the project descriptio...
image-tools: simple tool for mirror/save/load container images & KDM and chart image list generator. by StarryWang
[comment]: # (Please use the project descriptio...
Deploy Uyuni proxy using Elemental and Fleet by cbosdonnat
Project Description
Now that Uyuni proxy ...
Humidity sensors with dashboard by joachimwerner
Build a network of ("edge") humidity sensors...
Containerfile / Dockerfile generator library by amanzini
[comment]: # (Please use the project descriptio...
Samba in Kubernetes (for openSUSE) by dmulder
[comment]: # (Please use the project descriptio...
Generic Wrangler Controllers by kjoiner
[comment]: # (Please use the project descriptio...
Run sandboxed Firefox with image and sound inside a container by nguyens
[comment]: # (Please use the project descriptio...
Rancher Manager of Managers with KCP by rcase
[comment]: # (Please use the project descriptio...
Vai: a Kubernetes API accelerator/cache by moio
![Kubernetes API caching layer according to Sta...
Real-time container runtime support by a_faerber
[comment]: # (Please use the project descriptio...
Learn about kubernetes by creating a k3s HA setup by rsimai
This is mostly a learning activity for myself, ...
Samba in Kubernetes (for openSUSE) by dmulder
[comment]: # (Please use the project descriptio...
Building a CNF solution for Edge environment by lizhang
Project Description
Network managemen...
Humidity sensors with dashboard by joachimwerner
Build a network of ("edge") humidity sensors...
Automated Lifecycle Management at the Edge by bkampen
Project Description
We have a lot of solu...
Learn about kubernetes by creating a k3s HA setup by rsimai
This is mostly a learning activity for myself, ...
Hack on project MONAI (Medical Open Network for Artificial Intelligence) by jordimassaguerpla
Project Description
MONAI is a set of o...
Humidity sensors with dashboard by joachimwerner
Build a network of ("edge") humidity sensors...
Real-time container runtime support by a_faerber
[comment]: # (Please use the project descriptio...
Vai: a Kubernetes API accelerator/cache by moio
![Kubernetes API caching layer according to Sta...
Real-time container runtime support by a_faerber
[comment]: # (Please use the project descriptio...
A CLI for Harvester by mohamed.belgaied
[comment]: # Harvester does not officially come...
Rancher Token Revoker by mbolot
[comment]: # (Please use the project descriptio...