SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
A Future Journey:
How to Migrate 100
Clusters to GCP without
Downtime?
Tobias Schneck
Head of Professional Service
toschneck
@toschneck
tobi@kubermatic.com
Manuel Stößel
Systems Architect / Tech Lead
@ManuStoessel
@Manuel_Stoessel
manuel@kubermatic.com
What Else?
• Part of Professional Services @
Kubermatic
• Supporting customers on their
cloud-native journey
• Geeking out over Kubernetes and
adjacent technologies
Why Migrate Clusters?
Reasons for Cluster Migration Scenarios
● Business Reasons
● Better contract/conditions at another cloud provider ⇒ cost saving
● Data center migration to/from (cloud) providers
● Multi cloud strategy ⇒ decrease dependency to existing provider
● Technical Reasons
● Location migration of data centers
● Migrate to other network segments
● Adaption of on-prem / cloud improvements at new data center provider
● Data location of cloud offered service e.g. machine learning data
What Are the Main
Challenges?
Kubernetes Abstracts Infrastructure, But:
● Consummation of infrastructure resources
○ (Virtual) Machines
○ Network:
■ Network IP Address Spaces
■ Routing, Firewall
■ Ingress / Egress Traffic
○ DNS
○ External Storage Systems
● Cloud dependent Kubernetes components
○ Cloud Controller Manager
■ Node controller - responsible for updating kubernetes nodes
■ Service controller - responsible for services of type LoadBalancer
■ Route controller - responsible for setting up network routes
○ Storage Classes
○ (sometimes) Overlay Networking
K8s Master
API Server
Dashboard
Scheduler
kubelet kubelet kubelet kubelet
Container
Registry
etcd
Controllers
web browsers
kubectl
web browsers
Config
file
Image
CNI - Plugin Network (e.g. Flannel, Calico)
Developer
Developer
⇒ Application workload has the highest priority!
● Ensure fundamental networking rules at any time
○ All containers within a pod can communicate (L4) with each other unimpeded.
○ All pods can communicate with all other pods without NAT.
○ All nodes can communicate with all pods (and vice-versa) without NAT.
○ The IP that a pod sees itself as is the same IP that others see it as.
● External dependencies need to be reachable
○ External routed IPs for Load Balancers / Node Port Service
○ DNS Names need to be reachable
● Storage
○ State needs to migrated without data loss
Migration Without Downtime
Scale Level of 100 Clusters
● Larger organizations running a lot of clusters
⇒ different locations, org units, time zones
● Cluster users are only consumers
⇒ following the cluster as a service approach
● Cluster connection and secrets needs to be stable
=> no change of interface
Solution Approach
Status Quo
● Multi Cloud Setup with Kubermatic Kubernetes Platform (KKP)
○ Seed cluster hold containerized control plane of user clusters
○ Worker nodes provisioned by Cluster API conform Kubermatic machine-controller
○ Canal as default overlay network
● Target
○ Migrate user and seed cluster control planes and worker to different cloud
○ Keep external Cluster Endpoints stable
■ Control Plan: Kubernetes API Server endpoints
■ Application: DNS, Ingress
○ Out-of-Scope (for now): Storage replication
■ Assumption: Application Layer manages storage replication, e.g. etcd
Kubermatic
Kubermatic Master Cluster
KubeOne Seed Cluster - Region EU
User k8s
Worker
User k8s
Worker
User k8s Master
API Controller
Scheduler etcd
User k8s
Worker
User k8s
Worker
User k8s Master
API Controller
Scheduler etcd
Recommended Prerequisites
● Announce maintenance window and block cluster updates
● Ensure backups and recovery procedure for
○ Seed and user clusters
○ Application workload
● Create target cloud cluster as reference
● Ensure control of DNS entries
Migrate User Clusters
Solution Approach
1) Migrate User Cluster Workers
● Create new worker nodes in target cloud
⇒ Machine controller with new Machine Deployment at target cloud
● User worker nodes and Pods need to talk to each other at any time
⇒ Strap a VPN overlay by DaemonSets across current and target cloud
⇒ Route overlay CNI traffic through VPN network
● Ensure reachability
=> Keep old and create new cluster Ingress endpoints
=> Transfer workload to new cloud
=> Delete after workload / connectivity is ensured
KubeOne Seed Cluster - Region EU
User k8s Master
API Controller
Scheduler etcd
User k8s
Worker
VPN Server Machine
Controller
Application
User k8s
Worker
Application
*.cluster-1.example.com
K8s API Server tunnel
Canal Overlay
(eth0)
MetalLB
Migrate User Cluster Worker Nodes:
KubeOne Seed Cluster - Region EU
User k8s Master
API Controller
Scheduler etcd
User k8s
Worker
VPN Server Machine
Controller
User k8s
Worker
Application Application
*.cluster-1.example.com
K8s API Server tunnel
Canal Overlay
(kube)
Migrate User Cluster Worker Nodes:
1. VPN Daemon Set with client-to-client
communication
2. Route Overlay Traffic over VPN interface
3. Pause existing Cluster & Machine Deployment
VPN
Client
VPN
Client
MetalLB
KubeOne Seed Cluster - Region EU
User k8s Master
API Controller
Scheduler etcd
User k8s
Worker
Machine
Controller
VPN Server
User k8s
Worker
Application Application
*.cluster-1.example.com
K8s API Server tunnel
Canal Overlay
(kube)
Migrate User Cluster Worker Nodes:
1. VPN Daemon Set with client-to-client
communication
2. Route Overlay Traffic over VPN interface
3. Pause existing Cluster & Machine Deployment
4. Update Cluster Spec & Cloud Credentials
5. Unpause Cluster with new Cloud Provider
6. Apply new Machine Deployment
VPN
Client
VPN
Client
User k8s
Worker
VPN
Client
MetalLB
User k8s
Worker
VPN
Client
GCP LB
KubeOne Seed Cluster - Region EU
User k8s Master
API Controller
Scheduler etcd
User k8s
Worker
Machine
Controller
User k8s
Worker
*.cluster-1.example.com
K8s API Server tunnel
Canal Overlay
(kube)
Migrate User Cluster Worker Nodes:
1. VPN Daemon Set with client-to-client
communication
2. Route Overlay Traffic over VPN interface
3. Pause existing Cluster & Machine Deployment
4. Update Cluster Spec & Cloud Credentials
5. Unpause Cluster with new Cloud Provider
6. Apply new Machine Deployment
7. Test new cluster ingress entrypoint
8. Migrate Workload and update DNS
VPN
Client
VPN
Client
User k8s
Worker
VPN
Client
MetalLB GCP LB
User k8s
Worker
VPN
Client
Application Application
KubeOne Seed Cluster - Region EU
User k8s Master
API Controller
Scheduler etcd
VPN Server Machine
Controller
*.cluster-1.example.com
K8s API Server tunnel
Migrate User Cluster Worker Nodes:
1. VPN Daemon Set with client-to-client
communication
2. Route Overlay Traffic over VPN interface
3. Pause existing Cluster & Machine Deployment
4. Update Cluster Spec & Cloud Credentials
5. Unpause Cluster with new Cloud Provider
6. Apply new Machine Deployment
7. Test new cluster ingress entrypoint
8. Migrate Workload and update DNS
9. Cleanup old cloud resource
User k8s
Worker
GCP LB
User k8s
Worker
Application Application
Canal Overlay
(eth0)
github.com/kubermatic-labs/cluster-migration
DEMO Time 🎉
Migrate Seed Cluster
Solution Approach
Kubermatic
KubeOne Master Cluster
migrated
KubeOne Seed Cluster - Region EU
User k8s
Worker
User k8s
Worker
User k8s Master
API Controller
Scheduler etcd
migrated
User k8s
Worker
User k8s
Worker
User k8s Master
API Controller
Scheduler etcd
2) Migrate Seed Cluster
● Create new seed master nodes at new cloud
=> New Kubernetes API Load Balancer
=> API Endpoint needs to be updated by DNS
=> Block seed cluster upgrades to ensure worst case recovery
● Migrate user cluster control plane
=> Handle migration the same way (like user cluster workload)
=> Ensure etcd quorum and migration by data replication
=> Block user cluster upgrades to ensure worst case recovery
User k8s Master
API Scheduler Controller etcd
KubeOne Seed Cluster - Region EU
Seed k8s
Master
Seed k8s
Master
Seed k8s
Master
seed-k8s-api.example.com
Seed k8s
Worker
Seed k8s
Worker
Seed k8s
Worker
Migrate Seed Master Nodes:
User k8s Master
API Scheduler Controller etcd
User k8s Master
API Scheduler Controller etcd
KubeOne Seed Cluster - Region EU
Seed k8s
Master
Seed k8s
Master
Seed k8s
Master
seed-k8s-api.example.com
Seed k8s
Worker
Seed k8s
Worker
Seed k8s
Worker
Migrate Seed Master Nodes:
1. Setup VPN Overlay
2. Pause existing Cluster & Machine
Deployment
3. Create and join new 2 Master Nodes
Seed k8s
Master
Seed k8s
Master
VPN Server
Canal Overlay
(kube)
User k8s Master
API Scheduler Controller etcd
User k8s Master
API Scheduler Controller etcd
User k8s Master
API Scheduler Controller etcd
KubeOne Seed Cluster - Region EU
seed-k8s-api.example.com
Seed k8s
Worker
Seed k8s
Worker
Seed k8s
Worker
Migrate Seed Master Nodes:
1. Setup VPN Overlay
2. Pause existing Cluster & Machine
Deployment
3. Create and join new 2 Master Nodes
4. Add new LB Service & Update DNS
5. Remove 2 old Master Nodes and move
etcd quorum to new cloud
Seed k8s
Master
Seed k8s
Master
VPN Server
Canal Overlay
(kube)
Seed k8s
Master
User k8s Master
API Scheduler Controller etcd
User k8s Master
API Scheduler Controller etcd
User k8s Master
API Scheduler Controller etcd
KubeOne Seed Cluster - Region EU
Seed k8s
Master
seed-k8s-api.example.com
Seed k8s
Worker
Seed k8s
Worker
Seed k8s
Worker
Migrate Seed Master Nodes:
1. Setup VPN Overlay
2. Pause existing Cluster & Machine
Deployment
3. Create and join new 2 Master Nodes
4. Add new LB Service & Update DNS
5. Remove 2 old Master Nodes and move
etcd quorum to new cloud
6. Create 3rd Master Node at new cloud
and remove last old Master Node
Seed k8s
Master
Seed k8s
Master
VPN Server
Canal Overlay
(kube)
User k8s Master
API Scheduler Controller etcd
User k8s Master
API Scheduler Controller etcd
User k8s Master
API Scheduler Controller etcd
Migrate Seed Cluster Workers
Solution Approach
KubeOne Seed Cluster - Region EU
K8s API Server tunnels
Seed k8s
Master
Seed k8s
Master
Seed k8s
Master
*.seed.example.com
User k8s
Worker
User k8s
Worker
User k8s
Worker
[cluster-id]
NodePort Proxy
Service
Seed k8s
Worker
Seed k8s
Worker
Seed k8s
Worker
VPN Server
Canal Overlay
(kube)
Migrate Seed Worker Nodes:
User k8s Master
API Scheduler Controller etcd
User k8s Master
API Scheduler Controller etcd
User k8s Master
API Scheduler Controller etcd
KubeOne Seed Cluster - Region EU
K8s API Server tunnels
Seed k8s
Master
Seed k8s
Master
*.seed.example.com
User k8s
Worker
User k8s
Worker
User k8s
Worker
[cluster-id]
NodePort Proxy
Service
Seed k8s
Worker
Seed k8s
Worker
Seed k8s
Worker
Seed k8s
Master
VPN Server
Canal Overlay
(kube)
Migrate Seed Worker Nodes:
1. VPN Overlay, Pause existing Cluster, Machine
Deployment
2. Create 2 new Workers (migration steps similar to
user cluster)
Seed k8s
Worker
Seed k8s
Worker
User k8s Master
API Scheduler Controller etcd
User k8s Master
API Scheduler Controller etcd
User k8s Master
API Scheduler Controller etcd
KubeOne Seed Cluster - Region EU
K8s API Server tunnels
Seed k8s
Master
Seed k8s
Master
*.seed.example.com
User k8s
Worker
User k8s
Worker
User k8s
Worker
[cluster-id]
NodePort Proxy
Service
Seed k8s
Worker
Seed k8s
Worker
Seed k8s
Worker
Seed k8s
Master
VPN Server
Canal Overlay
(kube)
Migrate Seed Worker Nodes:
1. VPN Overlay, Pause existing Cluster, Machine
Deployment
2. Create 2 new Workers (migration steps similar to
user cluster)
3. Taint existing workers as non-schedule
4. Scale up etcd count of user cluster to 5
⇒ data replicated by etcd
Seed k8s
Worker
Seed k8s
Worker
User k8s Master
API Scheduler Controller etcd
User k8s Master
API Scheduler Controller etcd
User k8s Master
API Scheduler Controller etcd
Migrate Seed Worker Nodes:
1. VPN Overlay, Pause existing Cluster, Machine
Deployment
2. Create 2 new Workers (migration steps similar to
user cluster)
3. Taint existing workers as non-schedule
4. Scale up etcd count of user cluster to 5
⇒ data replicated by etcd
5. Create new LB for NodePort Proxy and update DNS
KubeOne Seed Cluster - Region EU
K8s API Server tunnels
Seed k8s
Master
Seed k8s
Master
*.seed.example.com
User k8s
Worker
User k8s
Worker
User k8s
Worker
[cluster-id]
NodePort Proxy
Service
Seed k8s
Worker
Seed k8s
Worker
Seed k8s
Worker
Seed k8s
Master
VPN Server
Canal Overlay
(kube)
Seed k8s
Worker
Seed k8s
Worker
User k8s Master
API Scheduler Controller etcd
User k8s Master
API Scheduler Controller etcd
User k8s Master
API Scheduler Controller etcd
Migrate Seed Worker Nodes:
1. VPN Overlay, Pause existing Cluster, Machine
Deployment
2. Create 2 new Workers (migration steps similar to
user cluster)
3. Taint existing workers as non-schedule
4. Scale up etcd count of user cluster to 5
⇒ data replicated by etcd
5. Create new LB for NodePort Proxy and update DNS
6. Add 1 new worker and drain 1 old workers
⇒ etcd quorum migrated to new cloud
KubeOne Seed Cluster - Region EU
K8s API Server tunnels
Seed k8s
Master
Seed k8s
Master
*.seed.example.com
User k8s
Worker
User k8s
Worker
User k8s
Worker
[cluster-id]
NodePort Proxy
Service
Seed k8s
Worker
Seed k8s
Worker
Seed k8s
Worker
Seed k8s
Master
VPN Server
Canal Overlay
(kube)
Seed k8s
Worker
Seed k8s
Worker
User k8s Master
API Scheduler Controller etcd
User k8s Master
API Scheduler Controller etcd
User k8s Master
API Scheduler Controller etcd
Migrate Seed Worker Nodes:
1. VPN Overlay, Pause existing Cluster, Machine
Deployment
2. Create 2 new Workers (migration steps similar to
user cluster)
3. Taint existing workers as non-schedule
4. Scale up etcd count of user cluster to 5
⇒ data replicated by etcd
5. Create new LB for NodePort Proxy and update DNS
6. Add 1 new worker and drain 1 old workers
⇒ etcd quorum migrated to new cloud
7. Drain missing worker nodes, cleanup old cloud
KubeOne Seed Cluster - Region EU
K8s API Server tunnels
Seed k8s
Master
Seed k8s
Master
*.seed.example.com
User k8s
Worker
User k8s
Worker
User k8s
Worker
[cluster-id]
NodePort Proxy
Service
Seed k8s
Worker
Seed k8s
Master
VPN Server
Canal Overlay
(kube)
Seed k8s
Worker
Seed k8s
Worker
User k8s Master
API Scheduler Controller etcd
User k8s Master
API Scheduler Controller etcd
User k8s Master
API Scheduler Controller etcd
Migrate Seed Worker Nodes:
1. VPN Overlay, Pause existing Cluster, Machine
Deployment
2. Create 2 new Workers (migration steps similar to
user cluster)
3. Taint existing workers as non-schedule
4. Scale up etcd count of user cluster to 5
⇒ data replicated by etcd
5. Create new LB for NodePort Proxy and update DNS
6. Add 1 new worker and drain 1 old workers
⇒ etcd quorum migrated to new cloud
7. Drain missing worker nodes, cleanup old cloud
8. Scale down etcd count of user cluster to 3
9. Remove VPN Overlay
KubeOne Seed Cluster - Region EU
K8s API Server tunnels
Seed k8s
Master
Seed k8s
Master
*.seed.example.com
User k8s
Worker
User k8s
Worker
User k8s
Worker
[cluster-id]
NodePort Proxy
Service
Seed k8s
Worker
Seed k8s
Master
Canal Overlay
(eth0)
Seed k8s
Worker
Seed k8s
Worker
User k8s Master
API Scheduler Controller etcd
User k8s Master
API Scheduler Controller etcd
User k8s Master
API Scheduler Controller etcd
Outlook
● Automate clean up procedure
○ Idea: switch back cloud provider / machine controller for clean up
● Manage migration by Operator
○ Health checks
○ Wait conditions for migration steps
● Stabilize VPN connection
○ Multiple VPN servers
○ Soft switchover between VPN / Host network overlay
○ Evaluate Wireguard usage
● Automate Load Balancer and DNS management
Any Questions?
Join Us For Our Next Webinar!
February 23 at 8 AM CET / 6 PM AEST
Empower Your DevOps
Organization With Kubernetes
We’re Hiring!
Check Out Our Job Openings:
https://careers.smartrecruiters.com/KubermaticGmbH
kubermatic/kubermatic
@kubermatic
marketing@kubermatic.com

