SlideShare une entreprise Scribd logo
1  sur  28
Matthias Sohn
Adel Zaalouk
SAP
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
What does Kubernetes 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
Gardener
WHAT do we want to achieve with the Gardener?
Provide and establish solution for 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
WHAT do we want to achieve with the Gardener?
Homogenously on Hyper-Scale Providers and for the Private Cloud
Full Control of Kubernetes,
Homogeneous Across All Installations
AWS, Azure, GCP, Alibaba and Others
Private DCs for Data Privacy:
OpenStack
and eventually Bare Metal
WHAT do we want to achieve with the Gardener?
with Minimal TCO and Full Day-2 Operations 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,
…
Gardener Mission
Provide and establish solution for Kubernetes Clusters as a Service
Homogenously on Hyper-Scale Providers and for the Private Cloud
with Minimal TCO and Full Day-2 Operations Support
Primary Gardener Architecture Principle
Following the definition of Kubernetes…
Kubernetes is a system for automating
deployment, scaling, and management
of containerized software
…we do the following:
We use Kubernetes to deploy, host and operate Kubernetes
Control planes are “seeded” into already existing clusters
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,
often 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
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
Gardener Kubernetes Cluster Setup
Multiple Shoot Cluster
Control Planes
WorkerMaster
Master
Master
Worker
Worker
HA
Gardener Cluster
Inside a Seed
Cluster Worker
manages
API ServerETCD
SchedulerController Mgr
API Server
SchedulerController Mgr
ETCD
ETCD …API Server
Primary Gardener Design Principle
“Let Kubernetes drive the design
of the Gardener.”
Do not reinvent the wheel …
Lingua Franca – 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
Shoot ClusterSeed 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 LBGarden 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
RR
R RR
R RR
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
SSetcd Main Backup
Events PVetcd Events SS
API Server VPN D
Terraformer J
Machine Controller D
Addon Manager D
Shoot Cluster Control Plane
R
IaaS
R
R
Seed Cluster
Following the Design Principle Gardener uses…
K8S building blocks
Kubernetes as deployment underlay
Deployments Stateful Sets
API Server Extension
CRDsPVs PVCs
Driver RBAC
Admission ControlControllers
Reconciliation
Pods
Replicasets
Additional Tooling
Cluster
AutoscalerCalico
Network policies
Helm
Add-On Manager Prometheus
EFK Stack
Load-
Balancer
Config
Maps
Jobs Secrets
Workload
Cert Broker
Cert Manager
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
Gardener Demo
Gardener 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
Gardener Blog
CNCF Presentation
Kubernetes Podcast
Hacker News
Reddit
Gardener is Open Source
Long-Term Goal
Become CNCF Project
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
EvaluatetheSessions
-1 0 +1
Signinandvoteat eclipsecon.org
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
Kubernetes Machine Controller Manager
MCM Model
Model for Kubernetes
deployments works great
So why not use it for
machines?
Pod
ReplicaSet
Deployment
Machine
MachineSet
MachineDeployment
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
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
Class + Secret
Machine
Class + Secret
V1
Machine
Deployment
Class: V1
Replicas: 3
Machine
Deployment
Class: V1
Replicas: 3
Machine
Set
Replicas: 3
Machine
Machine
Machine
3 VMs
Node
Node
Node
Machine Controller
Manager
Node objects help in
monitoring the machine
status – Health
Autoscaling
ETCD
(Key-value store)
Kubernetes
API Server
Machine
Deployment
Controller
kubectl
Machine Set
Controller
Machine
Controller
Kubernetes
Controller
Manager
Cloud
Provider API
Machine Controller
Manager
Machine
Deployment
Class: V1
Replicas: 3
Machine
Machine
Machine
Node 1
Node 2
Node 3
Forked Cluster
Autoscaler
Pod
Image: Nginx
Node: Unschedulable
Pod
Image: Nginx
Node: -
Machine
Deployment
Class: V1
Replicas: 4
MachineNode 4
Pod
Image: Nginx
Node: Node4
Now assume that all the nodes resources are
nearly consumed and a new pod is created
Machine Controller Manager - Components
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

