Matthias Sohn Adel Zaalouk SAP From Containers to Kubernetes From - - PowerPoint PPT Presentation

matthias sohn adel zaalouk sap from containers to
SMART_READER_LITE
LIVE PREVIEW

Matthias Sohn Adel Zaalouk SAP From Containers to Kubernetes From - - PowerPoint PPT Presentation

Matthias Sohn Adel Zaalouk SAP From Containers to Kubernetes From Containers to Kubernetes Container Container Runtime Host OS VM From Containers to Kubernetes Container Container Runtime Host OS VM From Containers to Kubernetes


slide-1
SLIDE 1

Matthias Sohn Adel Zaalouk SAP

slide-2
SLIDE 2

From Containers to Kubernetes

slide-3
SLIDE 3

From Containers to Kubernetes

VM Host OS Container Runtime

Container

slide-4
SLIDE 4

From Containers to Kubernetes

VM Host OS Container Runtime

Container

slide-5
SLIDE 5

From Containers to Kubernetes

VM Host OS Container Runtime

Benefits

Isolation Immutable infrastructure Portability Faster deployments Versioning Ease of sharing

Container

slide-6
SLIDE 6

From Containers to Kubernetes

VM Host OS Container Runtime

Benefits

Isolation Immutable infrastructure Portability Faster deployments Versioning Ease of sharing

Challenges

Networking Deployments Service Discovery Auto Scaling Persisting Data Logging, Monitoring Access Control

Container

slide-7
SLIDE 7

From Containers to Kubernetes

VM Host OS Container Runtime

Benefits

Isolation Immutable infrastructure Portability Faster deployments Versioning Ease of sharing

Challenges

Networking Deployments Service Discovery Auto Scaling Persisting Data Logging, Monitoring Access Control

Container Scheduler Container

slide-8
SLIDE 8

From Containers to Kubernetes

VM Host OS Container Runtime

Benefits

Isolation Immutable infrastructure Portability Faster deployments Versioning Ease of sharing

Challenges

Networking Deployments Service Discovery Auto Scaling Persisting Data Logging, Monitoring Access Control

Container Scheduler Container

slide-9
SLIDE 9

From Containers to Kubernetes

VM Host OS Container Runtime

Benefits

Isolation Immutable infrastructure Portability Faster deployments Versioning Ease of sharing

Challenges

Networking Deployments Service Discovery Auto Scaling Persisting Data Logging, Monitoring Access Control

Container Scheduler Container

slide-10
SLIDE 10

From Containers to Kubernetes

VM Host OS Container Runtime

Benefits

Isolation Immutable infrastructure Portability Faster deployments Versioning Ease of sharing

Challenges

Networking Deployments Service Discovery Auto Scaling Persisting Data Logging, Monitoring Access Control

Container Scheduler Container

slide-11
SLIDE 11

From Containers to Kubernetes

VM Host OS Container Runtime

Benefits

Isolation Immutable infrastructure Portability Faster deployments Versioning Ease of sharing

Challenges

Networking Deployments Service Discovery Auto Scaling Persisting Data Logging, Monitoring Access Control

Kubernetes

Orchestration of cluster of containers across multiple hosts

  • Automatic placements, networking,

deployments, scaling, roll-out/-back, A/B testing

Container Scheduler Container

slide-12
SLIDE 12

From Containers to Kubernetes

VM Host OS Container Runtime

Benefits

Isolation Immutable infrastructure Portability Faster deployments Versioning Ease of sharing

Challenges

Networking Deployments Service Discovery Auto Scaling Persisting Data Logging, Monitoring Access Control

Kubernetes

Orchestration of cluster of containers across multiple hosts

  • Automatic placements, networking,

deployments, scaling, roll-out/-back, A/B testing

Declarative – not procedural

  • Declare target state, reconcile to desired state
  • Self-healing

Container Scheduler Container

slide-13
SLIDE 13

From Containers to Kubernetes

VM Host OS Container Runtime

Benefits

Isolation Immutable infrastructure Portability Faster deployments Versioning Ease of sharing

Challenges

Networking Deployments Service Discovery Auto Scaling Persisting Data Logging, Monitoring Access Control

Kubernetes

Orchestration of cluster of containers across multiple hosts

  • Automatic placements, networking,

deployments, scaling, roll-out/-back, A/B testing

Docker

Workload Portability

  • Abstract from cloud provider specifics
  • Multiple container runtimes

Declarative – not procedural

  • Declare target state, reconcile to desired state
  • Self-healing

Container Scheduler Container

slide-14
SLIDE 14

Wh What does s Kubernetes s not cover ?

  • Install and manage many clusters
  • Across Multi-Cloud
  • Public Cloud Providers
  • Private Cloud
slide-15
SLIDE 15

Wh What does s Kubernetes s not cover ?

  • Install and manage many clusters
  • Across Multi-Cloud
  • Public Cloud Providers
  • Private Cloud
  • Zero Ops
  • Minimal TCO
  • Manage Nodes
  • Manage Control Planes
  • Day 2 Operations
slide-16
SLIDE 16

Wh What does s Kubernetes s not cover ?

  • Install and manage many clusters
  • Across Multi-Cloud
  • Public Cloud Providers
  • Private Cloud
  • Zero Ops
  • Minimal TCO
  • Manage Nodes
  • Manage Control Planes
  • Day 2 Operations

Gar Gardener

slide-17
SLIDE 17

WHAT do we want to achieve with the Gar Gardener?

slide-18
SLIDE 18

WHAT do we want to achieve with the Gar Gardener?

Provide de an and es estab ablis lish solu

  • lution

ion fo for Ku Kubernetes Clusters as a Service

slide-19
SLIDE 19

WHAT do we want to achieve with the Gar Gardener?

Provide de an and es estab ablis lish solu

  • lution

ion fo for Ku Kubernetes Clusters as a Service

Central Provisioning

slide-20
SLIDE 20

WHAT do we want to achieve with the Gar Gardener?

Provide de an and es estab ablis lish solu

  • lution

ion fo for Ku Kubernetes Clusters as a Service

Central Provisioning Engage with Open Source community, foster adoption, become CNCF project

slide-21
SLIDE 21

WHAT do we want to achieve with the Gar Gardener?

Provide de an and es estab ablis lish solu

  • lution

ion fo for Ku Kubernetes Clusters as a Service

Central Provisioning Engage with Open Source community, foster adoption, become CNCF project Large scale organisations need hundreds or thousands of clusters

slide-22
SLIDE 22

WHAT do we want to achieve with the Gar Gardener?

Homog Homogen enou

  • usly

ly on

  • n Hy

Hyper er-Sc Scale Providers s an and for the Private Cl Cloud ud

slide-23
SLIDE 23

