SlideShare a Scribd company logo
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

More Related Content

What's hot

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
 

What's hot (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
 

Similar to 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
 

Similar to 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
 

More from 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
 

More from 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
 

Recently uploaded

Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeCzechDreamin
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...Product School
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka DoktorováCzechDreamin
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1DianaGray10
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekCzechDreamin
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupCatarinaPereira64715
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...CzechDreamin
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...Product School
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...CzechDreamin
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityScyllaDB
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCzechDreamin
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomCzechDreamin
 
The architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdfThe architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdfalexjohnson7307
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaCzechDreamin
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Product School
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaRTTS
 

Recently uploaded (20)

Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
The architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdfThe architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdf
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 

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