KubeFlex
A flexible and scalable solution for running Kubernetes control plane APIs.
Goals
- Provide lightweight Kube API Server instances and selected controllers as a service.
- Provide a flexible architecture for the storage backend, e.g.:
- shared DB for API servers,
- dedicated DB for each API server,
- etcd DB or Kine + Postgres DB
- Flexibility in choice of API Server build:
- Single binary CLI for improved user experience:
- initialize, install operator, manage lifecycle of control planes and contexts.
Installation
You need kind installed. Note that a hosting kind cluster
is created automatically by the kubeflex CLI.
Download the latest kubeflex CLI binary release for your OS/Architecture from the
release page and copy it
to /usr/local/bin
or another location in your $PATH
.
If you have Homebrew, use the following commands to install kubeflex:
brew tap kubestellar/kubeflex https://github.com/kubestellar/kubeflex
brew install kubeflex
Quickstart
Create the hosting kind cluster with ingress controller and install
the kubeflex operator:
kflex init --create-kind
Create a control plane:
kflex create cp1
Interact with the new control plane, for example get namespaces and create a new one:
kubectl get ns
kubectl create ns myns
Create a second control plane and check that the namespace created in the
first control plane is not present:
kflex create cp2
kubectl get ns
To go back to the hosting cluster context, use the ctx
command:
kflex ctx
To switch back to a control plane context, use the
create <control plane name>
command, e.g:
kflex ctx cp1
To delete a control plane, use the delete <control plane name>
command, e.g:
kflex delete cp1
Architecture