kubeone - tng technology consulting · founded in 2016, our headquarters are located in hamburg,...

47
Kubernetes Cluster Lifecycle Management Tool KubeOne

Upload: others

Post on 28-May-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Kubernetes Cluster Lifecycle Management Tool

KubeOne

Page 2: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Who am I?

Tobias SchneckSoftware Engineer @ Loodse

@toschneck

Page 3: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Who are the Developer?

Artiom DiominSoftware Developer @ Loodse

Marko MudrinićSoftware Developer @ Loodse

@xmudrii @kron4eg

Page 4: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Operational Excellence for Your Cloud Native Applications

Our Expertise

Loodse is a leading expert for container

and cloud native technologies.

Our Team

We are a team of 40+ employees

across Europe and the US.

Locations

Founded in 2016, our headquarters

are located in Hamburg, Germany.

Page 5: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Agenda

‣ Introduction to KubeOne

‣ Core concepts and architecture

‣ Demo: Manage Kubernetes HA cluster on AWS

‣ Demo: Configure the cluster and explore KubeOne features

Page 6: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Introduction

Page 7: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

‣ 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?

Page 8: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

‣ 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?

Page 9: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

‣ 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?

Page 10: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

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

‣ Microsoft Azure will be supported as of the upcoming v0.9 release

Page 11: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Create cluster on AWS

Page 12: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

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!

Page 13: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Building KubeOne Cluster manifest

apiVersion: kubeone.io/v1alpha1

kind: KubeOneCluster

versions:

kubernetes: 1.14.2

cloudProvider:

name: aws

Page 14: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Building KubeOne Cluster manifest

apiVersion: kubeone.io/v1alpha1

kind: KubeOneCluster

versions:

kubernetes: 1.14.2

cloudProvider:

name: aws

Page 15: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Building KubeOne Cluster manifest

apiVersion: kubeone.io/v1alpha1

kind: KubeOneCluster

versions:

kubernetes: 1.14.2

cloudProvider:

name: aws

Page 16: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Building KubeOne Cluster manifest

apiVersion: kubeone.io/v1alpha1

kind: KubeOneCluster

versions:

kubernetes: 1.14.2

cloudProvider:

name: aws

Page 17: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Demo time!

Page 18: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Architecture

Page 19: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

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

Page 20: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Installation process

Page 21: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Installation process

Page 22: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Installation process

Page 23: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Installation process

Page 24: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Installation process

Page 25: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Installation process

Page 26: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Installation process

Page 27: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Installation process

Page 28: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Installation process

Page 29: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Installation process

Page 30: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Managing worker nodes

Page 31: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Managing worker nodes

‣ Worker nodes are managed using Kubermatic machine-controller

‣ machine-controller is an open source Cluster-API implementation

‣ Cluster-API is a declarative, Kubernetes-style API for cluster and machine creation, configuration and management

‣ You define what you want, controller creates it for you

‣ In KubeOne case, machine-controller provisions and configures machines

Page 32: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

What is Cluster API?

Declarative Config

Page 33: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Managing worker nodes

‣ In KubeOne config manifest, user provides number of replicas and cloud provider specification

‣ Based on provided information, KubeOne creates MachineDeployment object

‣ machine-controller creates MachineSet and Machine objects, which trigger creation and provisioning of cloud instances

‣ machine-controller watchs machines all the time

‣ If machine/node becomes unavailable/unhealthy machine will be recreated

‣ If machine is changed (e.g. upgraded), all machines in the MachineDeployment will be rolled-out

Page 34: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Managing worker nodes

Deployment ReplicaSet Pod

MachineDeployment MachineSet Machine

Page 35: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Upgrade process

Page 36: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Demo time!

Page 37: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

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

Page 38: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Upgrade process

Page 39: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Upgrade process

Page 40: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Upgrade process

Page 41: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Upgrade process

Page 42: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Upgrade process

Page 43: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Upgrade process

Page 44: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Upgrade process

Page 45: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Upgrade process

Page 46: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Questions? Remarks?

Page 47: KubeOne - TNG Technology Consulting · Founded in 2016, our headquarters are located in Hamburg, Germany. Agenda ‣ Introduction to KubeOne ‣ Core concepts and architecture

Thank you for your time!

‣ Find KubeOne on GitHub: https://github.com/kubermatic/kubeone

‣ Follow us on Twitter: @Loodse, @xmudrii, @kron4eg, @toschneck

‣ Check out Loodse blog: https://loodse.com/blog

‣ Join `#kubeone` on Kubermatic Slack: http://slack.kubermatic.io