SlideShare a Scribd company logo
Multitenancy in C5
Container based tenant isolation
Imesh Gunaratne
Senior Technical Lead, WSO2
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
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
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
A Multitenant Carbon Server Cluster in C4
Load Balancer
Carbon Server JVM 1 Carbon Server JVM 2 Carbon Server JVM n
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
Carbon Server Clusters in C5
Load Balancer 1 Load Balancer 2
Tenant 1 Carbon Cluster Tenant 2 Carbon Cluster
Kubernetes Namespaces
Namespace A Namespace B Namespace X
Kubernetes Cluster
P1RC P2 Pb
S1 SaHPA
RC
HPA
SLB
P1RC P2 Pd
S1 ScHPA
RC
HPA
SLB
P1RC P2 Pf
S1 SeHPA
RC
HPA
SLB
Multitenancy in C5 with Kubernetes
Tenant 1 Namespace Tenant 2 Namespace
Service - BarService - Foo
RC
HPA
SLB SLB
RC
HPA
Kubernetes Cluster
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/
Thank you!

More Related Content

Multitenancy in WSO2 Carbon 5 (C5)

  • 1. Multitenancy in C5 Container based tenant isolation Imesh Gunaratne Senior Technical Lead, WSO2
  • 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
  • 8. Kubernetes Namespaces Namespace A Namespace B Namespace X Kubernetes Cluster P1RC P2 Pb S1 SaHPA RC HPA SLB P1RC P2 Pd S1 ScHPA RC HPA SLB P1RC P2 Pf S1 SeHPA RC HPA SLB
  • 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/