KubeOne is a CLI tool for installing, managing, and upgrading Kubernetes High-Available (HA) clusters. It can be used on any cloud provider, on-prem or bare-metal cluster.
The recommended way to obtain KubeOne is to grab the
binary from the GitHub Releases page. On the
releases page, find the binary for your operating system
and architecture and download it or grab the URL and use
curl to download the binary.
Version: version of KubeOne
darwin for macOS
curl -LO https://github.com/kubermatic/kubeone/releases/download/v<version>/kubeone_<version>_<operating_system>_amd64.zip
Extract the binary to the KubeOne directory. On Linux and macOS, you can use
unzip kubeone_<version>_<operating_system>_amd64.zip -d kubeone_<version>_<operating_system>_amd64
kubeone binary to your path, so you can easily
invoke it from your terminal.
sudo mv kubeone_<version>_<operating_system>_amd64/kubeone /usr/local/bin
The alternative way to install KubeOne is using
To get latest stable release:
GO111MODULE=on go get github.com/kubermatic/kubeone
To get latest beta release (for example v0.11.0-beta.0 tag):
GO111MODULE=on go get firstname.lastname@example.org
While running of the master branch is a great way to peak at and test the new features before they are released, note that master branch can break at any time or may contain bugs. Official releases are considered stable and recommended for the production usage.
If you already have KubeOne repository cloned, you can use
to install it.
Support for packages managers is still work in progress and expected to be finished for one of the upcoming release. For details about the progress follow the issue #471
We have a package in the AUR.
Use your favorite method to build it on your system, for example by using
aur sync kubeone && pacman -S kubeone
KubeOne comes with commands for generating scripts for the shell completion and for the documentation in format of man pages and more.
To activate completions for
zsh), run or put this command
. <(kubeone completion bash)
To put changes in the effect, source your
To generate documentation (man pages for example, more available), run:
kubeone document man -o /tmp/man
Each KubeOne version is supposed to support and work with a set of Kubernetes minor versions. We’re targeting to support at least 3 minor Kubernetes versions, however for early KubeOne releases we’re supporting only one or two minor versions.
New KubeOne release will be done for each minor Kubernetes version. Usually, a new release is targeted 2-3 weeks after Kubernetes release, depending on number of changes needed to support a new version.
Since some Terraform releases introduces incompatibilities to previuos versions, only a specific version range is supported with each KubeOne release.
In the following table you can find what are supported Kubernetes and Terraform versions for each KubeOne version. KubeOne versions that are crossed out are not supported. It’s highly recommended to use the latest version whenever possible.
|KubeOne version||1.18||1.17||1.16||1.15||1.14||Terraform||Supported providers|
|v0.11.0+||+||+||+||+||-||v0.12+||AWS, DigitalOcean, GCE, Hetzner, Packet, OpenStack, vSphere, Azure|
|v0.10.0+||-||-||+||+||+||v0.12+||AWS, DigitalOcean, GCE, Hetzner, Packet, OpenStack, vSphere, Azure|
We have a getting started tutorial for each cloud provider we support in our documentation. For example, the following document shows how to get started with KubeOne on AWS.
A cluster is created using the
kubeone install command. It takes a KubeOne configuration file and optionally Terraform state used to source information about the infrastructure. You may also use our Ansible roles to create the configuration file.
kubeone install -m config.yaml --tfjson tf.json
To learn more about KubeOne configuration, please run
kubeone config print --full.
We very appreciate contributions! If you want to contribute or have an idea for a new feature or improvement, please check out our contributing guide.
If you want to get in touch with us and discuss about improvements and new features, please create a new issue on GitHub or connect with us over the mailing list or Slack:
kubeonecommand (if applicable),
If you’re reporting a security vulnerability, please follow the process for reporting security issues.
See the list of releases to find out about feature changes.