WHAT do we want to achieve with the Gar Gardener?

Homog Homogen enou

  • usly

ly on

  • n Hy

Hyper er-Sc Scale Providers s an and for the Private Cl Cloud ud

Full Control of Kubernetes, Homogeneous Across All Installations

slide-24
SLIDE 24

WHAT do we want to achieve with the Gar Gardener?

Homog Homogen enou

  • usly

ly on

  • n Hy

Hyper er-Sc Scale Providers s an and for the Private Cl Cloud ud

Full Control of Kubernetes, Homogeneous Across All Installations AWS, Azure, GCP, Alibaba and Others

slide-25
SLIDE 25

WHAT do we want to achieve with the Gar Gardener?

Homog Homogen enou

  • usly

ly on

  • n Hy

Hyper er-Sc Scale Providers s an and for the Private Cl Cloud ud

Full Control of Kubernetes, Homogeneous Across All Installations AWS, Azure, GCP, Alibaba and Others Private DCs for Data Privacy: OpenStack and eventually Bare Metal

slide-26
SLIDE 26

WHAT do we want to achieve with the Gar Gardener?

wi with Mi Minimal TCO an and Fu Full D Day-2 O 2 Operations S Support

slide-27
SLIDE 27

WHAT do we want to achieve with the Gar Gardener?

wi with Mi Minimal TCO an and Fu Full D Day-2 O 2 Operations S Support

Full Automation, Backup & Recovery, High Resilience and Robustness, Self-Healing, Auto-Scaling, …

slide-28
SLIDE 28

WHAT do we want to achieve with the Gar Gardener?

wi with Mi Minimal TCO an and Fu Full D Day-2 O 2 Operations S Support

Full Automation, Backup & Recovery, High Resilience and Robustness, Self-Healing, Auto-Scaling, … Rollout Bug Fixes, Security Patches, Updates of Kubernetes, OS, Infrastructure, Certificate Management, …

slide-29
SLIDE 29

Gar Gardener Mi Mission

  • n

Provide de an and es estab ablis lish solu

  • lution

ion fo for Ku Kubernetes Clusters as a Service Homog Homogen enou

  • usly

ly on

  • n Hy

Hyper er-Sc Scale Providers s an and for the Private Cl Cloud ud wi with Mi Minimal TCO an and Fu Full D Day-2 O 2 Operations S Support

slide-30
SLIDE 30

Primary Gar Gardener Architecture Principle

slide-31
SLIDE 31

Primary Gar Gardener Architecture Principle

Fo Following the definition of Kubernetes…

slide-32
SLIDE 32

Primary Gar Gardener Architecture Principle

Fo Following the definition of Kubernetes…

Kubernetes is a system for automating deployment, scaling, and management

  • f containerized software
slide-33
SLIDE 33

Primary Gar Gardener Architecture Principle

Fo Following the definition of Kubernetes…

Kubernetes is a system for automating deployment, scaling, and management

  • f containerized software

…w …we d do t the f followi wing:

slide-34
SLIDE 34

Primary Gar Gardener Architecture Principle

Fo Following the definition of Kubernetes…

Kubernetes is a system for automating deployment, scaling, and management

  • f containerized software

…w …we d do t the f followi wing:

We use Kubernetes to deploy, host and operate Kubernetes Control planes are “seeded” into already existing clusters

slide-35
SLIDE 35

Common Kubernetes Cluster Setup

slide-36
SLIDE 36

Common Kubernetes Cluster Setup

Master Master Master Worker Worker Worker

HA

Worker

slide-37
SLIDE 37

Common Kubernetes Cluster Setup

Master Master Master Worker Worker Worker Worker

HA

Master Master Master Worker Worker Worker

HA

Master Master Master Worker Worker

HA

Master Master Master Worker

HA

Master Master Master Worker Worker Worker Worker

HA

Worker Worker Master Worker Worker Master Worker Worker

slide-38
SLIDE 38

Common Kubernetes Cluster Setup

Master Master Master Worker Worker Worker Worker

HA

Master Master Master Worker Worker Worker

HA

Master Master Master Worker Worker

HA

Master Master Master Worker

HA

Master Master Master Worker Worker Worker Worker

HA

Worker Worker Master Worker

The host the control plane,

  • ften in HA and on separated hardware

(usually underutilized or, worse, overutilized) green machines The host the actual workload and are managed by Kubernetes (usually pretty well utilized) blue machines

Worker Master Worker Worker

slide-39
SLIDE 39

Gar Gardener Kubernetes Cluster Setup

slide-40
SLIDE 40

Gar Gardener Kubernetes Cluster Setup

Worker Master Master Master Worker Worker

HA Gardener Cluster

slide-41
SLIDE 41

Gar Gardener Kubernetes Cluster Setup

Worker Master Master Master Worker Worker

HA Gardener Cluster

slide-42
SLIDE 42

Worker

Seed Cluster

Master Master Master Worker Worker

HA

Gar Gardener Kubernetes Cluster Setup

Worker Master Master Master Worker Worker

HA Gardener Cluster

slide-43
SLIDE 43

Worker

Seed Cluster

Master Master Master Worker Worker

HA

Gar Gardener Kubernetes Cluster Setup

Worker Master Master Master Worker Worker

HA Gardener Cluster

slide-44
SLIDE 44

Worker

Seed Cluster

Master Master Master Worker Worker

HA Shoot Clusters

Worker Worker Worker

Gar Gardener Kubernetes Cluster Setup

Worker Master Master Master Worker Worker

HA Gardener Cluster

slide-45
SLIDE 45

Worker

Seed Cluster

Master Master Master Worker Worker

HA Shoot Clusters

Worker Worker Worker Worker Worker

Gar Gardener Kubernetes Cluster Setup

Worker Master Master Master Worker Worker

HA Gardener Cluster

slide-46
SLIDE 46

Worker

Seed Cluster

Master Master Master Worker Worker

HA Shoot Clusters

Worker Worker Worker Worker Worker Worker

Gar Gardener Kubernetes Cluster Setup

Worker Master Master Master Worker Worker

HA Gardener Cluster

slide-47
SLIDE 47

Worker

Seed Cluster

Master Master Master Worker Worker

HA Shoot Clusters

Worker Worker Worker Worker Worker Worker Worker Worker Worker Worker Worker Worker Worker

Gar Gardener Kubernetes Cluster Setup

Worker Master Master Master Worker Worker

HA Gardener Cluster

slide-48
SLIDE 48

Worker

Seed Cluster

Master Master Master Worker Worker

HA Shoot Clusters

Worker Worker Worker Worker Worker Worker

Zooming into the Seed Cluster reveals…

Worker Worker Worker Worker Worker Worker Worker

Gar Gardener Kubernetes Cluster Setup

Worker Master Master Master Worker Worker