Contenu connexe

Tendances

Tendances (20)

Modern DevOps with Spinnaker - Olga Kundzich
Modern DevOps with Spinnaker - Olga KundzichModern DevOps with Spinnaker - Olga Kundzich
Modern DevOps with Spinnaker - Olga Kundzich
 
A Million ways of Deploying a Kubernetes Cluster
A Million ways of Deploying a Kubernetes ClusterA Million ways of Deploying a Kubernetes Cluster
A Million ways of Deploying a Kubernetes Cluster
 
CI and CD with Spinnaker
CI and CD with SpinnakerCI and CD with Spinnaker
CI and CD with Spinnaker
 
Docker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalDocker Enterprise Workshop - Technical
Docker Enterprise Workshop - Technical
 
Kubernetes and CoreOS @ Athens Docker meetup
Kubernetes and CoreOS @ Athens Docker meetupKubernetes and CoreOS @ Athens Docker meetup
Kubernetes and CoreOS @ Athens Docker meetup
 
An Overview of Spinnaker
An Overview of SpinnakerAn Overview of Spinnaker
An Overview of Spinnaker
 
Die große Cloud-native FaaS-Hitparade
Die große Cloud-native FaaS-HitparadeDie große Cloud-native FaaS-Hitparade
Die große Cloud-native FaaS-Hitparade
 
Kubernetes 101 VMworld 2019 workshop slides
Kubernetes 101 VMworld 2019 workshop slidesKubernetes 101 VMworld 2019 workshop slides
Kubernetes 101 VMworld 2019 workshop slides
 
Running and Managing Kubernetes on OpenStack
Running and Managing Kubernetes on OpenStackRunning and Managing Kubernetes on OpenStack
Running and Managing Kubernetes on OpenStack
 
Kubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionKubernetes Architecture and Introduction
Kubernetes Architecture and Introduction
 
TDC2017 | São Paulo - Trilha Cloud Computing How we figured out we had a SRE ...
TDC2017 | São Paulo - Trilha Cloud Computing How we figured out we had a SRE ...TDC2017 | São Paulo - Trilha Cloud Computing How we figured out we had a SRE ...
TDC2017 | São Paulo - Trilha Cloud Computing How we figured out we had a SRE ...
 
[Spark Summit 2017 NA] Apache Spark on Kubernetes
[Spark Summit 2017 NA] Apache Spark on Kubernetes[Spark Summit 2017 NA] Apache Spark on Kubernetes
[Spark Summit 2017 NA] Apache Spark on Kubernetes
 
Kubernetes intro public - kubernetes user group 4-21-2015
Kubernetes intro   public - kubernetes user group 4-21-2015Kubernetes intro   public - kubernetes user group 4-21-2015
Kubernetes intro public - kubernetes user group 4-21-2015
 
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...
 
KubeCon EU 2016 Keynote: Kubernetes State of the Union
KubeCon EU 2016 Keynote: Kubernetes State of the UnionKubeCon EU 2016 Keynote: Kubernetes State of the Union
KubeCon EU 2016 Keynote: Kubernetes State of the Union
 
Introduction to helm
Introduction to helmIntroduction to helm
Introduction to helm
 
Hands-on with Rancher 2.0 and Kubernetes - October 2017 Rancher Online Meetup
Hands-on with Rancher 2.0 and Kubernetes - October 2017 Rancher Online MeetupHands-on with Rancher 2.0 and Kubernetes - October 2017 Rancher Online Meetup
Hands-on with Rancher 2.0 and Kubernetes - October 2017 Rancher Online Meetup
 