Contenu connexe

Tendances

Top 3 reasons why you should run your Enterprise workloads on GKE
Top 3 reasons why you should run your Enterprise workloads on GKETop 3 reasons why you should run your Enterprise workloads on GKE
Top 3 reasons why you should run your Enterprise workloads on GKESreenivas Makam
 
Effective Building your Platform with Kubernetes == Keep it Simple
Effective Building your Platform with Kubernetes == Keep it Simple Effective Building your Platform with Kubernetes == Keep it Simple
Effective Building your Platform with Kubernetes == Keep it Simple Wojciech Barczyński
 
Kubernetes Helm: Why It Matters
Kubernetes Helm: Why It MattersKubernetes Helm: Why It Matters
Kubernetes Helm: Why It MattersPlatform9
 
Cloud spanner architecture and use cases
Cloud spanner architecture and use casesCloud spanner architecture and use cases
Cloud spanner architecture and use casesGDG Cloud Bengaluru
 
Container Camp London (2016-09-09)
Container Camp London (2016-09-09)Container Camp London (2016-09-09)
Container Camp London (2016-09-09)craigbox
 
CI Implementation with Kubernetes at LivePerson by Saar Demri
CI Implementation with Kubernetes at LivePerson by Saar DemriCI Implementation with Kubernetes at LivePerson by Saar Demri
CI Implementation with Kubernetes at LivePerson by Saar DemriDoiT International
 