HA Gardener Cluster Inside a Seed Cluster Worker

slide-49
SLIDE 49

Worker

Seed Cluster

Master Master Master Worker Worker

HA Shoot Clusters

Worker Worker Worker Worker Worker Worker

Zooming into the Seed Cluster reveals…

Worker Worker Worker Worker Worker Worker Worker

Gar Gardener Kubernetes Cluster Setup

Multiple Shoot Cluster Control Planes

Worker Master Master Master Worker Worker

HA Gardener Cluster Inside a Seed Cluster Worker manages API Server Scheduler Controller Mgr ETCD

slide-50
SLIDE 50

Worker

Seed Cluster

Master Master Master Worker Worker

HA Shoot Clusters

Worker Worker Worker Worker Worker Worker

Zooming into the Seed Cluster reveals…

Worker Worker Worker Worker Worker Worker Worker

Gar Gardener Kubernetes Cluster Setup

Multiple Shoot Cluster Control Planes

Worker Master Master Master Worker Worker

HA Gardener Cluster Inside a Seed Cluster Worker manages API Server ETCD Scheduler Controller Mgr API Server Scheduler Controller Mgr ETCD

slide-51
SLIDE 51

Worker

Seed Cluster

Master Master Master Worker Worker

HA Shoot Clusters

Worker Worker Worker Worker Worker Worker

Zooming into the Seed Cluster reveals…

Worker Worker Worker Worker Worker Worker Worker

Gar Gardener Kubernetes Cluster Setup

Multiple Shoot Cluster Control Planes

Worker Master Master Master Worker Worker

HA Gardener Cluster Inside a Seed Cluster Worker manages API Server ETCD Scheduler Controller Mgr API Server Scheduler Controller Mgr ETCD ETCD … API Server

slide-52
SLIDE 52

Worker

Seed Cluster

Master Master Master Worker Worker

HA Shoot Clusters

Worker Worker Worker Worker Worker Worker

Zooming into the Seed Cluster reveals…

Worker Worker Worker Worker Worker Worker Worker

Gardener Machine Controller Manager Machine Provisioning Self-Healing Auto-Update Auto-Scaling

Gar Gardener Kubernetes Cluster Setup

Multiple Shoot Cluster Control Planes

Worker Master Master Master Worker Worker

HA Gardener Cluster Inside a Seed Cluster Worker manages API Server ETCD Scheduler Controller Mgr API Server Scheduler Controller Mgr ETCD ETCD … API Server

slide-53
SLIDE 53

Primary Gar Gardener Design Principle

slide-54
SLIDE 54

Primary Gar Gardener Design Principle

“Let Kubernetes drive the design

  • f the Gardener.”

Do Do not

  • t rei

einven ent the e wheel eel …

slide-55
SLIDE 55

Lingua Franca – Gar Gardener Cluster Resource

slide-56
SLIDE 56

Lingua Franca – Gar Gardener Cluster Resource

apiVersion: garden.sapcloud.io/v1 kind: Shoot metadata: name: my-cluster namespace: garden-project spec: dns: provider: aws-route53 domain: cluster.ondemand.com cloud: aws: networks: vpc: cidr: 10.250.0.0/16 workers:

  • name: cpu-worker

machineType: m4.xlarge autoScalerMin: 5 autoScalerMax: 20 kubernetes: version: 1.11.2 kubeAPIServer: featureGates: ... runtimeConfig: ... admissionPlugins: ... kubeControllerManager: featureGates: ... kubeScheduler: featureGates: ... kubelet: featureGates: ... maintenance: timeWindow: begin: 220000+0000 end: 230000+0000 autoUpdate: kubernetesVersion: true status: ...

slide-57
SLIDE 57

Lingua Franca – Gar Gardener Cluster Resource

apiVersion: garden.sapcloud.io/v1 kind: Shoot metadata: name: my-cluster namespace: garden-project spec: dns: provider: aws-route53 domain: cluster.ondemand.com cloud: aws: networks: vpc: cidr: 10.250.0.0/16 workers:

  • name: cpu-worker

machineType: m4.xlarge autoScalerMin: 5 autoScalerMax: 20 kubernetes: version: 1.11.2 kubeAPIServer: featureGates: ... runtimeConfig: ... admissionPlugins: ... kubeControllerManager: featureGates: ... kubeScheduler: featureGates: ... kubelet: featureGates: ... maintenance: timeWindow: begin: 220000+0000 end: 230000+0000 autoUpdate: kubernetesVersion: true status: ...

Native Kubernetes Resource

slide-58
SLIDE 58

Lingua Franca – Gar Gardener Cluster Resource

apiVersion: garden.sapcloud.io/v1 kind: Shoot metadata: name: my-cluster namespace: garden-project spec: dns: provider: aws-route53 domain: cluster.ondemand.com cloud: aws: networks: vpc: cidr: 10.250.0.0/16 workers:

  • name: cpu-worker

machineType: m4.xlarge autoScalerMin: 5 autoScalerMax: 20 kubernetes: version: 1.11.2 kubeAPIServer: featureGates: ... runtimeConfig: ... admissionPlugins: ... kubeControllerManager: featureGates: ... kubeScheduler: featureGates: ... kubelet: featureGates: ... maintenance: timeWindow: begin: 220000+0000 end: 230000+0000 autoUpdate: kubernetesVersion: true status: ...

Native Kubernetes Resource Gardener or Self-Managed DNS

slide-59
SLIDE 59

Lingua Franca – Gar Gardener Cluster Resource

apiVersion: garden.sapcloud.io/v1 kind: Shoot metadata: name: my-cluster namespace: garden-project spec: dns: provider: aws-route53 domain: cluster.ondemand.com cloud: aws: networks: vpc: cidr: 10.250.0.0/16 workers:

  • name: cpu-worker

machineType: m4.xlarge autoScalerMin: 5 autoScalerMax: 20 kubernetes: version: 1.11.2 kubeAPIServer: featureGates: ... runtimeConfig: ... admissionPlugins: ... kubeControllerManager: featureGates: ... kubeScheduler: featureGates: ... kubelet: featureGates: ... maintenance: timeWindow: begin: 220000+0000 end: 230000+0000 autoUpdate: kubernetesVersion: true status: ...

Native Kubernetes Resource Define Your Infrastructure Needs Gardener or Self-Managed DNS

slide-60
SLIDE 60

Lingua Franca – Gar Gardener Cluster Resource

apiVersion: garden.sapcloud.io/v1 kind: Shoot metadata: name: my-cluster namespace: garden-project spec: dns: provider: aws-route53 domain: cluster.ondemand.com cloud: aws: networks: vpc: cidr: 10.250.0.0/16 workers:

  • name: cpu-worker

