This document discusses implementing multi-cloud deployments using Kubernetes. It outlines two reference architectures for Kubernetes multi-cloud - a monolithic approach with a single load balancer and a decoupled hierarchical approach. The core challenges of location affinity, cross-cluster service discovery, scheduling and migration are also covered. WSO2 Private PaaS is presented as a solution that addresses these challenges through network partitioning, a composite application model and runtime topology definitions. A comparison of features between Kubernetes and WSO2 Private PaaS is provided. The document concludes with WSO2's vision to contribute to Kubernetes and potentially use it as the foundation for their PaaS and microservices platform going forward.
Report
Share
Report
Share
1 of 24
Download to read offline
More Related Content
Scale into Multi-Cloud with Containers
1. Scale into Multi Cloud
with Containers
Imesh Gunaratne
Senior Technical Lead, WSO2
2. Agenda
• WSO2 Carbon Reference Architectures for Kubernetes
• Implementing a Multi-Cloud with Kubernetes
• WSO2 Private PaaS Multi-Cloud Solution
• Kubernetes, WSO2 Private PaaS Feature Comparison
• WSO2 Vision on Kubernetes
4. WSO2 Carbon Worker/Manager
Reference Architecture for Kubernetes
Pod 1 Pod 2
Manager Cluster
Services
Pod 3 Pod 4 Pod n
Worker Cluster
Services
Manager
Replication
Controller
Worker Replication
Controller
Client
Gov
Reg
Conf
Reg
User
Store
5. WSO2 API-M Reference Architecture
for Kubernetes
Pod 1
Gateway Mgr
Services
Pod 2 Pod 3
Gateway Worker
Services
Client
Pod 4 Pod 5
Key Manager
Services
Pod 6 Pod 7
Store Services
Gateway
Mgr RC
Gateway
Worker RC
Key
Manager RC
Store RCGov
Reg
Conf
Reg
User
Store
API-M
DB
A volume mount for
synchronizing API
artifacts
Pod 8 Pod 9
Publisher Services
Publisher
RC
7. Why do we need a Multi-Cloud?
● Capacity overflow
○ Overflow from on-premise clusters to public when run out of
on-premise capacity
● Sensitive workloads
○ Privacy-sensitive workloads to run on on-premise clusters
● Vendor lock-in avoidance
○ Workloads to run across multiple cloud providers
● High availability
○ Multiple availability zones within a single cloud provider
https://github.com/kubernetes/kubernetes/blob/master/docs/proposals/federation.md
10. Core Challenges of Implementing a Multi-
Cloud
● Location affinity
○ Distributed applications
■ Strictly coupled
■ Strictly decoupled
■ Preferentially coupled
○ Can pods of a single distributed application partitioned across
more than one cluster?
● Cross-cluster service discovery
○ Use DNS
https://github.com/kubernetes/kubernetes/blob/master/docs/proposals/federation.md
11. Core Challenges of Implementing a Multi-
Cloud
● Cross-cluster scheduling
○ Closely related to location affinity
○ Have a layer on top of k8s
clusters to handle resource
creation
○ Make policy-based decisions
● Cross-cluster migration
○ Moving a distributed application
from one k8s cluster to another
https://github.com/kubernetes/kubernetes/blob/master/docs/proposals/federation.md
12. Kubernetes Cluster Federation Proposed
Architecture (decoupled & hierarchical)
https://github.com/kubernetes/kubernetes/blob/master/docs/proposals/federation.md
Ubernetes Control Plane
Kubernetes Cluster 1
GCE
Kubernetes Cluster 2
AWs
Kubernetes Cluster n
Private
Standard
Kubernetes API
Ubernetes API
Policy Engine
Auth
Desired
Federation
State
Migration
Controllers
15. Network Partitioning
IaaS Provider 1 IaaS Provider n
Region 1 Region 2
Zone A Zone B
Network Partition 1
Partition 1 Partition 2
Network Partition 2 Network Partition 3
Region 1
https://docs.wso2.com/display/PP410/Network+Partitions
20. Feature Comparison
Kubernetes WSO2 Private PaaS
Carbon Cluster Discovery Available Available
Artifact Distribution Available (Rolling update) Available (Git based)
Centralized Logging Available (kubectl) Available (Thrift, DAS)
Monitoring & Metering Available (cAdvisor,
heapster, grafana)
Available (DAS)
Multi-Tenancy Available (Namespaces) Available (Carbon)
Load Balancing Available (nginx) Available (nginx, haproxy,
LVS, ec2)
21. Feature Comparison (cont.)
Kubernetes WSO2 Private PaaS
Horizontal Pod
Autoscaling
Available with v1.2.0-
alpha.2
Available
Multi-Cloud Deployment A proposal available Available
Horizontal VM
Autoscaling
Being discussed Available
Composite Application
Model
Being discussed Available
23. WSO2 Vision on Kubernetes
● Contribute to Kubernetes on implementing:
○ Autoscaling (Horizontal Pod/Node + Vertical Pod scaling)
○ Kubernetes Cluster Federation (Ubernetes)
○ Composite Application Model (may be using TOSCA, CAMP,
etc)
● Use Kubernetes in the future:
○ As the WSO2 PaaS
○ As the Microservices solution platform
○ Replace in JVM multi-tenancy using Kubernetes namespaces