bootkube

module
v0.10.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 19, 2018 License: Apache-2.0

README

Bootkube

Build Status GoDoc Go Report Card

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

When launched, bootkube will deploy 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.

Details of self-hosting

Guides

Usage

Bootkube has two main commands: render and start.

There is a third, experimental command recover which can help reboot a downed cluster (see below).

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
Recover a downed cluster

In the case of a partial or total control plane outage (i.e. due to lost master nodes) an experimental recover command can extract and write manifests from a backup location. These manifests can then be used by the start command to reboot the cluster. Currently recovery from a running apiserver, an external running etcd cluster, or an etcd backup taken from the self hosted etcd cluster are the methods.

For more details and examples see disaster recovery documentation.

Development

See Documentation/development.md for more information.

Getting Involved

Want to contribute to bootkube? Have Questions? We are looking for active participation from the community

You can find us at the bootkube channel on Kubernetes slack

License

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

Directories

Path Synopsis
cmd
e2e
internal/e2eutil/chaos
Package chaos has functions to create chaos like entire cluster reboot, etc.
Package chaos has functions to create chaos like entire cluster reboot, etc.
internal/e2eutil/log-collector
Package collector allows collecting logs from a k8s cluster brought up with bootkube semantics.
Package collector allows collecting logs from a k8s cluster brought up with bootkube semantics.
pkg
asset/internal
Package internal holds asset templates used by bootkube.
Package internal holds asset templates used by bootkube.
checkpoint
Package checkpoint provides libraries that are used by the pod-checkpointer utility to checkpoint pods on a node.
Package checkpoint provides libraries that are used by the pod-checkpointer utility to checkpoint pods on a node.
recovery
Package recovery provides tooling to help with control plane disaster recovery.
Package recovery provides tooling to help with control plane disaster recovery.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL