Beskow, Paul & Vik, Knut-Helge & Halvorsen, Pål & Griwodz, Carsten. (2009).
The partial migration of game state and dynamic server selection to reduce latency. Multimedia Tools Appl..
45. 83-107. 10.1007/s11042-009-0287-7.
Slide 47
Slide 47 text
Synchronising Deployments across
multiple clusters
Slide 48
Slide 48 text
Storage
Slide 49
Slide 49 text
Data replication
Slide 50
Slide 50 text
Split-brain problem
Slide 51
Slide 51 text
Possible setups
Slide 52
Slide 52 text
One cluster across AZs in one region
Slide 53
Slide 53 text
One cluster across regions
Slide 54
Slide 54 text
Multiple clusters connected via VPN
Slide 55
Slide 55 text
One cluster setup
Slide 56
Slide 56 text
One Kubernetes cluster across
multiple availability zones
Slide 57
Slide 57 text
Zone 1 Zone 2
Kubernetes Master Components
Nginx
Nginx
Nginx Service
Curl
Slide 58
Slide 58 text
Easiest option
Slide 59
Slide 59 text
Low latencies
Slide 60
Slide 60 text
You can use one network
Slide 61
Slide 61 text
All pods and services can talk with
each other
Slide 62
Slide 62 text
One cluster => one internal DNS
Slide 63
Slide 63 text
Service Discovery and internal load
balancing works
Slide 64
Slide 64 text
External LoadBalancers work
Slide 65
Slide 65 text
Zone 1 Zone 2
Kubernetes Master Components
Nginx
Nginx
Nginx Service
Curl
LB
Slide 66
Slide 66 text
You can mount storage across AZ
Slide 67
Slide 67 text
One cluster state => One deployment
Slide 68
Slide 68 text
But what if the whole region is
down?
Slide 69
Slide 69 text
One Kubernetes cluster across
multiple regions and VPN connection
between networks
Slide 70
Slide 70 text
Region 1 Region 2
WireGuard VPN
Kubernetes Master Components
Nginx
Nginx
Nginx Service
Curl
Slide 71
Slide 71 text
Latencies get higher by distance
Slide 72
Slide 72 text
You need a VPN to connect the
networks
Slide 73
Slide 73 text
WireGuard as a VPN
Slide 74
Slide 74 text
https:/
/github.com/squat/kilo
Slide 75
Slide 75 text
Kilo gets all Nodes from Kubernetes
Slide 76
Slide 76 text
Discovers regions and zones by
Kubernetes Node labels
Slide 77
Slide 77 text
Configures WireGuard
Slide 78
Slide 78 text
Routing tables
Slide 79
Slide 79 text
All pods and services can talk with
each other
Slide 80
Slide 80 text
One cluster => one internal DNS
Slide 81
Slide 81 text
Service Discovery and internal load
balancing works
Slide 82
Slide 82 text
You need a solution for external load
balancing
Slide 83
Slide 83 text
Region 1 Region 2
WireGuard VPN
Kubernetes Master Components
Nginx
Nginx
Nginx Service
Curl
LB LB
Slide 84
Slide 84 text
You have to replicate storage
yourself
Slide 85
Slide 85 text
Not every Storage provider supports
dynamic volume provisioning
Slide 86
Slide 86 text
One cluster state => One deployment
Slide 87
Slide 87 text
Demo
Slide 88
Slide 88 text
Multi cluster setup
Slide 89
Slide 89 text
Connecting multiple clusters with a
VPN
Slide 90
Slide 90 text
Cluster 1 Cluster 2
WireGuard VPN
Kubernetes Master
Components
Kubernetes Master
Components
Nginx
Nginx
Nginx Service Nginx Service
Curl
Slide 91
Slide 91 text
WireGuard as a VPN
Slide 92
Slide 92 text
https:/
/github.com/squat/kilo
Slide 93
Slide 93 text
All pods and services can talk with
each other
Slide 94
Slide 94 text
Separate clusters => separate
internal DNS
Slide 95
Slide 95 text
For service discovery configure each
internal DNS to resolve to other
clusters