What's new in Kubernetes
What's new in KubernetesWhat's new in Kubernetes
What's new in KubernetesDaniel Smith
 
Kubernetes Webinar Series - Exploring Daemon Sets and Jobs
Kubernetes Webinar Series - Exploring Daemon Sets and JobsKubernetes Webinar Series - Exploring Daemon Sets and Jobs
Kubernetes Webinar Series - Exploring Daemon Sets and JobsJanakiram MSV
 
Kubernetes on AWS
Kubernetes on AWSKubernetes on AWS
Kubernetes on AWSGrant Ellis
 
Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...
Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...
Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...Edureka!
 
How to Achieve Canary Deployment on Kubernetes
How to Achieve Canary Deployment on KubernetesHow to Achieve Canary Deployment on Kubernetes
How to Achieve Canary Deployment on KubernetesHanLing Shen
 
GKE Tip Series - Usage Metering
GKE Tip Series -  Usage MeteringGKE Tip Series -  Usage Metering
GKE Tip Series - Usage MeteringSreenivas Makam
 
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Edureka!
 
Kubernetes Application Deployment with Helm - A beginner Guide!
Kubernetes Application Deployment with Helm - A beginner Guide!Kubernetes Application Deployment with Helm - A beginner Guide!
Kubernetes Application Deployment with Helm - A beginner Guide!Krishna-Kumar
 
