2. Who are we?
Artiom Diomin
Software Developer @ Loodse
Marko Mudriniฤ
Software Developer @ Loodse
@xmudrii @kron4eg
3. Agenda
โฃ Introduction to KubeOne
โฃ Core concepts and architecture
โฃ Demo: Manage Kubernetes HA cluster on AWS
โฃ Demo: Configure the cluster and explore KubeOne features
5. โฃ A tool for managing Kubernetes cluster lifecycle
โฃ Installs and provisions Kubernetes, upgrades, un-provisions the cluster
โฃ Open source and vendor neutral
โฃ Works on the most popular cloud providers, on on-prem and on bare metal
โฃ Supports 1.13+ Highly-Available clusters
What is KubeOne?
6. โฃ Kubernetes brought us a new way for managing our workload...
โฃ but managing Kubernetes clusters is still a hard task.
โฃ We want to apply lessons learned managing workload to clusters.
In a search for a feature-complete solution, we decided to build KubeOne
Why we built KubeOne?
7. โฃ Uses the latest technologies to bring many features in an easy to consume
manner
โฃ Brings declarative cluster representation
โฃ Provides ready to use cluster
โฃ Optionally configures various features on the provisioning time:
โฃ PodSecurityPolicy, DynamicAuditLog, metrics-server and more
โฃ Ability to integrate KubeOne with infrastructure provisioning tools
Why KubeOne?
8. Supported providers
โฃ KubeOne is supposed to work on any provider, including on-prem and bare
metal
โฃ Officially supported providers enjoy additional features such as:
โฃ Support for managing worker nodes using Kubermatic machine-controller
โฃ Automatically deploy cloud provider specific features like external CCM
โฃ Use Terraform integration to pick up information about infrastructure from the Terraform
state
โฃ Officially supported providers include AWS, GCE, DigitalOcean, Hetzner,
Packet, OpenStack and VMware vSphere
โฃ Support for Microsoft Azure is coming up soon
10. Architecture
โฃ KubeOne uses many tools/solutions as building blocks
โฃ kubeadm is used to provision and join control plane nodes and handle cluster upgrades
โฃ Kubermatic machine-controller based on Cluster-API is used to manage worker nodes
โฃ The environment is prepared over SSH
โฃ Including installing and upgrading binaries, configuring components and running kubeadm
โฃ client-go is used for deploying various cluster features such as CNI
23. Create cluster on AWS
โฃ Step 1: Create instances and infrastructure to be used by Kubernetes
โฃ KubeOne comes with example Terraform scripts that can be used to get started
โฃ Step 2: Build KubeOne configuration manifest
โฃ Defines what Kubernetes version will be installed, what machines will be used, how the cluster
will be provisionedโฆ
โฃ Step 3: Run `kubeone install` command
โฃ Step 4: Enjoy!
29. Upgrade process
โฃ The control plane nodes are upgraded in-place
โฃ Upgrading control plane nodes include upgrading:
โฃ Kubernetes binaries
โฃ core Kubernetes components
โฃ all components deployed by KubeOne
โฃ Worker nodes are upgraded by rolling out MachineDeployment
31. Conclusion
โฃ Find KubeOne on GitHub: https://github.com/kubermatic/kubeone
โฃ Follow us on Twitter: @Loodse, @xmudrii, @kron4eg
โฃ Check out Loodse blog: https://loodse.com/blog
โฃ Join `#kubeone` on Kubermatic Slack: http://slack.kubermatic.io
KubeOne is a tool for managing Kubernetes cluster lifecycle