machineType: m4.xlarge autoScalerMin: 5 autoScalerMax: 20 kubernetes: version: 1.11.2 kubeAPIServer: featureGates: ... runtimeConfig: ... admissionPlugins: ... kubeControllerManager: featureGates: ... kubeScheduler: featureGates: ... kubelet: featureGates: ... maintenance: timeWindow: begin: 220000+0000 end: 230000+0000 autoUpdate: kubernetesVersion: true status: ...

Native Kubernetes Resource Define Your Infrastructure Needs Specify Worker Pools Gardener or Self-Managed DNS

slide-61
SLIDE 61

Lingua Franca – Gar Gardener Cluster Resource

apiVersion: garden.sapcloud.io/v1 kind: Shoot metadata: name: my-cluster namespace: garden-project spec: dns: provider: aws-route53 domain: cluster.ondemand.com cloud: aws: networks: vpc: cidr: 10.250.0.0/16 workers:

  • name: cpu-worker

machineType: m4.xlarge autoScalerMin: 5 autoScalerMax: 20 kubernetes: version: 1.11.2 kubeAPIServer: featureGates: ... runtimeConfig: ... admissionPlugins: ... kubeControllerManager: featureGates: ... kubeScheduler: featureGates: ... kubelet: featureGates: ... maintenance: timeWindow: begin: 220000+0000 end: 230000+0000 autoUpdate: kubernetesVersion: true status: ...

Native Kubernetes Resource Define Your Infrastructure Needs Specify Worker Pools Gardener or Self-Managed DNS Set Kubernetes Version

slide-62
SLIDE 62

Lingua Franca – Gar Gardener Cluster Resource

apiVersion: garden.sapcloud.io/v1 kind: Shoot metadata: name: my-cluster namespace: garden-project spec: dns: provider: aws-route53 domain: cluster.ondemand.com cloud: aws: networks: vpc: cidr: 10.250.0.0/16 workers:

  • name: cpu-worker

machineType: m4.xlarge autoScalerMin: 5 autoScalerMax: 20 kubernetes: version: 1.11.2 kubeAPIServer: featureGates: ... runtimeConfig: ... admissionPlugins: ... kubeControllerManager: featureGates: ... kubeScheduler: featureGates: ... kubelet: featureGates: ... maintenance: timeWindow: begin: 220000+0000 end: 230000+0000 autoUpdate: kubernetesVersion: true status: ...

Native Kubernetes Resource Define Your Infrastructure Needs Specify Worker Pools Gardener or Self-Managed DNS Tweak Kubernetes Control Plane Set Kubernetes Version

slide-63
SLIDE 63

Lingua Franca – Gar Gardener Cluster Resource

apiVersion: garden.sapcloud.io/v1 kind: Shoot metadata: name: my-cluster namespace: garden-project spec: dns: provider: aws-route53 domain: cluster.ondemand.com cloud: aws: networks: vpc: cidr: 10.250.0.0/16 workers:

  • name: cpu-worker

machineType: m4.xlarge autoScalerMin: 5 autoScalerMax: 20 kubernetes: version: 1.11.2 kubeAPIServer: featureGates: ... runtimeConfig: ... admissionPlugins: ... kubeControllerManager: featureGates: ... kubeScheduler: featureGates: ... kubelet: featureGates: ... maintenance: timeWindow: begin: 220000+0000 end: 230000+0000 autoUpdate: kubernetesVersion: true status: ...

Native Kubernetes Resource Define Your Infrastructure Needs Specify Worker Pools Gardener or Self-Managed DNS Tweak Kubernetes Control Plane Set Kubernetes Version Define When and What to Update

slide-64
SLIDE 64

Lingua Franca – Gar Gardener Cluster Resource

apiVersion: garden.sapcloud.io/v1 kind: Shoot metadata: name: my-cluster namespace: garden-project spec: dns: provider: aws-route53 domain: cluster.ondemand.com cloud: aws: networks: vpc: cidr: 10.250.0.0/16 workers:

  • name: cpu-worker

machineType: m4.xlarge autoScalerMin: 5 autoScalerMax: 20 kubernetes: version: 1.11.2 kubeAPIServer: featureGates: ... runtimeConfig: ... admissionPlugins: ... kubeControllerManager: featureGates: ... kubeScheduler: featureGates: ... kubelet: featureGates: ... maintenance: timeWindow: begin: 220000+0000 end: 230000+0000 autoUpdate: kubernetesVersion: true status: ...

Native Kubernetes Resource Define Your Infrastructure Needs Specify Worker Pools Gardener or Self-Managed DNS Tweak Kubernetes Control Plane Set Kubernetes Version Define When and What to Update Gardener Reported Status

slide-65
SLIDE 65

Lingua Franca – Gar Gardener Cluster Resource

apiVersion: garden.sapcloud.io/v1 kind: Shoot metadata: name: my-cluster namespace: garden-project spec: dns: provider: aws-route53 domain: cluster.ondemand.com cloud: aws: networks: vpc: cidr: 10.250.0.0/16 workers:

  • name: cpu-worker

machineType: m4.xlarge autoScalerMin: 5 autoScalerMax: 20 kubernetes: version: 1.11.2 kubeAPIServer: featureGates: ... runtimeConfig: ... admissionPlugins: ... kubeControllerManager: featureGates: ... kubeScheduler: featureGates: ... kubelet: featureGates: ... maintenance: timeWindow: begin: 220000+0000 end: 230000+0000 autoUpdate: kubernetesVersion: true status: ...

Native Kubernetes Resource Define Your Infrastructure Needs Specify Worker Pools Gardener or Self-Managed DNS Tweak Kubernetes Control Plane Set Kubernetes Version Define When and What to Update Gardener Reported Status

slide-66
SLIDE 66

Lingua Franca – Gar Gardener Cluster Resource

apiVersion: garden.sapcloud.io/v1 kind: Shoot metadata: name: my-cluster namespace: garden-project spec: dns: provider: aws-route53 domain: cluster.ondemand.com cloud: aws: networks: vpc: cidr: 10.250.0.0/16 workers:

  • name: cpu-worker

machineType: m4.xlarge autoScalerMin: 5 autoScalerMax: 20 kubernetes: version: 1.11.2 kubeAPIServer: featureGates: ... runtimeConfig: ... admissionPlugins: ... kubeControllerManager: featureGates: ... kubeScheduler: featureGates: ... kubelet: featureGates: ... maintenance: timeWindow: begin: 220000+0000 end: 230000+0000 autoUpdate: kubernetesVersion: true status: ...

Avoid Vendor Lock-In

Native Kubernetes Resource Define Your Infrastructure Needs Specify Worker Pools Gardener or Self-Managed DNS Tweak Kubernetes Control Plane Set Kubernetes Version Define When and What to Update Gardener Reported Status

