Giter VIP home page Giter VIP logo

kubeone's Introduction

KubeOne

GoDoc Go Report Card AUR version

kubeone is a CLI tool and a Go library for installing, managing, and upgrading Kubernetes High-Available (HA) clusters. It can be used on any cloud provider, on-prem or bare-metal cluster.

Project Status

As of v0.6.0, KubeOne is in the beta phase. Check out the Backwards Compatibility Policy for more details on backwards compatibility, KubeOne versioning, and maturity of each KubeOne component.

Versions earlier than v0.6.0 are considered alpha and it's strongly advised to upgrade to the v0.6.0 or newer as soon as possible.

KubeOne in Action

KubeOne Demo asciicast

Features

  • Supports Kubernetes 1.13+ High-Available (HA) clusters
  • Uses kubeadm to provision clusters
  • Comes with a straightforward and easy to use CLI
  • Choice of Linux distributions between Ubuntu, CentOS and CoreOS
  • Integrates with Cluster-API and Kubermatic machine-controller to manage worker nodes
  • Integrates with Terraform for sourcing data about infrastructure and control plane nodes
  • Officially supports AWS, DigitalOcean, GCE, Hetzner, Packet, OpenStack, VMware vSphere and Azure

Installing KubeOne

Downloading a binary from GitHub Releases

The fastest way to get KubeOne:

curl https://raw.githubusercontent.com/kubermatic/kubeone/master/install.sh | sh

If you want to have more control over how KubeOne is installed, download the binary from the GitHub Releases page.

On the releases page, you can find the binary for your operating system and architecture

Download it or grab the URL and use wget or curl to download the binary.

Extract the binary to the KubeOne directory. On Linux and macOS, you can use unzip.

Move the kubeone binary to your path, so you can easily invoke it from your terminal.

OS=$(uname)
VERSION=$(curl -w '%{url_effective}' -I -L -s -S https://github.com/kubermatic/kubeone/releases/latest -o /dev/null | sed -e 's|.*/v||')
curl -LO "https://github.com/kubermatic/kubeone/releases/download/v${VERSION}/kubeone_${VERSION}_${OS}_amd64.zip"
unzip kubeone_${VERSION}_${OS}_amd64.zip -d kubeone_${VERSION}_${OS}_amd64
sudo mv kubeone_${VERSION}_${OS}_amd64/kubeone /usr/local/bin

Building KubeOne

The alternative way to install KubeOne is using go get.

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 github.com/kubermatic/[email protected]

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 make to install it.

make install

Using package managers

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

Arch Linux

We have a package in the AUR here. Use your favorite method to build it on your system, for example by using aurutils:

aur sync kubeone && pacman -S kubeone

Shell completion and generating documentation

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 bash (or zsh), run or put this command into your .bashrc file:

. <(kubeone completion bash)

To put changes in the effect, source your .bashrc file.

source ~/.bashrc

To generate documentation (man pages for example, more available), run:

kubeone document man -o /tmp/man

Kubernetes Versions Compatibility

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.17 1.16 1.15 1.14 1.13 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

Getting Started

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 config.yaml --tfjson tf.json

To learn more about KubeOne configuration, please run kubeone config print --full.

For advanced use cases and other features, check the KubeOne features document.

Getting Involved

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:

Reporting Bugs

If you encounter issues, please create a new issue on GitHub or talk to us on the #kubeone Slack channel. When reporting a bug please include the following information:

  • KubeOne version or Git commit that you're running (kubeone version),
  • description of the bug and logs from the relevant kubeone command (if applicable),
  • steps to reproduce the issue,
  • expected behavior

If you're reporting a security vulnerability, please follow the process for reporting security issues.

Changelog

See the list of releases to find out about feature changes.

kubeone's People

Contributors

ainmosni avatar akhfa avatar alvaroaleman avatar boraoren avatar eqrx avatar erdii avatar gjk0090 avatar guusvw avatar indradhanush avatar infinitydon avatar kdomanski avatar kron4eg avatar kubermatic-bot avatar moelsayed avatar mrincompetent avatar nikhita avatar p0lyn0mial avatar scheeles avatar stroebitzer avatar thetechnick avatar thz avatar toschneck avatar xmudrii avatar xrstf avatar zreigz avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.