Learn kubernetes in 90 minutes
Learn kubernetes in 90 minutesLearn kubernetes in 90 minutes
Learn kubernetes in 90 minutesLarry Cai
 
Exploring Magnum and Senlin integration for autoscaling containers
Exploring Magnum and Senlin integration for autoscaling containersExploring Magnum and Senlin integration for autoscaling containers
Exploring Magnum and Senlin integration for autoscaling containersTon Ngo
 
KubeCon EU 2016: Heroku to Kubernetes
KubeCon EU 2016: Heroku to KubernetesKubeCon EU 2016: Heroku to Kubernetes
KubeCon EU 2016: Heroku to KubernetesKubeAcademy
 

Tendances (20)

Top 3 reasons why you should run your Enterprise workloads on GKE
Top 3 reasons why you should run your Enterprise workloads on GKETop 3 reasons why you should run your Enterprise workloads on GKE
Top 3 reasons why you should run your Enterprise workloads on GKE
 
Effective Building your Platform with Kubernetes == Keep it Simple
Effective Building your Platform with Kubernetes == Keep it Simple Effective Building your Platform with Kubernetes == Keep it Simple
Effective Building your Platform with Kubernetes == Keep it Simple
 
Kubernetes Helm: Why It Matters
Kubernetes Helm: Why It MattersKubernetes Helm: Why It Matters
Kubernetes Helm: Why It Matters
 
Kubernetes CI/CD with Helm
Kubernetes CI/CD with HelmKubernetes CI/CD with Helm
Kubernetes CI/CD with Helm
 
Cloud spanner architecture and use cases
Cloud spanner architecture and use casesCloud spanner architecture and use cases
Cloud spanner architecture and use cases
 
My kubernetes toolkit
My kubernetes toolkitMy kubernetes toolkit
My kubernetes toolkit
 
Container Camp London (2016-09-09)
Container Camp London (2016-09-09)Container Camp London (2016-09-09)
Container Camp London (2016-09-09)
 
CI Implementation with Kubernetes at LivePerson by Saar Demri
CI Implementation with Kubernetes at LivePerson by Saar DemriCI Implementation with Kubernetes at LivePerson by Saar Demri
CI Implementation with Kubernetes at LivePerson by Saar Demri
 
What's new in Kubernetes
What's new in KubernetesWhat's new in Kubernetes
What's new in Kubernetes
 
Kubernetes Webinar Series - Exploring Daemon Sets and Jobs
Kubernetes Webinar Series - Exploring Daemon Sets and JobsKubernetes Webinar Series - Exploring Daemon Sets and Jobs
Kubernetes Webinar Series - Exploring Daemon Sets and Jobs
 
Kubernetes on AWS
Kubernetes on AWSKubernetes on AWS
Kubernetes on AWS
 
Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...
Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...
Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...
 
How to Achieve Canary Deployment on Kubernetes
How to Achieve Canary Deployment on KubernetesHow to Achieve Canary Deployment on Kubernetes
How to Achieve Canary Deployment on Kubernetes
 
GKE Tip Series - Usage Metering
GKE Tip Series -  Usage MeteringGKE Tip Series -  Usage Metering
GKE Tip Series - Usage Metering
 
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
 
Kubernetes Application Deployment with Helm - A beginner Guide!
Kubernetes Application Deployment with Helm - A beginner Guide!Kubernetes Application Deployment with Helm - A beginner Guide!
Kubernetes Application Deployment with Helm - A beginner Guide!
 
Learn kubernetes in 90 minutes
Learn kubernetes in 90 minutesLearn kubernetes in 90 minutes
Learn kubernetes in 90 minutes
 
Exploring Magnum and Senlin integration for autoscaling containers
Exploring Magnum and Senlin integration for autoscaling containersExploring Magnum and Senlin integration for autoscaling containers
Exploring Magnum and Senlin integration for autoscaling containers
 
KubeCon EU 2016: Heroku to Kubernetes
KubeCon EU 2016: Heroku to KubernetesKubeCon EU 2016: Heroku to Kubernetes
KubeCon EU 2016: Heroku to Kubernetes
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 

Similaire à How to Migrate 100 Clusters from On-Prem to Google Cloud Without Downtime

Kubermatic CNCF Webinar - start.kubermatic.pdf
Kubermatic CNCF Webinar - start.kubermatic.pdfKubermatic CNCF Webinar - start.kubermatic.pdf
Kubermatic CNCF Webinar - start.kubermatic.pdfLibbySchulze
 
Openstack days sv building highly available services using kubernetes (preso)
Openstack days sv   building highly available services using kubernetes (preso)Openstack days sv   building highly available services using kubernetes (preso)
Openstack days sv building highly available services using kubernetes (preso)Allan Naim
 
Container orchestration and microservices world
Container orchestration and microservices worldContainer orchestration and microservices world
Container orchestration and microservices worldKarol Chrapek
 
Kubernetes @ Squarespace: Kubernetes in the Datacenter
Kubernetes @ Squarespace: Kubernetes in the DatacenterKubernetes @ Squarespace: Kubernetes in the Datacenter
Kubernetes @ Squarespace: Kubernetes in the DatacenterKevin Lynch
 
Kubernetes for Beginners
Kubernetes for BeginnersKubernetes for Beginners
Kubernetes for BeginnersDigitalOcean
 
CN Asturias - Stateful application for kubernetes
CN Asturias -  Stateful application for kubernetes CN Asturias -  Stateful application for kubernetes
CN Asturias - Stateful application for kubernetes Cédrick Lunven
 
Scaling Kubernetes to Support 50000 Services.pptx
Scaling Kubernetes to Support 50000 Services.pptxScaling Kubernetes to Support 50000 Services.pptx
Scaling Kubernetes to Support 50000 Services.pptxthaond2
 
