Skip to content

brancz/bootkube

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bootkube

Bootkube is a helper tool for launching self-hosted Kubernetes clusters.

When launched, bootkube will act as a temporary Kubernetes control-plane (api-server, scheduler, controller-manager), which operates long enough to bootstrap a replacement self-hosted control-plane.

Additionally, bootkube can be used to generate all of the necessary assets for use in bootstrapping a new cluster. These assets can then be modified to support any additional configuration options.

If you are interested in the design and details see the bootkube design document.

Guides

Usage

Bootkube has two main commands: render and start

Render assets

Bootkube can be used to render all of the assets necessary for bootstrapping a self-hosted Kubernetes cluster. This includes generation of TLS assets, Kubernetes object manifests, and a kubeconfig to connect to the bootstrapped cluster.

To see available options, run:

bootkube render --help

Example:

bootkube render --asset-dir=my-cluster

The resulting assets can be inspected / modified in the generated asset-dir.

Start bootkube

To start bootkube use the start subcommand.

To see available options, run:

bootkube start --help

Example:

bootkube start --asset-dir=my-cluster

Building

First, clone the repo into the proper location in your $GOPATH:

go get -u github.com/kubernetes-incubator/bootkube
cd $GOPATH/src/github.com/kubernetes-incubator/bootkube

Then, to build:

make

And optionally, to install into $GOPATH/bin:

make install

Conformance Tests

This repository includes scripts for running the Kubernetes conformance tests agains the hack/single-node and hack/multi-node launched clusters.

To run the conformance tests:

make conformance-single

or

make conformance-multi

Roadmap

  • Document, test, and create best practice around disaster recovery
  • Work upstream to resolve the long-term self-hosted bootstrapping
  • Self-host other components like etcd and networking to prove the model
  • Get the concept of kubelet checkpointing upstreamed
  • Prove out the self-hosted model on all new releases of k8s and different platforms
  • Document best-practices for upgrades and upstream the idea of a upgradable daemonset

License

bootkube is under the Apache 2.0 license. See the LICENSE file for details.

About

bootkube - Launch a self-hosted Kubernetes cluster

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 62.8%
  • Shell 26.5%
  • Ruby 7.7%
  • Makefile 3.0%