Kube Overview and Kube Conformance Certification OpenSource101 Raleigh
Kube Overview and Kube Conformance Certification OpenSource101 RaleighKube Overview and Kube Conformance Certification OpenSource101 Raleigh
Kube Overview and Kube Conformance Certification OpenSource101 Raleigh
 
LINE's Private Cloud - Meet Cloud Native World
LINE's Private Cloud - Meet Cloud Native WorldLINE's Private Cloud - Meet Cloud Native World
LINE's Private Cloud - Meet Cloud Native World
 
Enabling ceph-mgr to control Ceph services via Kubernetes
Enabling ceph-mgr to control Ceph services via KubernetesEnabling ceph-mgr to control Ceph services via Kubernetes
Enabling ceph-mgr to control Ceph services via Kubernetes
 

Similaire à Project Gardener - EclipseCon Europe - 2018-10-23

How kubernetes operators can rescue dev secops in midst of a pandemic updated
How kubernetes operators can rescue dev secops in midst of a pandemic updatedHow kubernetes operators can rescue dev secops in midst of a pandemic updated
How kubernetes operators can rescue dev secops in midst of a pandemic updated
Shikha Srivastava
 
Kubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDKubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CD
Stfalcon Meetups
 

Similaire à Project Gardener - EclipseCon Europe - 2018-10-23 (20)

How kubernetes operators can rescue dev secops in midst of a pandemic updated
How kubernetes operators can rescue dev secops in midst of a pandemic updatedHow kubernetes operators can rescue dev secops in midst of a pandemic updated
How kubernetes operators can rescue dev secops in midst of a pandemic updated
 
Kubernetes on on on on on on on on on on on on on on Azure Deck.pptx
Kubernetes on on on on on on on on on on on on on on Azure Deck.pptxKubernetes on on on on on on on on on on on on on on Azure Deck.pptx
Kubernetes on on on on on on on on on on on on on on Azure Deck.pptx
 
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
 
Kubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDKubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CD
 
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...
 
Containers kuberenetes
Containers kuberenetesContainers kuberenetes
Containers kuberenetes
 
Containers kuberenetes
Containers kuberenetesContainers kuberenetes
Containers kuberenetes
 
Database as a Service (DBaaS) on Kubernetes
Database as a Service (DBaaS) on KubernetesDatabase as a Service (DBaaS) on Kubernetes
Database as a Service (DBaaS) on Kubernetes
 
Cloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit KubernetesCloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit Kubernetes
 
Containers kuberenetes
Containers kuberenetesContainers kuberenetes
Containers kuberenetes
 
Kubermatic.pdf
Kubermatic.pdfKubermatic.pdf
Kubermatic.pdf
 
Kubermatic CNCF Webinar - start.kubermatic.pdf
Kubermatic CNCF Webinar - start.kubermatic.pdfKubermatic CNCF Webinar - start.kubermatic.pdf
Kubermatic CNCF Webinar - start.kubermatic.pdf
 
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Develop and deploy Kubernetes  applications with Docker - IBM Index 2018Develop and deploy Kubernetes  applications with Docker - IBM Index 2018
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
 
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB201904_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
 
Containerizing the Cloud with Kubernetes and Docker
Containerizing the Cloud with Kubernetes and DockerContainerizing the Cloud with Kubernetes and Docker
Containerizing the Cloud with Kubernetes and Docker
 
Federated Kubernetes: As a Platform for Distributed Scientific Computing
Federated Kubernetes: As a Platform for Distributed Scientific ComputingFederated Kubernetes: As a Platform for Distributed Scientific Computing
Federated Kubernetes: As a Platform for Distributed Scientific Computing
 
Mattia Gandolfi - Improving utilization and portability with Containers and C...
Mattia Gandolfi - Improving utilization and portability with Containers and C...Mattia Gandolfi - Improving utilization and portability with Containers and C...
Mattia Gandolfi - Improving utilization and portability with Containers and C...
 