slide-67
SLIDE 67

Shoot Cluster Seed Cluster kubectl W Worker

...

Main PV

Worker

...

VPN D Kubelet + Container Runtime Calico DS Actual Workload Core DNS D

Shoot Cluster VPN LB Administrator

HTTPS

Seed Cluster API LB

Kubelet + Container Runtime

...

Garden Cluster Worker

... ...

Kubelet + Container Runtime

Ingress LB Garden Cluster API LB

Gardener API Server D Gardener Controller Manager D

Kubernetes Dashboard Gardener Dashboard End-User kubectl Kubernetes Dashboard SCP Seed Cluster Control Plane Storage

[K8s] DS, RS, SS, J, ... [CRD] Shoot, Seed, ...

Garden Cluster Control Plane Storage

[K8s] DS, RS, SS, J, ... [CRD] Machine Deployment

R R R R R R R R R R R R R R R R R R New Shoot Clusters can be created via the Gardener dashboard or by uploading a new Shoot resource to the Garden Cluster. The Gardener picks it up and starts a Terraform job to create the necessary IaaS

  • components. Then it deploys the Shoot Cluster Control

Plane into the Seed Cluster and required add-ons into the Shoot Cluster. Update or delete operations are handled by the Gardener fully automatically as well.

Kube Proxy DS Logging

Garden Cluster Shoot Cluster

gardenctl

R R

Optional Addons

R R R R

...

Shoot Cluster API LB Kubify

R

Gardener Dashboard D

R R R

Monitoring VPN

IaaS

R

Scheduler D Controller Manager D SS etcd Main Backup Events PV etcd Events SS API Server VPN D Terraformer J Machine Controller D Addon Manager D

Shoot Cluster Control Plane R

IaaS

R R

Seed Cluster

slide-68
SLIDE 68

Shoot Cluster Seed Cluster kubectl W Worker

...

Main PV

Worker

...

VPN D Kubelet + Container Runtime Calico DS Actual Workload Core DNS D

Shoot Cluster VPN LB Administrator

HTTPS

Seed Cluster API LB

Kubelet + Container Runtime

...

Garden Cluster Worker

... ...

Kubelet + Container Runtime

Ingress LB Garden Cluster API LB

Gardener API Server D Gardener Controller Manager D

Kubernetes Dashboard Gardener Dashboard End-User kubectl Kubernetes Dashboard SCP Seed Cluster Control Plane Storage

[K8s] DS, RS, SS, J, ... [CRD] Shoot, Seed, ...

Garden Cluster Control Plane Storage

[K8s] DS, RS, SS, J, ... [CRD] Machine Deployment

R R R R R R R R R R R R R R R R R R New Shoot Clusters can be created via the Gardener dashboard or by uploading a new Shoot resource to the Garden Cluster. The Gardener picks it up and starts a Terraform job to create the necessary IaaS

  • components. Then it deploys the Shoot Cluster Control

Plane into the Seed Cluster and required add-ons into the Shoot Cluster. Update or delete operations are handled by the Gardener fully automatically as well.

Kube Proxy DS Logging

Garden Cluster Shoot Cluster

gardenctl

R R

Optional Addons

R R R R

...

Shoot Cluster API LB Kubify

R

Gardener Dashboard D

R R R

Monitoring VPN

IaaS

R

Scheduler D Controller Manager D SS etcd Main Backup Events PV etcd Events SS API Server VPN D Terraformer J Machine Controller D Addon Manager D

Shoot Cluster Control Plane R

IaaS

R R

Seed Cluster

slide-69
SLIDE 69

Shoot Cluster Seed Cluster kubectl W Worker

...

Main PV

Worker

...

VPN D Kubelet + Container Runtime Calico DS Actual Workload Core DNS D

Shoot Cluster VPN LB Administrator

HTTPS

Seed Cluster API LB

Kubelet + Container Runtime

...

Garden Cluster Worker

... ...

Kubelet + Container Runtime

Ingress LB Garden Cluster API LB

Gardener API Server D Gardener Controller Manager D

Kubernetes Dashboard Gardener Dashboard End-User kubectl Kubernetes Dashboard SCP Seed Cluster Control Plane Storage

[K8s] DS, RS, SS, J, ... [CRD] Shoot, Seed, ...

Garden Cluster Control Plane Storage

[K8s] DS, RS, SS, J, ... [CRD] Machine Deployment

R R R R R R R R R R R R R R R R R R New Shoot Clusters can be created via the Gardener dashboard or by uploading a new Shoot resource to the Garden Cluster. The Gardener picks it up and starts a Terraform job to create the necessary IaaS

  • components. Then it deploys the Shoot Cluster Control

Plane into the Seed Cluster and required add-ons into the Shoot Cluster. Update or delete operations are handled by the Gardener fully automatically as well.

Kube Proxy DS Logging

Garden Cluster Shoot Cluster

gardenctl

R R

Optional Addons

R R R R

...

Shoot Cluster API LB Kubify

R

Gardener Dashboard D

R R R

Monitoring VPN

IaaS

R

Scheduler D Controller Manager D SS etcd Main Backup Events PV etcd Events SS API Server VPN D Terraformer J Machine Controller D Addon Manager D

Shoot Cluster Control Plane R

IaaS

R R

Seed Cluster

slide-70
SLIDE 70

Shoot Cluster Seed Cluster kubectl W Worker

...

Main PV

Worker

...

VPN D Kubelet + Container Runtime Calico DS Actual Workload Core DNS D

Shoot Cluster VPN LB Administrator

HTTPS

Seed Cluster API LB

Kubelet + Container Runtime

...

Garden Cluster Worker

... ...

Kubelet + Container Runtime

Ingress LB Garden Cluster API LB

Gardener API Server D Gardener Controller Manager D

Kubernetes Dashboard Gardener Dashboard End-User kubectl Kubernetes Dashboard SCP Seed Cluster Control Plane Storage

[K8s] DS, RS, SS, J, ... [CRD] Shoot, Seed, ...

Garden Cluster Control Plane Storage

[K8s] DS, RS, SS, J, ... [CRD] Machine Deployment

R R R R R R R R R R R R R R R R R R New Shoot Clusters can be created via the Gardener dashboard or by uploading a new Shoot resource to the Garden Cluster. The Gardener picks it up and starts a Terraform job to create the necessary IaaS

  • components. Then it deploys the Shoot Cluster Control

Plane into the Seed Cluster and required add-ons into the Shoot Cluster. Update or delete operations are handled by the Gardener fully automatically as well.

Kube Proxy DS Logging

Garden Cluster Shoot Cluster

gardenctl

R R

Optional Addons

R R R R

...

Shoot Cluster API LB Kubify

R

Gardener Dashboard D

