2. Agenda
● An Introduction to Multitenancy
● Multitenancy Architecture in C4
● A Multitenant Carbon Server Cluster in C4
● Multitenancy Architecture in C5
● Carbon Server Clusters in C5
● Kubernetes Namespaces
● Multitenancy in C5 with Kubernetes
● Accessing Carbon Clusters in Kubernetes
3. Multitenancy
Multitenancy is a reference to the mode of operation of
software where multiple independent instances of one
or multiple applications operate in a shared environment
- Gartner
http://www.gartner.com/it-glossary/multitenancy
4. Multitenancy Architecture in C4
https://hostname:port/t/foo.com/services/baz
https://hostname:port/t/bar.com/services/baz
Tenant 1
Users
Execution
Data
Users
Execution
Data
Tenant 2
Carbon Server JVM
https://docs.wso2.com/display/Carbon420/Multitenancy
5. A Multitenant Carbon Server Cluster in C4
Load Balancer
Carbon Server JVM 1 Carbon Server JVM 2 Carbon Server JVM n
6. Multitenancy Architecture in C5
https://hostname:port/services/baz https://hostname:port/services/baz
Tenant 1
Users
Execution
Data
Carbon Server JVM 1
Tenant 2
Users
Execution
Data
Carbon Server JVM 2
7. Carbon Server Clusters in C5
Load Balancer 1 Load Balancer 2
Tenant 1 Carbon Cluster Tenant 2 Carbon Cluster
9. Multitenancy in C5 with Kubernetes
Tenant 1 Namespace Tenant 2 Namespace
Service - BarService - Foo
RC
HPA
SLB SLB
RC
HPA
Kubernetes Cluster
10. Accessing Carbon Clusters in Kubernetes
● Using services via nodes
○ https://<node-ip>:<service-node-port>/
● Using ingress/service load balancers (slb)
○ Access via nodes
■ https://<node-ip>:<slb-port>/
○ K8S SDN connected to LAN/WAN
■ https://<slb-ip>:<slb-port>/
● Using kube-api server
○ https://<kubernetes-master>:<api-server-
port>/api/v1/proxy/namespaces/<namespace>/services/<service
-name>/http://kubernetes.io/docs/user-guide/services/