GCP Meetup #3 - Approaches to Cloud Native Architectures
GCP Meetup #3 - Approaches to Cloud Native ArchitecturesGCP Meetup #3 - Approaches to Cloud Native Architectures
GCP Meetup #3 - Approaches to Cloud Native Architectures
 
Cloud-Native Operations with Kubernetes and CI/CD
Cloud-Native Operations with Kubernetes and CI/CDCloud-Native Operations with Kubernetes and CI/CD
Cloud-Native Operations with Kubernetes and CI/CD
 
Episode 1: Building Kubernetes-as-a-Service
Episode 1: Building Kubernetes-as-a-ServiceEpisode 1: Building Kubernetes-as-a-Service
Episode 1: Building Kubernetes-as-a-Service
 

Plus de msohn

Plus de msohn (20)

News from Git in Eclipse - EclipseCon EU - 2016-10-26
News from Git in Eclipse - EclipseCon EU - 2016-10-26News from Git in Eclipse - EclipseCon EU - 2016-10-26
News from Git in Eclipse - EclipseCon EU - 2016-10-26
 
Git journey from mars to neon EclipseCon North America - 2016-03-08
Git journey from mars to neon   EclipseCon North America - 2016-03-08Git journey from mars to neon   EclipseCon North America - 2016-03-08
Git journey from mars to neon EclipseCon North America - 2016-03-08
 
Versioning large binary files with JGit, EGit and Gerrit
Versioning large binary files with JGit, EGit and GerritVersioning large binary files with JGit, EGit and Gerrit
Versioning large binary files with JGit, EGit and Gerrit
 
News from Git in Eclipse - EclipseCon 2015 Europe
News from Git in Eclipse - EclipseCon 2015 EuropeNews from Git in Eclipse - EclipseCon 2015 Europe
News from Git in Eclipse - EclipseCon 2015 Europe
 
Git missiontomars 2015-03-10
Git missiontomars 2015-03-10Git missiontomars 2015-03-10
Git missiontomars 2015-03-10
 
News from EGit - Talk EclipseCon Europe 2014 - Ludwigsburg
News from EGit - Talk EclipseCon Europe 2014 - LudwigsburgNews from EGit - Talk EclipseCon Europe 2014 - Ludwigsburg
News from EGit - Talk EclipseCon Europe 2014 - Ludwigsburg
 
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 9 - starting demo gerrit
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 9 - starting demo gerritGit Tutorial EclipseCon France 2014 - Gerrit Exercise 9 - starting demo gerrit
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 9 - starting demo gerrit
 
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 7 - new changescreen
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 7 - new changescreenGit Tutorial EclipseCon France 2014 - Gerrit Exercise 7 - new changescreen
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 7 - new changescreen
 
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 6 - submit a change
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 6 - submit a changeGit Tutorial EclipseCon France 2014 - Gerrit Exercise 6 - submit a change
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 6 - submit a change
 
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 5 - improve a change
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 5 - improve a changeGit Tutorial EclipseCon France 2014 - Gerrit Exercise 5 - improve a change
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 5 - improve a change
 
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 4 - review change
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 4 - review changeGit Tutorial EclipseCon France 2014 - Gerrit Exercise 4 - review change
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 4 - review change
 
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 3 - push change to gerrit
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 3 - push change to gerritGit Tutorial EclipseCon France 2014 - Gerrit Exercise 3 - push change to gerrit
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 3 - push change to gerrit
 
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 2 - fetch the latest state
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 2 - fetch the latest stateGit Tutorial EclipseCon France 2014 - Gerrit Exercise 2 - fetch the latest state
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 2 - fetch the latest state
 
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 1 - configure for gerrit
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 1 - configure for gerritGit Tutorial EclipseCon France 2014 - Gerrit Exercise 1 - configure for gerrit
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 1 - configure for gerrit
 
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 8 - view gerrit review ...
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 8 - view gerrit review ...Git Tutorial EclipseCon France 2014 - Gerrit Exercise 8 - view gerrit review ...
Git Tutorial EclipseCon France 2014 - Gerrit Exercise 8 - view gerrit review ...
 