R R R

Monitoring VPN

IaaS

R

Scheduler D Controller Manager D SS etcd Main Backup Events PV etcd Events SS API Server VPN D Terraformer J Machine Controller D Addon Manager D

Shoot Cluster Control Plane R

IaaS

R R

Seed Cluster

slide-71
SLIDE 71

Following the Design Principle Gar Gardener uses…

K8S building blocks Kubernetes as deployment underlay

slide-72
SLIDE 72

Following the Design Principle Gar Gardener uses…

K8S building blocks Kubernetes as deployment underlay Deployments Pods Replicasets

slide-73
SLIDE 73

Following the Design Principle Gar Gardener uses…

K8S building blocks Kubernetes as deployment underlay Deployments Pods Replicasets Load- Balancer

slide-74
SLIDE 74

Following the Design Principle Gar Gardener uses…

K8S building blocks Kubernetes as deployment underlay Deployments Pods Replicasets Load- Balancer Jobs

slide-75
SLIDE 75

Following the Design Principle Gar Gardener uses…

K8S building blocks Kubernetes as deployment underlay Deployments Pods Replicasets Load- Balancer Config Maps Jobs Secrets

slide-76
SLIDE 76

Following the Design Principle Gar Gardener uses…

K8S building blocks Kubernetes as deployment underlay Deployments Stateful Sets PVs PVCs Driver Pods Replicasets Load- Balancer Config Maps Jobs Secrets

slide-77
SLIDE 77

Following the Design Principle Gar Gardener uses…

K8S building blocks Kubernetes as deployment underlay Deployments Stateful Sets API Server Extension CRDs PVs PVCs Driver Controllers Reconciliation Pods Replicasets Load- Balancer Config Maps Jobs Secrets

slide-78
SLIDE 78

Following the Design Principle Gar Gardener uses…

K8S building blocks Kubernetes as deployment underlay Deployments Stateful Sets API Server Extension CRDs PVs PVCs Driver RBAC Admission Control Controllers Reconciliation Pods Replicasets Load- Balancer Config Maps Jobs Secrets

slide-79
SLIDE 79

Following the Design Principle Gar Gardener uses…

K8S building blocks Kubernetes as deployment underlay Deployments Stateful Sets API Server Extension CRDs PVs PVCs Driver RBAC Admission Control Controllers Reconciliation Pods Replicasets Additional Tooling Load- Balancer Config Maps Jobs Secrets

slide-80
SLIDE 80

Following the Design Principle Gar Gardener uses…

K8S building blocks Kubernetes as deployment underlay Deployments Stateful Sets API Server Extension CRDs PVs PVCs Driver RBAC Admission Control Controllers Reconciliation Pods Replicasets Additional Tooling Helm Add-On Manager Load- Balancer Config Maps Jobs Secrets

slide-81
SLIDE 81

Following the Design Principle Gar Gardener uses…

K8S building blocks Kubernetes as deployment underlay Deployments Stateful Sets API Server Extension CRDs PVs PVCs Driver RBAC Admission Control Controllers Reconciliation Pods Replicasets Additional Tooling Calico Network policies Helm Add-On Manager Load- Balancer Config Maps Jobs Secrets

slide-82
SLIDE 82

Following the Design Principle Gar Gardener uses…

K8S building blocks Kubernetes as deployment underlay Deployments Stateful Sets API Server Extension CRDs PVs PVCs Driver RBAC Admission Control Controllers Reconciliation Pods Replicasets Additional Tooling Cluster Autoscaler Calico Network policies Helm Add-On Manager Load- Balancer Config Maps Jobs Secrets Cert Broker Cert Manager

slide-83
SLIDE 83

Following the Design Principle Gar Gardener uses…

K8S building blocks Kubernetes as deployment underlay Deployments Stateful Sets API Server Extension CRDs PVs PVCs Driver RBAC Admission Control Controllers Reconciliation Pods Replicasets Additional Tooling Cluster Autoscaler Calico Network policies Helm Add-On Manager Prometheus EFK Stack Load- Balancer Config Maps Jobs Secrets Cert Broker Cert Manager

slide-84
SLIDE 84

Following the Design Principle Gar Gardener uses…

K8S building blocks Kubernetes as deployment underlay Deployments Stateful Sets API Server Extension CRDs PVs PVCs Driver RBAC Admission Control Controllers Reconciliation Pods Replicasets Additional Tooling Cluster Autoscaler Calico Network policies Helm Add-On Manager Prometheus EFK Stack Load- Balancer Config Maps Jobs Secrets Workload Cert Broker Cert Manager

slide-85
SLIDE 85

Where are all these clusters coming from?

Garden clusters are installed on a bootstrap cluster

  • in GKE, EKS, AKS
  • set up using Gardener’s Kubify
  • DR setup with the Gardener Ring (planned)

Seed clusters are created as shoot clusters by the Gardener Shoot clusters are created by their seed cluster which is managed by the Gardener

slide-86
SLIDE 86

Gardener Demo

slide-87
SLIDE 87
slide-88
SLIDE 88

Gar Gardener Commu Community Installer

Setting up a Gardener landscape is not trivial, so we have a community installer: https://github.com/gardener/landscape-setup

  • Many shortcuts to make it simple (Gardener and Seed in a single cluster)
  • Do not use productively!
  • You can use it as a starter for a productive setup
  • Different cluster and different cloud provider accounts recommended
slide-89
SLIDE 89

Gar Gardener is Open Source

slide-90
SLIDE 90

Gar Gardener is Open Source

Long-Term Goal Become CNCF Project

slide-91
SLIDE 91

Gardener Blog CNCF Presentation Kubernetes Podcast Hacker News Reddit

Gar Gardener is Open Source

Long-Term Goal Become CNCF Project

slide-92
SLIDE 92

Thank You!

GitHub https://github.com/gardener Home Page https://gardener.cloud Wiki https://github.com/gardener/documentation/wiki Mailing List https://groups.google.com/forum/?fromgroups#!forum/gardener Slack Channel https://kubernetes.slack.com/messages/gardener Community Installer https://github.com/gardener/landscape-setup

slide-93
SLIDE 93
slide-94
SLIDE 94

Evaluate the Sessions

  • 1 0 +1

Sign in and vote at eclipsecon.org

slide-95
SLIDE 95

Problem

  • Node provisioning and de-provisioning is out of scope of current Kubernetes
  • In the beginning we used terraform scripts ➦ unmanageable
  • No mechanism
  • to smoothly scale clusters
  • upgrade cluster nodes for all providers

Machine Controller Manager

  • Node custom resources to manage nodes via k8s API
  • Plugins enable support for different cloud providers
  • Enables cluster auto-scaling and upgrade of cluster nodes

Ku Kubernetes Mach