Workday's Next Generation Private Cloud
Workday's Next Generation Private CloudWorkday's Next Generation Private Cloud
Workday's Next Generation Private CloudSilvano Buback
 
kubernetesssssssssssssssssssssssssss.pdf
kubernetesssssssssssssssssssssssssss.pdfkubernetesssssssssssssssssssssssssss.pdf
kubernetesssssssssssssssssssssssssss.pdfbchiriamina2
 
Multi-Cloud Orchestration for Kubernetes with Cloudify
Multi-Cloud Orchestration for Kubernetes with CloudifyMulti-Cloud Orchestration for Kubernetes with Cloudify
Multi-Cloud Orchestration for Kubernetes with CloudifyCloudify Community
 
OSS Japan 2019 service mesh bridging Kubernetes and legacy
OSS Japan 2019 service mesh bridging Kubernetes and legacyOSS Japan 2019 service mesh bridging Kubernetes and legacy
OSS Japan 2019 service mesh bridging Kubernetes and legacySteve Wong
 
Docker on docker leveraging kubernetes in docker ee
Docker on docker leveraging kubernetes in docker eeDocker on docker leveraging kubernetes in docker ee
Docker on docker leveraging kubernetes in docker eeDocker, Inc.
 
Webinar- Tea for the Tillerman
Webinar- Tea for the TillermanWebinar- Tea for the Tillerman
Webinar- Tea for the TillermanCumulus Networks
 
Puppet Camp Berlin 2015: Configuration Management @ CERN: Going Agile with Style
Puppet Camp Berlin 2015: Configuration Management @ CERN: Going Agile with StylePuppet Camp Berlin 2015: Configuration Management @ CERN: Going Agile with Style
Puppet Camp Berlin 2015: Configuration Management @ CERN: Going Agile with StylePuppet
 
Puppet Camp Berlin 2015: Andrea Giardini | Configuration Management @ CERN: G...
Puppet Camp Berlin 2015: Andrea Giardini | Configuration Management @ CERN: G...Puppet Camp Berlin 2015: Andrea Giardini | Configuration Management @ CERN: G...
Puppet Camp Berlin 2015: Andrea Giardini | Configuration Management @ CERN: G...NETWAYS
 
Multi-Cloud Orchestration for Kubernetes with Cloudify - Webinar Presentation
Multi-Cloud Orchestration for Kubernetes with Cloudify - Webinar PresentationMulti-Cloud Orchestration for Kubernetes with Cloudify - Webinar Presentation
Multi-Cloud Orchestration for Kubernetes with Cloudify - Webinar PresentationCloudify Community
 
Overview of OpenDaylight Container Orchestration Engine Integration
Overview of OpenDaylight Container Orchestration Engine IntegrationOverview of OpenDaylight Container Orchestration Engine Integration
Overview of OpenDaylight Container Orchestration Engine IntegrationMichelle Holley
 
Unleashing k8 s to reduce complexities of an entire middleware platform
Unleashing k8 s to reduce complexities of an entire middleware platformUnleashing k8 s to reduce complexities of an entire middleware platform
Unleashing k8 s to reduce complexities of an entire middleware platformLakmal Warusawithana
 

Similaire à How to Migrate 100 Clusters from On-Prem to Google Cloud Without Downtime (20)

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
 
Introduction to istio
Introduction to istioIntroduction to istio
Introduction to istio
 
Openstack days sv building highly available services using kubernetes (preso)
Openstack days sv   building highly available services using kubernetes (preso)Openstack days sv   building highly available services using kubernetes (preso)
Openstack days sv building highly available services using kubernetes (preso)
 
Container orchestration and microservices world
Container orchestration and microservices worldContainer orchestration and microservices world
Container orchestration and microservices world
 
Kubernetes @ Squarespace: Kubernetes in the Datacenter
Kubernetes @ Squarespace: Kubernetes in the DatacenterKubernetes @ Squarespace: Kubernetes in the Datacenter
Kubernetes @ Squarespace: Kubernetes in the Datacenter
 
Kubernetes for Beginners
Kubernetes for BeginnersKubernetes for Beginners
Kubernetes for Beginners
 
CN Asturias - Stateful application for kubernetes
CN Asturias -  Stateful application for kubernetes CN Asturias -  Stateful application for kubernetes
CN Asturias - Stateful application for kubernetes
 
Scaling Kubernetes to Support 50000 Services.pptx
Scaling Kubernetes to Support 50000 Services.pptxScaling Kubernetes to Support 50000 Services.pptx
Scaling Kubernetes to Support 50000 Services.pptx
 
Workday's Next Generation Private Cloud
Workday's Next Generation Private CloudWorkday's Next Generation Private Cloud
Workday's Next Generation Private Cloud
 
kubernetesssssssssssssssssssssssssss.pdf
kubernetesssssssssssssssssssssssssss.pdfkubernetesssssssssssssssssssssssssss.pdf
kubernetesssssssssssssssssssssssssss.pdf
 
Multi-Cloud Orchestration for Kubernetes with Cloudify
Multi-Cloud Orchestration for Kubernetes with CloudifyMulti-Cloud Orchestration for Kubernetes with Cloudify
Multi-Cloud Orchestration for Kubernetes with Cloudify
 
OSS Japan 2019 service mesh bridging Kubernetes and legacy
OSS Japan 2019 service mesh bridging Kubernetes and legacyOSS Japan 2019 service mesh bridging Kubernetes and legacy
OSS Japan 2019 service mesh bridging Kubernetes and legacy
 
Docker on docker leveraging kubernetes in docker ee
Docker on docker leveraging kubernetes in docker eeDocker on docker leveraging kubernetes in docker ee
Docker on docker leveraging kubernetes in docker ee
 
Webinar- Tea for the Tillerman
Webinar- Tea for the TillermanWebinar- Tea for the Tillerman
Webinar- Tea for the Tillerman
 
Puppet Camp Berlin 2015: Configuration Management @ CERN: Going Agile with Style
Puppet Camp Berlin 2015: Configuration Management @ CERN: Going Agile with StylePuppet Camp Berlin 2015: Configuration Management @ CERN: Going Agile with Style
Puppet Camp Berlin 2015: Configuration Management @ CERN: Going Agile with Style
 
Puppet Camp Berlin 2015: Andrea Giardini | Configuration Management @ CERN: G...
Puppet Camp Berlin 2015: Andrea Giardini | Configuration Management @ CERN: G...Puppet Camp Berlin 2015: Andrea Giardini | Configuration Management @ CERN: G...
Puppet Camp Berlin 2015: Andrea Giardini | Configuration Management @ CERN: G...
 