Git Tutorial EclipseCon France 2014 - Git Exercise 07 - git blame
Git Tutorial EclipseCon France 2014 - Git Exercise 07 - git blameGit Tutorial EclipseCon France 2014 - Git Exercise 07 - git blame
Git Tutorial EclipseCon France 2014 - Git Exercise 07 - git blame
 
Git Tutorial EclipseCon France 2014 - Git Exercise 06 - interactive rebase
Git Tutorial EclipseCon France 2014 - Git Exercise 06 - interactive rebaseGit Tutorial EclipseCon France 2014 - Git Exercise 06 - interactive rebase
Git Tutorial EclipseCon France 2014 - Git Exercise 06 - interactive rebase
 
Git Tutorial EclipseCon France 2014 - Git Exercise 05 - history view
Git Tutorial EclipseCon France 2014 - Git Exercise 05 - history viewGit Tutorial EclipseCon France 2014 - Git Exercise 05 - history view
Git Tutorial EclipseCon France 2014 - Git Exercise 05 - history view
 
Git Tutorial EclipseCon France 2014 - Git Exercise 04 - merging rebasing and ...
Git Tutorial EclipseCon France 2014 - Git Exercise 04 - merging rebasing and ...Git Tutorial EclipseCon France 2014 - Git Exercise 04 - merging rebasing and ...
Git Tutorial EclipseCon France 2014 - Git Exercise 04 - merging rebasing and ...
 
Git Tutorial EclipseCon France 2014 - Git Exercise 03 - work on branches in p...
Git Tutorial EclipseCon France 2014 - Git Exercise 03 - work on branches in p...Git Tutorial EclipseCon France 2014 - Git Exercise 03 - work on branches in p...
Git Tutorial EclipseCon France 2014 - Git Exercise 03 - work on branches in p...
 

Dernier

Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 

Dernier (20)

%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 