chine Controller Manager

slide-96
SLIDE 96

MCM Mod MCM Model

Model for Kubernetes deployments works great So why not use it for machines? Pod ReplicaSet Deployment Machine MachineSet MachineDeployment

slide-97
SLIDE 97

MCM Custom Resources

slide-98
SLIDE 98

MCM Custom Resources

Machine

Name: test-machine MachineClass: v1

slide-99
SLIDE 99

MCM Custom Resources

Machine

Name: test-machine MachineClass: v1

AWS-Machine-Class

(Template)

Name: v1 Machine Type: t2.large Disk Size: 50GB Secret: test-secret ……

slide-100
SLIDE 100

MCM Custom Resources

Machine

Name: test-machine MachineClass: v1

AWS-Machine-Class

(Template)

Name: v1 Machine Type: t2.large Disk Size: 50GB Secret: test-secret ……

Secret

Name: test-secret Cloudconfig: abc….xzy AccessKeyId: abc123 SecretAccessKey: xyz789

slide-101
SLIDE 101

MCM Custom Resources

Machine-Set

Name: test-ms Replicas: 3 MachineClass: v1

Machine

Name: test-machine MachineClass: v1

AWS-Machine-Class

(Template)

Name: v1 Machine Type: t2.large Disk Size: 50GB Secret: test-secret ……

Secret

Name: test-secret Cloudconfig: abc….xzy AccessKeyId: abc123 SecretAccessKey: xyz789

slide-102
SLIDE 102

MCM Custom Resources

Machine-Set

Name: test-ms Replicas: 3 MachineClass: v1

Machine

Name: test-machine MachineClass: v1

Machine-Deployment

Name: test-md Replicas: 3 UpdateStrategy: Rolling MachineClass: v1

AWS-Machine-Class

(Template)

Name: v1 Machine Type: t2.large Disk Size: 50GB Secret: test-secret ……

Secret

Name: test-secret Cloudconfig: abc….xzy AccessKeyId: abc123 SecretAccessKey: xyz789

slide-103
SLIDE 103

Working of MCM

ETCD (Key-value store) Kubernetes API Server

kubectl

slide-104
SLIDE 104

Working of MCM

ETCD (Key-value store) Kubernetes API Server

kubectl

Mac Machin ine Class ss + Secret V1 V1

slide-105
SLIDE 105

Working of MCM

ETCD (Key-value store) Kubernetes API Server

kubectl

Mac Machin ine Class ss + Secret

slide-106
SLIDE 106

Working of MCM

ETCD (Key-value store) Kubernetes API Server

kubectl

Machine Class + Secret V1

slide-107
SLIDE 107

Working of MCM

ETCD (Key-value store) Kubernetes API Server

kubectl

Machine Class + Secret V1 Machine Deployment Class: V1 Replicas: 3

slide-108
SLIDE 108

Working of MCM

ETCD (Key-value store) Kubernetes API Server

kubectl

Machine Class + Secret V1 Machine Deployment Class: V1 Replicas: 3

slide-109
SLIDE 109

Working of MCM

ETCD (Key-value store) Kubernetes API Server

Machine Deployment Controller kubectl

Machine Class + Secret V1 Machine Deployment Class: V1 Replicas: 3

slide-110
SLIDE 110

Working of MCM

ETCD (Key-value store) Kubernetes API Server

Machine Deployment Controller kubectl

Machine Class + Secret V1 Machine Deployment Class: V1 Replicas: 3

slide-111
SLIDE 111

Working of MCM

ETCD (Key-value store) Kubernetes API Server

Machine Deployment Controller kubectl

Machine Class + Secret V1 Machine Deployment Class: V1 Replicas: 3 Machine Set Replicas: 3

slide-112
SLIDE 112

Working of MCM

ETCD (Key-value store) Kubernetes API Server

Machine Deployment Controller kubectl Machine Set Controller

Machine Class + Secret V1 Machine Deployment Class: V1 Replicas: 3 Machine Set Replicas: 3

slide-113
SLIDE 113

Working of MCM

ETCD (Key-value store) Kubernetes API Server

Machine Deployment Controller kubectl Machine Set Controller

Machine Class + Secret V1 Machine Deployment Class: V1 Replicas: 3 Machine Set Replicas: 3

slide-114
SLIDE 114

Working of MCM

ETCD (Key-value store) Kubernetes API Server

Machine Deployment Controller kubectl Machine Set Controller

Machine Class + Secret V1 Machine Deployment Class: V1 Replicas: 3 Machine Set Replicas: 3 Machine Machine Machine

slide-115
SLIDE 115

Working of MCM

ETCD (Key-value store) Kubernetes API Server

Machine Deployment Controller kubectl Machine Set Controller Machine Controller

Machine Class + Secret V1 Machine Deployment Class: V1 Replicas: 3 Machine Set Replicas: 3 Machine Machine Machine

slide-116
SLIDE 116

Working of MCM

ETCD (Key-value store) Kubernetes API Server

Machine Deployment Controller kubectl Machine Set Controller Machine Controller

Machine Class + Secret V1 Machine Deployment Class: V1 Replicas: 3 Machine Set Replicas: 3 Machine Machine Machine

slide-117
SLIDE 117

Working of MCM

ETCD (Key-value store) Kubernetes API Server

Machine Deployment Controller kubectl Machine Set Controller Machine Controller

Cloud Provider API

Machine Class + Secret V1 Machine Deployment Class: V1 Replicas: 3 Machine Set Replicas: 3 Machine Machine Machine

slide-118
SLIDE 118

Working of MCM

ETCD (Key-value store) Kubernetes API Server

Machine Deployment Controller kubectl Machine Set Controller Machine Controller

Cloud Provider API

Machine Class + Secret V1 Machine Deployment Class: V1 Replicas: 3 Machine Set Replicas: 3 Machine Machine Machine

3 VMs

slide-119
SLIDE 119

Working of MCM

ETCD (Key-value store) Kubernetes API Server

Machine Deployment Controller kubectl Machine Set Controller Machine Controller

Cloud Provider API

Machine Class + Secret V1 Machine Deployment Class: V1 Replicas: 3 Machine Set Replicas: 3 Machine Machine Machine

3 VMs

slide-120
SLIDE 120

Working of MCM

ETCD (Key-value store) Kubernetes API Server

Machine Deployment Controller kubectl Machine Set Controller Machine Controller

Kubernetes Controller Manager Cloud Provider API

Machine Class + Secret V1 Machine Deployment Class: V1 Replicas: 3 Machine Set Replicas: 3 Machine Machine Machine

3 VMs

slide-121
SLIDE 121

Working of MCM

ETCD (Key-value store) Kubernetes API Server

Machine Deployment Controller kubectl Machine Set Controller Machine Controller

