matthias sohn adel zaalouk sap from containers to
play

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


  1. Common Kubernetes Cluster Setup Master Master Master Worker Worker Worker Master Master Master Worker Worker Worker Master Worker Master Worker Master HA HA HA Worker Master Worker Master Worker Master Worker Worker Worker Master Master Worker Master Worker HA Worker Worker Master HA Master Worker Worker green machines The host the control plane, often in HA and on separated hardware The host the actual workload and blue machines (usually underutilized or, worse, overutilized) are managed by Kubernetes (usually pretty well utilized)

  2. Gardener Kubernetes Cluster Setup Gar

  3. Gardener Kubernetes Cluster Setup Gar Gardener Cluster Master Worker Master Worker Master Worker HA

  4. Gardener Kubernetes Cluster Setup Gar Gardener Cluster Master Worker Master Worker Master Worker HA

  5. Gardener Kubernetes Cluster Setup Gar Gardener Cluster Seed Cluster Master Master Worker Worker Master Master Worker Worker Master Worker Master Worker HA HA

  6. Gardener Kubernetes Cluster Setup Gar Gardener Cluster Seed Cluster Master Master Worker Worker Master Master Worker Worker Master Worker Master Worker HA HA

  7. Gardener Kubernetes Cluster Setup Gar Gardener Cluster Shoot Clusters Seed Cluster Master Master Worker Worker Worker Master Worker Master Worker Worker Master Worker Master Worker Worker HA HA

  8. Gardener Kubernetes Cluster Setup Gar Gardener Cluster Shoot Clusters Seed Cluster Master Master Worker Worker Worker Worker Master Worker Worker Master Worker Worker Master Worker Master Worker Worker HA HA

  9. Gardener Kubernetes Cluster Setup Gar Gardener Cluster Shoot Clusters Seed Cluster Master Master Worker Worker Worker Worker Master Worker Worker Master Worker Worker Master Worker Master Worker Worker HA HA Worker

  10. Gardener Kubernetes Cluster Setup Gar Gardener Cluster Shoot Clusters Seed Cluster Master Master Worker Worker Worker Worker Master Worker Worker Master Worker Worker Master Worker Master Worker Worker HA HA Worker Worker Worker Worker Worker Worker Worker Worker

  11. Gardener Kubernetes Cluster Setup Gar Gardener Cluster Shoot Clusters Seed Cluster Master Master Worker Worker Worker Worker Master Worker Worker Master Worker Worker Master Worker Master Worker Worker HA HA Worker Worker Worker Worker Zooming into the Worker Seed Cluster reveals… Worker Worker Worker Inside a Seed Cluster Worker

  12. Gardener Kubernetes Cluster Setup Gar Gardener Cluster Shoot Clusters Seed Cluster Master Master Worker Worker Worker Worker Master Worker Worker Master Worker Worker Master Worker Master Worker Worker HA HA Worker manages Worker Worker Worker Zooming into the API Server ETCD Worker Seed Cluster reveals… Controller Mgr Scheduler Worker Worker Multiple Shoot Cluster Control Planes Worker Inside a Seed Cluster Worker

  13. Gardener Kubernetes Cluster Setup Gar Gardener Cluster Shoot Clusters Seed Cluster Master Master Worker Worker Worker Worker Master Worker Worker Master Worker Worker Master Worker Master Worker Worker HA HA Worker manages Worker Worker Worker Zooming into the API Server ETCD Worker Seed Cluster reveals… Controller Mgr Scheduler Worker Worker Multiple Shoot Cluster ETCD API Server Control Planes Worker Controller Mgr Scheduler Inside a Seed Cluster Worker

  14. Gardener Kubernetes Cluster Setup Gar Gardener Cluster Shoot Clusters Seed Cluster Master Master Worker Worker Worker Worker Master Worker Worker Master Worker Worker Master Worker Master Worker Worker HA HA Worker manages Worker Worker Worker Zooming into the API Server ETCD Worker Seed Cluster reveals… Controller Mgr Scheduler Worker Worker Multiple Shoot Cluster ETCD API Server Control Planes Worker Controller Mgr Scheduler ETCD API Server … Inside a Seed Cluster Worker

  15. Gardener Kubernetes Cluster Setup Gar Gardener Cluster Shoot Clusters Seed Cluster Master Master Worker Worker Worker Worker Master Worker Worker Master Worker Worker Master Worker Master Worker Worker HA HA Worker manages Worker Worker Worker Zooming into the API Server ETCD Worker Seed Cluster reveals… Controller Mgr Scheduler Worker Worker Multiple Shoot Cluster ETCD API Server Control Planes Worker Controller Mgr Scheduler Gardener Machine Controller Manager ETCD API Server … Machine Provisioning Inside a Seed Self-Healing Cluster Worker Auto-Update Auto-Scaling

  16. Gardener Design Principle Primary Gar

  17. Gardener Design Principle Primary Gar Do Do not ot rei einven ent the e wheel eel … “Let Kubernetes drive the design of the Gardener .”

  18. Lingua Franca – Gar Gardener Cluster Resource

  19. 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: ...

  20. Lingua Franca – Gar Gardener Cluster Resource apiVersion: garden.sapcloud.io/v1 Native Kubernetes Resource 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: ...

  21. Lingua Franca – Gar Gardener Cluster Resource apiVersion: garden.sapcloud.io/v1 Native Kubernetes Resource kind: Shoot metadata: name: my-cluster namespace: garden-project spec: dns: Gardener or Self-Managed 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: ...

  22. Lingua Franca – Gar Gardener Cluster Resource apiVersion: garden.sapcloud.io/v1 Native Kubernetes Resource kind: Shoot metadata: name: my-cluster namespace: garden-project spec: dns: Gardener or Self-Managed DNS provider: aws-route53 domain: cluster.ondemand.com cloud: aws: networks: Define Your Infrastructure Needs 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: ...

  23. Lingua Franca – Gar Gardener Cluster Resource apiVersion: garden.sapcloud.io/v1 Native Kubernetes Resource kind: Shoot metadata: name: my-cluster namespace: garden-project spec: dns: Gardener or Self-Managed DNS provider: aws-route53 domain: cluster.ondemand.com cloud: aws: networks: Define Your Infrastructure Needs vpc: cidr: 10.250.0.0/16 workers: - name: cpu-worker Specify Worker Pools 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: ...

  24. Lingua Franca – Gar Gardener Cluster Resource apiVersion: garden.sapcloud.io/v1 Native Kubernetes Resource kind: Shoot metadata: name: my-cluster namespace: garden-project spec: dns: Gardener or Self-Managed DNS provider: aws-route53 domain: cluster.ondemand.com cloud: aws: networks: Define Your Infrastructure Needs vpc: cidr: 10.250.0.0/16 workers: - name: cpu-worker Specify Worker Pools machineType: m4.xlarge autoScalerMin: 5 autoScalerMax: 20 kubernetes: Set Kubernetes Version 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: ...

  25. Lingua Franca – Gar Gardener Cluster Resource apiVersion: garden.sapcloud.io/v1 Native Kubernetes Resource kind: Shoot metadata: name: my-cluster namespace: garden-project spec: dns: Gardener or Self-Managed DNS provider: aws-route53 domain: cluster.ondemand.com cloud: aws: networks: Define Your Infrastructure Needs vpc: cidr: 10.250.0.0/16 workers: - name: cpu-worker Specify Worker Pools machineType: m4.xlarge autoScalerMin: 5 autoScalerMax: 20 kubernetes: Set Kubernetes Version version: 1.11.2 kubeAPIServer: featureGates: ... Tweak Kubernetes Control Plane runtimeConfig: ... admissionPlugins: ... kubeControllerManager: featureGates: ... kubeScheduler: featureGates: ... kubelet: featureGates: ... maintenance: timeWindow: begin: 220000+0000 end: 230000+0000 autoUpdate: kubernetesVersion: true status: ...

  26. Lingua Franca – Gar Gardener Cluster Resource apiVersion: garden.sapcloud.io/v1 Native Kubernetes Resource kind: Shoot metadata: name: my-cluster namespace: garden-project spec: dns: Gardener or Self-Managed DNS provider: aws-route53 domain: cluster.ondemand.com cloud: aws: networks: Define Your Infrastructure Needs vpc: cidr: 10.250.0.0/16 workers: - name: cpu-worker Specify Worker Pools machineType: m4.xlarge autoScalerMin: 5 autoScalerMax: 20 kubernetes: Set Kubernetes Version version: 1.11.2 kubeAPIServer: featureGates: ... Tweak Kubernetes Control Plane runtimeConfig: ... admissionPlugins: ... kubeControllerManager: featureGates: ... kubeScheduler: featureGates: ... kubelet: featureGates: ... maintenance: timeWindow: Define When and What to Update begin: 220000+0000 end: 230000+0000 autoUpdate: kubernetesVersion: true status: ...

  27. Lingua Franca – Gar Gardener Cluster Resource apiVersion: garden.sapcloud.io/v1 Native Kubernetes Resource kind: Shoot metadata: name: my-cluster namespace: garden-project spec: dns: Gardener or Self-Managed DNS provider: aws-route53 domain: cluster.ondemand.com cloud: aws: networks: Define Your Infrastructure Needs vpc: cidr: 10.250.0.0/16 workers: - name: cpu-worker Specify Worker Pools machineType: m4.xlarge autoScalerMin: 5 autoScalerMax: 20 kubernetes: Set Kubernetes Version version: 1.11.2 kubeAPIServer: featureGates: ... Tweak Kubernetes Control Plane runtimeConfig: ... admissionPlugins: ... kubeControllerManager: featureGates: ... kubeScheduler: featureGates: ... kubelet: featureGates: ... maintenance: timeWindow: Define When and What to Update begin: 220000+0000 end: 230000+0000 autoUpdate: kubernetesVersion: true Gardener Reported Status status: ...

  28. Lingua Franca – Gar Gardener Cluster Resource apiVersion: garden.sapcloud.io/v1 Native Kubernetes Resource kind: Shoot metadata: name: my-cluster namespace: garden-project spec: dns: Gardener or Self-Managed DNS provider: aws-route53 domain: cluster.ondemand.com cloud: aws: networks: Define Your Infrastructure Needs vpc: cidr: 10.250.0.0/16 workers: - name: cpu-worker Specify Worker Pools machineType: m4.xlarge autoScalerMin: 5 autoScalerMax: 20 kubernetes: Set Kubernetes Version version: 1.11.2 kubeAPIServer: featureGates: ... Tweak Kubernetes Control Plane runtimeConfig: ... admissionPlugins: ... kubeControllerManager: featureGates: ... kubeScheduler: featureGates: ... kubelet: featureGates: ... maintenance: timeWindow: Define When and What to Update begin: 220000+0000 end: 230000+0000 autoUpdate: kubernetesVersion: true Gardener Reported Status status: ...

  29. Lingua Franca – Gar Gardener Cluster Resource apiVersion: garden.sapcloud.io/v1 Native Kubernetes Resource kind: Shoot metadata: name: my-cluster namespace: garden-project spec: dns: Gardener or Self-Managed DNS provider: aws-route53 domain: cluster.ondemand.com cloud: aws: networks: Define Your Infrastructure Needs vpc: cidr: 10.250.0.0/16 workers: - name: cpu-worker Specify Worker Pools machineType: m4.xlarge autoScalerMin: 5 autoScalerMax: 20 kubernetes: Set Kubernetes Version version: 1.11.2 kubeAPIServer: featureGates: ... Tweak Kubernetes Control Plane runtimeConfig: ... admissionPlugins: ... kubeControllerManager: Avoid Vendor Lock-In featureGates: ... kubeScheduler: featureGates: ... kubelet: featureGates: ... maintenance: timeWindow: Define When and What to Update begin: 220000+0000 end: 230000+0000 autoUpdate: kubernetesVersion: true Gardener Reported Status status: ...

  30. Garden Cluster Seed Cluster Shoot Cluster Administrator End-User R R R R R R R Gardener Kubernetes Kubify kubectl gardenctl Kubernetes Dashboard Dashboard kubectl Dashboard R R R R R R R HTTPS Garden Cluster Seed Cluster Shoot Cluster Garden Cluster API LB Ingress LB Seed Cluster API LB Shoot Cluster API LB Shoot Cluster VPN LB R R R R Storage Garden Cluster Storage Seed Cluster [K8s] DS, RS, SS, J, ... [K8s] DS, RS, SS, J, ... Control Plane Control Plane [CRD] Machine Deployment [CRD] Shoot, Seed, ... R R R R R R Worker W Worker Worker Kubelet + Container Runtime Kubelet + Container Runtime Kubelet + Container Runtime etcd Main Backup SS Main PV VPN D Gardener Dashboard D etcd Events SS Events PV R Calico DS Gardener API Server D API Server VPN D R R Kube Proxy DS Gardener Controller Manager D R ... Scheduler D R Core DNS D Controller Manager D Optional Addons New Shoot Clusters can be created via the Gardener dashboard or by uploading a new Shoot resource to Addon Manager D the Garden Cluster. The Gardener picks it up and starts a Terraform job to create the necessary IaaS Machine Controller D Actual Workload R components. Then it deploys the Shoot Cluster Control ... Plane into the Seed Cluster and required add-ons into Terraformer J R the Shoot Cluster. Update or delete operations are Shoot Cluster Control Plane handled by the Gardener fully automatically as well. Monitoring VPN ... Logging R ... ... SCP ... IaaS IaaS

  31. Garden Cluster Seed Cluster Shoot Cluster Administrator End-User R R R R R R R Gardener Kubernetes Kubify kubectl gardenctl Kubernetes Dashboard Dashboard kubectl Dashboard R R R R R R R HTTPS Garden Cluster Seed Cluster Shoot Cluster Garden Cluster API LB Ingress LB Seed Cluster API LB Shoot Cluster API LB Shoot Cluster VPN LB R R R R Storage Garden Cluster Storage Seed Cluster [K8s] DS, RS, SS, J, ... [K8s] DS, RS, SS, J, ... Control Plane Control Plane [CRD] Machine Deployment [CRD] Shoot, Seed, ... R R R R R R Worker W Worker Worker Kubelet + Container Runtime Kubelet + Container Runtime Kubelet + Container Runtime etcd Main Backup SS Main PV VPN D Gardener Dashboard D etcd Events SS Events PV R Calico DS Gardener API Server D API Server VPN D R R Kube Proxy DS Gardener Controller Manager D R ... Scheduler D R Core DNS D Controller Manager D Optional Addons New Shoot Clusters can be created via the Gardener dashboard or by uploading a new Shoot resource to Addon Manager D the Garden Cluster. The Gardener picks it up and starts a Terraform job to create the necessary IaaS Machine Controller D Actual Workload R components. Then it deploys the Shoot Cluster Control ... Plane into the Seed Cluster and required add-ons into Terraformer J R the Shoot Cluster. Update or delete operations are Shoot Cluster Control Plane handled by the Gardener fully automatically as well. Monitoring VPN ... Logging R ... ... SCP ... IaaS IaaS

  32. Garden Cluster Seed Cluster Shoot Cluster Administrator End-User R R R R R R R Gardener Kubernetes Kubify kubectl gardenctl Kubernetes Dashboard Dashboard kubectl Dashboard R R R R R R R HTTPS Garden Cluster Seed Cluster Shoot Cluster Garden Cluster API LB Ingress LB Seed Cluster API LB Shoot Cluster API LB Shoot Cluster VPN LB R R R R Storage Garden Cluster Storage Seed Cluster [K8s] DS, RS, SS, J, ... [K8s] DS, RS, SS, J, ... Control Plane Control Plane [CRD] Machine Deployment [CRD] Shoot, Seed, ... R R R R R R Worker W Worker Worker Kubelet + Container Runtime Kubelet + Container Runtime Kubelet + Container Runtime etcd Main Backup SS Main PV VPN D Gardener Dashboard D etcd Events SS Events PV R Calico DS Gardener API Server D API Server VPN D R R Kube Proxy DS Gardener Controller Manager D R ... Scheduler D R Core DNS D Controller Manager D Optional Addons New Shoot Clusters can be created via the Gardener dashboard or by uploading a new Shoot resource to Addon Manager D the Garden Cluster. The Gardener picks it up and starts a Terraform job to create the necessary IaaS Machine Controller D Actual Workload R components. Then it deploys the Shoot Cluster Control ... Plane into the Seed Cluster and required add-ons into Terraformer J R the Shoot Cluster. Update or delete operations are Shoot Cluster Control Plane handled by the Gardener fully automatically as well. Monitoring VPN ... Logging R ... ... SCP ... IaaS IaaS

  33. Garden Cluster Seed Cluster Shoot Cluster Administrator End-User R R R R R R R Gardener Kubernetes Kubify kubectl gardenctl Kubernetes Dashboard Dashboard kubectl Dashboard R R R R R R R HTTPS Garden Cluster Seed Cluster Shoot Cluster Garden Cluster API LB Ingress LB Seed Cluster API LB Shoot Cluster API LB Shoot Cluster VPN LB R R R R Storage Garden Cluster Storage Seed Cluster [K8s] DS, RS, SS, J, ... [K8s] DS, RS, SS, J, ... Control Plane Control Plane [CRD] Machine Deployment [CRD] Shoot, Seed, ... R R R R R R Worker W Worker Worker Kubelet + Container Runtime Kubelet + Container Runtime Kubelet + Container Runtime etcd Main Backup SS Main PV VPN D Gardener Dashboard D etcd Events SS Events PV R Calico DS Gardener API Server D API Server VPN D R R Kube Proxy DS Gardener Controller Manager D R ... Scheduler D R Core DNS D Controller Manager D Optional Addons New Shoot Clusters can be created via the Gardener dashboard or by uploading a new Shoot resource to Addon Manager D the Garden Cluster. The Gardener picks it up and starts a Terraform job to create the necessary IaaS Machine Controller D Actual Workload R components. Then it deploys the Shoot Cluster Control ... Plane into the Seed Cluster and required add-ons into Terraformer J R the Shoot Cluster. Update or delete operations are Shoot Cluster Control Plane handled by the Gardener fully automatically as well. Monitoring VPN ... Logging R ... ... SCP ... IaaS IaaS

  34. Gardener uses… Following the Design Principle Gar K8S building blocks Kubernetes as deployment underlay

  35. Gardener uses… Following the Design Principle Gar K8S building blocks Deployments Replicasets Pods Kubernetes as deployment underlay

  36. Gardener uses… Following the Design Principle Gar K8S building blocks Deployments Replicasets Load- Balancer Pods Kubernetes as deployment underlay

  37. Gardener uses… Following the Design Principle Gar K8S building blocks Jobs Deployments Replicasets Load- Balancer Pods Kubernetes as deployment underlay

  38. Gardener uses… Following the Design Principle Gar K8S building blocks Jobs Deployments Secrets Replicasets Load- Config Balancer Maps Pods Kubernetes as deployment underlay

  39. Gardener uses… Following the Design Principle Gar K8S building blocks Stateful Sets Jobs Deployments Secrets PVs PVCs Replicasets Load- Config Driver Balancer Maps Pods Kubernetes as deployment underlay

  40. Gardener uses… Following the Design Principle Gar K8S building blocks Stateful Sets Reconciliation Jobs Deployments Secrets PVs PVCs Controllers CRDs Replicasets Load- Config Driver Balancer API Server Extension Maps Pods Kubernetes as deployment underlay

  41. Gardener uses… Following the Design Principle Gar K8S building blocks Stateful Sets Reconciliation Jobs Deployments Secrets Admission Control PVs PVCs Controllers CRDs Replicasets Load- Config RBAC Driver Balancer API Server Extension Maps Pods Kubernetes as deployment underlay

  42. Gardener uses… Following the Design Principle Gar Additional Tooling K8S building blocks Stateful Sets Reconciliation Jobs Deployments Secrets Admission Control PVs PVCs Controllers CRDs Replicasets Load- Config RBAC Driver Balancer API Server Extension Maps Pods Kubernetes as deployment underlay

  43. Gardener uses… Following the Design Principle Gar Additional Tooling Add-On Manager Helm K8S building blocks Stateful Sets Reconciliation Jobs Deployments Secrets Admission Control PVs PVCs Controllers CRDs Replicasets Load- Config RBAC Driver Balancer API Server Extension Maps Pods Kubernetes as deployment underlay

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

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

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

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

  48. 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

  49. Gardener Demo

  50. 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

  51. Gardener is Open Source Gar

  52. Gardener is Open Source Gar Long-Term Goal Become CNCF Project

  53. Gardener is Open Source Gar Long-Term Goal Become CNCF Project Gardener Blog CNCF Presentation Kubernetes Podcast Hacker News Reddit

  54. 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

  55. Evaluate the Sessions Sign in and vote at eclipsecon.org -1 0 +1

  56. Ku Kubernetes Mach chine Controller Manager 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

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

  58. MCM Custom Resources

  59. MCM Custom Resources Machine Name: test-machine MachineClass: v1

  60. MCM Custom Resources AWS-Machine-Class (Template) Name: v1 Machine Type: t2.large Disk Size: 50GB Secret: test-secret …… Machine Name: test-machine MachineClass: v1

  61. MCM Custom Resources AWS-Machine-Class Secret (Template) Name: test-secret Name: v1 Cloudconfig: Machine Type: t2.large abc….xzy Disk Size: 50GB AccessKeyId: abc123 Secret: test-secret SecretAccessKey: xyz789 …… Machine Name: test-machine MachineClass: v1

Recommend


More recommend