Multi-Cloud Orchestration for Kubernetes with Cloudify - Webinar Presentation
Multi-Cloud Orchestration for Kubernetes with Cloudify - Webinar PresentationMulti-Cloud Orchestration for Kubernetes with Cloudify - Webinar Presentation
Multi-Cloud Orchestration for Kubernetes with Cloudify - Webinar Presentation
 
Overview of OpenDaylight Container Orchestration Engine Integration
Overview of OpenDaylight Container Orchestration Engine IntegrationOverview of OpenDaylight Container Orchestration Engine Integration
Overview of OpenDaylight Container Orchestration Engine Integration
 
Unleashing k8 s to reduce complexities of an entire middleware platform
Unleashing k8 s to reduce complexities of an entire middleware platformUnleashing k8 s to reduce complexities of an entire middleware platform
Unleashing k8 s to reduce complexities of an entire middleware platform
 

Plus de loodse

KubeCon 2018 - Running VM Workloads Side by Side with Container Workloads
KubeCon 2018 -  Running VM Workloads Side by Side with Container Workloads KubeCon 2018 -  Running VM Workloads Side by Side with Container Workloads
KubeCon 2018 - Running VM Workloads Side by Side with Container Workloads loodse
 
Kubernetes ClusterAPI
Kubernetes ClusterAPIKubernetes ClusterAPI
Kubernetes ClusterAPIloodse
 
One cluster to serve them all
One cluster to serve them allOne cluster to serve them all
One cluster to serve them allloodse
 
k8s NodeSet
k8s NodeSet k8s NodeSet
k8s NodeSet loodse
 
Kubernetes Workshop
Kubernetes WorkshopKubernetes Workshop
Kubernetes Workshoploodse
 
Kubernetes Frankfurt
Kubernetes FrankfurtKubernetes Frankfurt
Kubernetes Frankfurtloodse
 
Docker meets Kubernetes
Docker meets KubernetesDocker meets Kubernetes
Docker meets Kubernetesloodse
 

Plus de loodse (7)

KubeCon 2018 - Running VM Workloads Side by Side with Container Workloads
KubeCon 2018 -  Running VM Workloads Side by Side with Container Workloads KubeCon 2018 -  Running VM Workloads Side by Side with Container Workloads
KubeCon 2018 - Running VM Workloads Side by Side with Container Workloads
 
Kubernetes ClusterAPI
Kubernetes ClusterAPIKubernetes ClusterAPI
Kubernetes ClusterAPI
 
One cluster to serve them all
One cluster to serve them allOne cluster to serve them all
One cluster to serve them all
 
k8s NodeSet
k8s NodeSet k8s NodeSet
k8s NodeSet
 
Kubernetes Workshop
Kubernetes WorkshopKubernetes Workshop
Kubernetes Workshop
 
Kubernetes Frankfurt
Kubernetes FrankfurtKubernetes Frankfurt
Kubernetes Frankfurt
 
Docker meets Kubernetes
Docker meets KubernetesDocker meets Kubernetes
Docker meets Kubernetes
 

Dernier

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 

Dernier (20)

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 