Kubernetes Controller Manager Cloud Provider API

Machine Class + Secret V1 Machine Deployment Class: V1 Replicas: 3 Machine Set Replicas: 3 Machine Machine Machine

3 VMs

Node Node Node

slide-122
SLIDE 122

Working of MCM

ETCD (Key-value store) Kubernetes API Server

Machine Deployment Controller kubectl Machine Set Controller Machine Controller

Kubernetes Controller Manager Cloud Provider API

Machine Class + Secret V1 Machine Deployment Class: V1 Replicas: 3 Machine Set Replicas: 3 Machine Machine Machine

3 VMs

Node Node Node Node objects help in monitoring the machine status – Health

slide-123
SLIDE 123

Working of MCM

ETCD (Key-value store) Kubernetes API Server

Machine Deployment Controller kubectl Machine Set Controller Machine Controller

Kubernetes Controller Manager Cloud Provider API

Machine Class + Secret V1 Machine Deployment Class: V1 Replicas: 3 Machine Set Replicas: 3 Machine Machine Machine

3 VMs

Node Node Node

Ma Machine Controller Ma Manager

Node objects help in monitoring the machine status – Health

slide-124
SLIDE 124

Autoscaling

ETCD (Key-value store) Kubernetes API Server

Machine Deployment Controller kubectl Machine Set Controller Machine Controller

Kubernetes Controller Manager Cloud Provider API Ma Machine Controller Ma Manager

Machine Deployment Class: V1 Replicas: 3 Machine Machine Machine Node 1 Node 2 Node 3

slide-125
SLIDE 125

Autoscaling

ETCD (Key-value store) Kubernetes API Server

Machine Deployment Controller kubectl Machine Set Controller Machine Controller

Kubernetes Controller Manager Cloud Provider API Ma Machine Controller Ma Manager

Machine Deployment Class: V1 Replicas: 3 Machine Machine Machine Node 1 Node 2 Node 3 Now assume that all the nodes resources are nearly consumed and a new pod is created

slide-126
SLIDE 126

Autoscaling

ETCD (Key-value store) Kubernetes API Server

Machine Deployment Controller kubectl Machine Set Controller Machine Controller

Kubernetes Controller Manager Cloud Provider API Ma Machine Controller Ma Manager

Machine Deployment Class: V1 Replicas: 3 Machine Machine Machine Node 1 Node 2 Node 3 Pod Image: Nginx Node: -

slide-127
SLIDE 127

Autoscaling

ETCD (Key-value store) Kubernetes API Server

Machine Deployment Controller kubectl Machine Set Controller Machine Controller

Kubernetes Controller Manager Cloud Provider API Ma Machine Controller Ma Manager

Machine Deployment Class: V1 Replicas: 3 Machine Machine Machine Node 1 Node 2 Node 3 Pod

Image: Nginx

Node: Unschedulable

slide-128
SLIDE 128

Autoscaling

ETCD (Key-value store) Kubernetes API Server

Machine Deployment Controller kubectl Machine Set Controller Machine Controller

Kubernetes Controller Manager Cloud Provider API Ma Machine Controller Ma Manager

Machine Deployment Class: V1 Replicas: 3 Machine Machine Machine Node 1 Node 2 Node 3

Forked Cluster Autoscaler

Pod

Image: Nginx

Node: Unschedulable

slide-129
SLIDE 129

Autoscaling

ETCD (Key-value store) Kubernetes API Server

Machine Deployment Controller kubectl Machine Set Controller Machine Controller

Kubernetes Controller Manager Cloud Provider API Ma Machine Controller Ma Manager

Machine Deployment Class: V1 Replicas: 3 Machine Machine Machine Node 1 Node 2 Node 3

Forked Cluster Autoscaler

Pod

Image: Nginx

Node: Unschedulable

slide-130
SLIDE 130

Autoscaling

ETCD (Key-value store) Kubernetes API Server

Machine Deployment Controller kubectl Machine Set Controller Machine Controller

Kubernetes Controller Manager Cloud Provider API Ma Machine Controller Ma Manager

Machine Deployment Class: V1 Replicas: 3 Machine Machine Machine Node 1 Node 2 Node 3

Forked Cluster Autoscaler

Pod

Image: Nginx

Node: Unschedulable

slide-131
SLIDE 131

Autoscaling

ETCD (Key-value store) Kubernetes API Server

Machine Deployment Controller kubectl Machine Set Controller Machine Controller

Kubernetes Controller Manager Cloud Provider API Ma Machine Controller Ma Manager

Machine Machine Machine Node 1 Node 2 Node 3

Forked Cluster Autoscaler

Pod

Image: Nginx

Node: Unschedulable Machine Deployment Class: V1 Replicas: 4

slide-132
SLIDE 132

Autoscaling

ETCD (Key-value store) Kubernetes API Server

Machine Deployment Controller kubectl Machine Set Controller Machine Controller

Kubernetes Controller Manager Cloud Provider API Ma Machine Controller Ma Manager

Machine Machine Machine Node 1 Node 2 Node 3

Forked Cluster Autoscaler

Pod

Image: Nginx

Node: Unschedulable Machine Deployment Class: V1 Replicas: 4 Machine

slide-133
SLIDE 133

Autoscaling

ETCD (Key-value store) Kubernetes API Server

Machine Deployment Controller kubectl Machine Set Controller Machine Controller

Kubernetes Controller Manager Cloud Provider API Ma Machine Controller Ma Manager

Machine Machine Machine Node 1 Node 2 Node 3

Forked Cluster Autoscaler

Machine Deployment Class: V1 Replicas: 4 Machine Node 4 Pod

Image: Nginx

Node: Node4

slide-134
SLIDE 134

Autoscaling

ETCD (Key-value store) Kubernetes API Server

Machine Deployment Controller kubectl Machine Set Controller Machine Controller

Kubernetes Controller Manager Cloud Provider API Ma Machine Controller Ma Manager

Machine Machine Machine Node 1 Node 2 Node 3

Forked Cluster Autoscaler

Machine Deployment Class: V1 Replicas: 4 Machine Node 4 Pod

Image: Nginx

Node: Node4

slide-135
SLIDE 135

Ma Machine Con Control

  • ller Ma

r Manager r - Comp Compon

  • nents

Machine Controller Manager

Machine Controller Machine- Set Controller Machine- Deployment Controller Cluster Auto- scaler

Responsible for Managing Machines Responsible for Maintaining set of healthy Machine replicas Responsible for Managing Machine-sets (used for updates) Scales the number of replicas based on load in the cluster Create/delete Machines to maintain required replicas Create/update Machine-sets to perform updates Update no. of replicas based on load

Controllers cooperate, rather than racing with each other ! Parent-child relationship: Adoption of orphaned children