KubeBrain adapts to dgraph-io/badger to implement a stand-alone version for testing.
make badger
./bin/kube-brain --key-prefix "/"
KubeBrain adapts to TiKV to implement kubernetes meta-information storage based on distributed key-value database.
For TiKV cluster deployment, please refer to TiUP. For the local test environment, you can use tiup playground.
tiup playground --mode tikv-slim --kv 1 --pd 1
make tikv
./bin/kube-brain --key-prefix "/" --pd-addr=127.0.0.1:2379 --port=3379 --peer-port=3380 --compatible-with-etcd=true
When multiple KubeBrain share a tikv cluster
key-prefix
is consistent with the etcd-prefixparameter of the apiserver corresponding to the apiserver.compatible-with-etcd
should set true to make all nodes provide all etcd APIs used in apiserver
The community version of the APIServer storage only supports the API of etcd3, and KubeBrain is compatible with the API of etcd3 used in the community version of APIServer, but this method does not take full advantage of KubeBrain.
./kube-apiserver /
# ...
--storage-backend=etcd3 \
--etcd-servers=http://127.0.0.1:3379 \
# ...
The customized APIServer accesses the storage system by extending the storage interface of APIServer, and integrating functions such as cluster state checking, read-write separation of load, etc. in the SDK. The custom api-server will be released soon.