Project Gardener - EclipseCon Europe - 2018-10-23

  • 2. 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
  • 3. What does Kubernetes 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 Gardener
  • 4. WHAT do we want to achieve with the Gardener? Provide and establish solution for 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
  • 5. WHAT do we want to achieve with the Gardener? Homogenously on Hyper-Scale Providers and for the Private Cloud Full Control of Kubernetes, Homogeneous Across All Installations AWS, Azure, GCP, Alibaba and Others Private DCs for Data Privacy: OpenStack and eventually Bare Metal
  • 6. WHAT do we want to achieve with the Gardener? with Minimal TCO and Full Day-2 Operations 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, …
  • 7. Gardener Mission Provide and establish solution for Kubernetes Clusters as a Service Homogenously on Hyper-Scale Providers and for the Private Cloud with Minimal TCO and Full Day-2 Operations Support
  • 8. Primary Gardener Architecture Principle Following the definition of Kubernetes… Kubernetes is a system for automating deployment, scaling, and management of containerized software …we do the following: We use Kubernetes to deploy, host and operate Kubernetes Control planes are “seeded” into already existing clusters
  • 9. 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, often 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
  • 10. 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 Gardener Kubernetes Cluster Setup Multiple Shoot Cluster Control Planes WorkerMaster Master Master Worker Worker HA Gardener Cluster Inside a Seed Cluster Worker manages API ServerETCD SchedulerController Mgr API Server SchedulerController Mgr ETCD ETCD …API Server
  • 11. Primary Gardener Design Principle “Let Kubernetes drive the design of the Gardener.” Do not reinvent the wheel …
  • 12. Lingua Franca – 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
  • 13. Shoot ClusterSeed 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 LBGarden 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 RR R RR R RR 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 SSetcd Main Backup Events PVetcd Events SS API Server VPN D Terraformer J Machine Controller D Addon Manager D Shoot Cluster Control Plane R IaaS R R Seed Cluster
  • 14. Following the Design Principle Gardener uses… K8S building blocks Kubernetes as deployment underlay Deployments Stateful Sets API Server Extension CRDsPVs PVCs Driver RBAC Admission ControlControllers Reconciliation Pods Replicasets Additional Tooling Cluster AutoscalerCalico Network policies Helm Add-On Manager Prometheus EFK Stack Load- Balancer Config Maps Jobs Secrets Workload Cert Broker Cert Manager
  • 15. 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
  • 17.
  • 18. Gardener 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
  • 19. Gardener Blog CNCF Presentation Kubernetes Podcast Hacker News Reddit Gardener is Open Source Long-Term Goal Become CNCF Project
  • 20. 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
  • 21.
  • 23. 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 Kubernetes Machine Controller Manager
  • 24. MCM Model Model for Kubernetes deployments works great So why not use it for machines? Pod ReplicaSet Deployment Machine MachineSet MachineDeployment
  • 25. 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
  • 26. 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 Class + Secret Machine Class + Secret V1 Machine Deployment Class: V1 Replicas: 3 Machine Deployment Class: V1 Replicas: 3 Machine Set Replicas: 3 Machine Machine Machine 3 VMs Node Node Node Machine Controller Manager Node objects help in monitoring the machine status – Health
  • 27. Autoscaling ETCD (Key-value store) Kubernetes API Server Machine Deployment Controller kubectl Machine Set Controller Machine Controller Kubernetes Controller Manager Cloud Provider API Machine Controller Manager Machine Deployment Class: V1 Replicas: 3 Machine Machine Machine Node 1 Node 2 Node 3 Forked Cluster Autoscaler Pod Image: Nginx Node: Unschedulable Pod Image: Nginx Node: - Machine Deployment Class: V1 Replicas: 4 MachineNode 4 Pod Image: Nginx Node: Node4 Now assume that all the nodes resources are nearly consumed and a new pod is created
  • 28. Machine Controller Manager - Components 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

Notes de l'éditeur

  1. Assessment – Kargo: Ansible-based with no real day-2 capabilities (e.g. no useful dry-run), see also AWS S3 disaster thanks to Ansible based setup Assessment – Kops: No clear strategy and poor coordination Accidental Architecture as a result Not robust enough, even buggy No maintenance processes (e.g. old images) No easy way to be consumed programmatically
  2. Assessment – Kargo: Ansible-based with no real day-2 capabilities (e.g. no useful dry-run), see also AWS S3 disaster thanks to Ansible based setup Assessment – Kops: No clear strategy and poor coordination Accidental Architecture as a result Not robust enough, even buggy No maintenance processes (e.g. old images) No easy way to be consumed programmatically
  3. Assessment – Kargo: Ansible-based with no real day-2 capabilities (e.g. no useful dry-run), see also AWS S3 disaster thanks to Ansible based setup Assessment – Kops: No clear strategy and poor coordination Accidental Architecture as a result Not robust enough, even buggy No maintenance processes (e.g. old images) No easy way to be consumed programmatically
  4. Assessment – Kargo: Ansible-based with no real day-2 capabilities (e.g. no useful dry-run), see also AWS S3 disaster thanks to Ansible based setup Assessment – Kops: No clear strategy and poor coordination Accidental Architecture as a result Not robust enough, even buggy No maintenance processes (e.g. old images) No easy way to be consumed programmatically
  5. Assessment – Kargo: Ansible-based with no real day-2 capabilities (e.g. no useful dry-run), see also AWS S3 disaster thanks to Ansible based setup Assessment – Kops: No clear strategy and poor coordination Accidental Architecture as a result Not robust enough, even buggy No maintenance processes (e.g. old images) No easy way to be consumed programmatically