How to Migrate 100 Clusters from On-Prem to Google Cloud Without Downtime

  • 1. A Future Journey: How to Migrate 100 Clusters to GCP without Downtime?
  • 2. Tobias Schneck Head of Professional Service toschneck @toschneck tobi@kubermatic.com Manuel Stößel Systems Architect / Tech Lead @ManuStoessel @Manuel_Stoessel manuel@kubermatic.com What Else? • Part of Professional Services @ Kubermatic • Supporting customers on their cloud-native journey • Geeking out over Kubernetes and adjacent technologies
  • 4. Reasons for Cluster Migration Scenarios ● Business Reasons ● Better contract/conditions at another cloud provider ⇒ cost saving ● Data center migration to/from (cloud) providers ● Multi cloud strategy ⇒ decrease dependency to existing provider ● Technical Reasons ● Location migration of data centers ● Migrate to other network segments ● Adaption of on-prem / cloud improvements at new data center provider ● Data location of cloud offered service e.g. machine learning data
  • 5. What Are the Main Challenges?
  • 6. Kubernetes Abstracts Infrastructure, But: ● Consummation of infrastructure resources ○ (Virtual) Machines ○ Network: ■ Network IP Address Spaces ■ Routing, Firewall ■ Ingress / Egress Traffic ○ DNS ○ External Storage Systems ● Cloud dependent Kubernetes components ○ Cloud Controller Manager ■ Node controller - responsible for updating kubernetes nodes ■ Service controller - responsible for services of type LoadBalancer ■ Route controller - responsible for setting up network routes ○ Storage Classes ○ (sometimes) Overlay Networking
  • 7. K8s Master API Server Dashboard Scheduler kubelet kubelet kubelet kubelet Container Registry etcd Controllers web browsers kubectl web browsers Config file Image CNI - Plugin Network (e.g. Flannel, Calico) Developer Developer
  • 8. ⇒ Application workload has the highest priority! ● Ensure fundamental networking rules at any time ○ All containers within a pod can communicate (L4) with each other unimpeded. ○ All pods can communicate with all other pods without NAT. ○ All nodes can communicate with all pods (and vice-versa) without NAT. ○ The IP that a pod sees itself as is the same IP that others see it as. ● External dependencies need to be reachable ○ External routed IPs for Load Balancers / Node Port Service ○ DNS Names need to be reachable ● Storage ○ State needs to migrated without data loss Migration Without Downtime
  • 9. Scale Level of 100 Clusters ● Larger organizations running a lot of clusters ⇒ different locations, org units, time zones ● Cluster users are only consumers ⇒ following the cluster as a service approach ● Cluster connection and secrets needs to be stable => no change of interface
  • 11. Status Quo ● Multi Cloud Setup with Kubermatic Kubernetes Platform (KKP) ○ Seed cluster hold containerized control plane of user clusters ○ Worker nodes provisioned by Cluster API conform Kubermatic machine-controller ○ Canal as default overlay network ● Target ○ Migrate user and seed cluster control planes and worker to different cloud ○ Keep external Cluster Endpoints stable ■ Control Plan: Kubernetes API Server endpoints ■ Application: DNS, Ingress ○ Out-of-Scope (for now): Storage replication ■ Assumption: Application Layer manages storage replication, e.g. etcd
  • 12. Kubermatic Kubermatic Master Cluster KubeOne Seed Cluster - Region EU User k8s Worker User k8s Worker User k8s Master API Controller Scheduler etcd User k8s Worker User k8s Worker User k8s Master API Controller Scheduler etcd
  • 13. Recommended Prerequisites ● Announce maintenance window and block cluster updates ● Ensure backups and recovery procedure for ○ Seed and user clusters ○ Application workload ● Create target cloud cluster as reference ● Ensure control of DNS entries
  • 15. 1) Migrate User Cluster Workers ● Create new worker nodes in target cloud ⇒ Machine controller with new Machine Deployment at target cloud ● User worker nodes and Pods need to talk to each other at any time ⇒ Strap a VPN overlay by DaemonSets across current and target cloud ⇒ Route overlay CNI traffic through VPN network ● Ensure reachability => Keep old and create new cluster Ingress endpoints => Transfer workload to new cloud => Delete after workload / connectivity is ensured
  • 16. KubeOne Seed Cluster - Region EU User k8s Master API Controller Scheduler etcd User k8s Worker VPN Server Machine Controller Application User k8s Worker Application *.cluster-1.example.com K8s API Server tunnel Canal Overlay (eth0) MetalLB Migrate User Cluster Worker Nodes:
  • 17. KubeOne Seed Cluster - Region EU User k8s Master API Controller Scheduler etcd User k8s Worker VPN Server Machine Controller User k8s Worker Application Application *.cluster-1.example.com K8s API Server tunnel Canal Overlay (kube) Migrate User Cluster Worker Nodes: 1. VPN Daemon Set with client-to-client communication 2. Route Overlay Traffic over VPN interface 3. Pause existing Cluster & Machine Deployment VPN Client VPN Client MetalLB
  • 18. KubeOne Seed Cluster - Region EU User k8s Master API Controller Scheduler etcd User k8s Worker Machine Controller VPN Server User k8s Worker Application Application *.cluster-1.example.com K8s API Server tunnel Canal Overlay (kube) Migrate User Cluster Worker Nodes: 1. VPN Daemon Set with client-to-client communication 2. Route Overlay Traffic over VPN interface 3. Pause existing Cluster & Machine Deployment 4. Update Cluster Spec & Cloud Credentials 5. Unpause Cluster with new Cloud Provider 6. Apply new Machine Deployment VPN Client VPN Client User k8s Worker VPN Client MetalLB User k8s Worker VPN Client GCP LB
  • 19. KubeOne Seed Cluster - Region EU User k8s Master API Controller Scheduler etcd User k8s Worker Machine Controller User k8s Worker *.cluster-1.example.com K8s API Server tunnel Canal Overlay (kube) Migrate User Cluster Worker Nodes: 1. VPN Daemon Set with client-to-client communication 2. Route Overlay Traffic over VPN interface 3. Pause existing Cluster & Machine Deployment 4. Update Cluster Spec & Cloud Credentials 5. Unpause Cluster with new Cloud Provider 6. Apply new Machine Deployment 7. Test new cluster ingress entrypoint 8. Migrate Workload and update DNS VPN Client VPN Client User k8s Worker VPN Client MetalLB GCP LB User k8s Worker VPN Client Application Application
  • 20. KubeOne Seed Cluster - Region EU User k8s Master API Controller Scheduler etcd VPN Server Machine Controller *.cluster-1.example.com K8s API Server tunnel Migrate User Cluster Worker Nodes: 1. VPN Daemon Set with client-to-client communication 2. Route Overlay Traffic over VPN interface 3. Pause existing Cluster & Machine Deployment 4. Update Cluster Spec & Cloud Credentials 5. Unpause Cluster with new Cloud Provider 6. Apply new Machine Deployment 7. Test new cluster ingress entrypoint 8. Migrate Workload and update DNS 9. Cleanup old cloud resource User k8s Worker GCP LB User k8s Worker Application Application Canal Overlay (eth0)
  • 23. Kubermatic KubeOne Master Cluster migrated KubeOne Seed Cluster - Region EU User k8s Worker User k8s Worker User k8s Master API Controller Scheduler etcd migrated User k8s Worker User k8s Worker User k8s Master API Controller Scheduler etcd
  • 24. 2) Migrate Seed Cluster ● Create new seed master nodes at new cloud => New Kubernetes API Load Balancer => API Endpoint needs to be updated by DNS => Block seed cluster upgrades to ensure worst case recovery ● Migrate user cluster control plane => Handle migration the same way (like user cluster workload) => Ensure etcd quorum and migration by data replication => Block user cluster upgrades to ensure worst case recovery
  • 25. User k8s Master API Scheduler Controller etcd KubeOne Seed Cluster - Region EU Seed k8s Master Seed k8s Master Seed k8s Master seed-k8s-api.example.com Seed k8s Worker Seed k8s Worker Seed k8s Worker Migrate Seed Master Nodes: User k8s Master API Scheduler Controller etcd User k8s Master API Scheduler Controller etcd
  • 26. KubeOne Seed Cluster - Region EU Seed k8s Master Seed k8s Master Seed k8s Master seed-k8s-api.example.com Seed k8s Worker Seed k8s Worker Seed k8s Worker Migrate Seed Master Nodes: 1. Setup VPN Overlay 2. Pause existing Cluster & Machine Deployment 3. Create and join new 2 Master Nodes Seed k8s Master Seed k8s Master VPN Server Canal Overlay (kube) User k8s Master API Scheduler Controller etcd User k8s Master API Scheduler Controller etcd User k8s Master API Scheduler Controller etcd
  • 27. KubeOne Seed Cluster - Region EU seed-k8s-api.example.com Seed k8s Worker Seed k8s Worker Seed k8s Worker Migrate Seed Master Nodes: 1. Setup VPN Overlay 2. Pause existing Cluster & Machine Deployment 3. Create and join new 2 Master Nodes 4. Add new LB Service & Update DNS 5. Remove 2 old Master Nodes and move etcd quorum to new cloud Seed k8s Master Seed k8s Master VPN Server Canal Overlay (kube) Seed k8s Master User k8s Master API Scheduler Controller etcd User k8s Master API Scheduler Controller etcd User k8s Master API Scheduler Controller etcd
  • 28. KubeOne Seed Cluster - Region EU Seed k8s Master seed-k8s-api.example.com Seed k8s Worker Seed k8s Worker Seed k8s Worker Migrate Seed Master Nodes: 1. Setup VPN Overlay 2. Pause existing Cluster & Machine Deployment 3. Create and join new 2 Master Nodes 4. Add new LB Service & Update DNS 5. Remove 2 old Master Nodes and move etcd quorum to new cloud 6. Create 3rd Master Node at new cloud and remove last old Master Node Seed k8s Master Seed k8s Master VPN Server Canal Overlay (kube) User k8s Master API Scheduler Controller etcd User k8s Master API Scheduler Controller etcd User k8s Master API Scheduler Controller etcd
  • 29. Migrate Seed Cluster Workers Solution Approach
  • 30. KubeOne Seed Cluster - Region EU K8s API Server tunnels Seed k8s Master Seed k8s Master Seed k8s Master *.seed.example.com User k8s Worker User k8s Worker User k8s Worker [cluster-id] NodePort Proxy Service Seed k8s Worker Seed k8s Worker Seed k8s Worker VPN Server Canal Overlay (kube) Migrate Seed Worker Nodes: User k8s Master API Scheduler Controller etcd User k8s Master API Scheduler Controller etcd User k8s Master API Scheduler Controller etcd
  • 31. KubeOne Seed Cluster - Region EU K8s API Server tunnels Seed k8s Master Seed k8s Master *.seed.example.com User k8s Worker User k8s Worker User k8s Worker [cluster-id] NodePort Proxy Service Seed k8s Worker Seed k8s Worker Seed k8s Worker Seed k8s Master VPN Server Canal Overlay (kube) Migrate Seed Worker Nodes: 1. VPN Overlay, Pause existing Cluster, Machine Deployment 2. Create 2 new Workers (migration steps similar to user cluster) Seed k8s Worker Seed k8s Worker User k8s Master API Scheduler Controller etcd User k8s Master API Scheduler Controller etcd User k8s Master API Scheduler Controller etcd
  • 32. KubeOne Seed Cluster - Region EU K8s API Server tunnels Seed k8s Master Seed k8s Master *.seed.example.com User k8s Worker User k8s Worker User k8s Worker [cluster-id] NodePort Proxy Service Seed k8s Worker Seed k8s Worker Seed k8s Worker Seed k8s Master VPN Server Canal Overlay (kube) Migrate Seed Worker Nodes: 1. VPN Overlay, Pause existing Cluster, Machine Deployment 2. Create 2 new Workers (migration steps similar to user cluster) 3. Taint existing workers as non-schedule 4. Scale up etcd count of user cluster to 5 ⇒ data replicated by etcd Seed k8s Worker Seed k8s Worker User k8s Master API Scheduler Controller etcd User k8s Master API Scheduler Controller etcd User k8s Master API Scheduler Controller etcd
  • 33. Migrate Seed Worker Nodes: 1. VPN Overlay, Pause existing Cluster, Machine Deployment 2. Create 2 new Workers (migration steps similar to user cluster) 3. Taint existing workers as non-schedule 4. Scale up etcd count of user cluster to 5 ⇒ data replicated by etcd 5. Create new LB for NodePort Proxy and update DNS KubeOne Seed Cluster - Region EU K8s API Server tunnels Seed k8s Master Seed k8s Master *.seed.example.com User k8s Worker User k8s Worker User k8s Worker [cluster-id] NodePort Proxy Service Seed k8s Worker Seed k8s Worker Seed k8s Worker Seed k8s Master VPN Server Canal Overlay (kube) Seed k8s Worker Seed k8s Worker User k8s Master API Scheduler Controller etcd User k8s Master API Scheduler Controller etcd User k8s Master API Scheduler Controller etcd
  • 34. Migrate Seed Worker Nodes: 1. VPN Overlay, Pause existing Cluster, Machine Deployment 2. Create 2 new Workers (migration steps similar to user cluster) 3. Taint existing workers as non-schedule 4. Scale up etcd count of user cluster to 5 ⇒ data replicated by etcd 5. Create new LB for NodePort Proxy and update DNS 6. Add 1 new worker and drain 1 old workers ⇒ etcd quorum migrated to new cloud KubeOne Seed Cluster - Region EU K8s API Server tunnels Seed k8s Master Seed k8s Master *.seed.example.com User k8s Worker User k8s Worker User k8s Worker [cluster-id] NodePort Proxy Service Seed k8s Worker Seed k8s Worker Seed k8s Worker Seed k8s Master VPN Server Canal Overlay (kube) Seed k8s Worker Seed k8s Worker User k8s Master API Scheduler Controller etcd User k8s Master API Scheduler Controller etcd User k8s Master API Scheduler Controller etcd
  • 35. Migrate Seed Worker Nodes: 1. VPN Overlay, Pause existing Cluster, Machine Deployment 2. Create 2 new Workers (migration steps similar to user cluster) 3. Taint existing workers as non-schedule 4. Scale up etcd count of user cluster to 5 ⇒ data replicated by etcd 5. Create new LB for NodePort Proxy and update DNS 6. Add 1 new worker and drain 1 old workers ⇒ etcd quorum migrated to new cloud 7. Drain missing worker nodes, cleanup old cloud KubeOne Seed Cluster - Region EU K8s API Server tunnels Seed k8s Master Seed k8s Master *.seed.example.com User k8s Worker User k8s Worker User k8s Worker [cluster-id] NodePort Proxy Service Seed k8s Worker Seed k8s Master VPN Server Canal Overlay (kube) Seed k8s Worker Seed k8s Worker User k8s Master API Scheduler Controller etcd User k8s Master API Scheduler Controller etcd User k8s Master API Scheduler Controller etcd
  • 36. Migrate Seed Worker Nodes: 1. VPN Overlay, Pause existing Cluster, Machine Deployment 2. Create 2 new Workers (migration steps similar to user cluster) 3. Taint existing workers as non-schedule 4. Scale up etcd count of user cluster to 5 ⇒ data replicated by etcd 5. Create new LB for NodePort Proxy and update DNS 6. Add 1 new worker and drain 1 old workers ⇒ etcd quorum migrated to new cloud 7. Drain missing worker nodes, cleanup old cloud 8. Scale down etcd count of user cluster to 3 9. Remove VPN Overlay KubeOne Seed Cluster - Region EU K8s API Server tunnels Seed k8s Master Seed k8s Master *.seed.example.com User k8s Worker User k8s Worker User k8s Worker [cluster-id] NodePort Proxy Service Seed k8s Worker Seed k8s Master Canal Overlay (eth0) Seed k8s Worker Seed k8s Worker User k8s Master API Scheduler Controller etcd User k8s Master API Scheduler Controller etcd User k8s Master API Scheduler Controller etcd
  • 37. Outlook ● Automate clean up procedure ○ Idea: switch back cloud provider / machine controller for clean up ● Manage migration by Operator ○ Health checks ○ Wait conditions for migration steps ● Stabilize VPN connection ○ Multiple VPN servers ○ Soft switchover between VPN / Host network overlay ○ Evaluate Wireguard usage ● Automate Load Balancer and DNS management
  • 39. Join Us For Our Next Webinar! February 23 at 8 AM CET / 6 PM AEST Empower Your DevOps Organization With Kubernetes
  • 40. We’re Hiring! Check Out Our Job Openings: https://careers.smartrecruiters.com/KubermaticGmbH kubermatic/kubermatic @kubermatic marketing@kubermatic.com