Multitenancy in WSO2 Carbon 5 (C5)
-
Upload
imesh-gunaratne -
Category
Technology
-
view
341 -
download
1
Transcript of Multitenancy in WSO2 Carbon 5 (C5)
Multitenancy in C5Container based tenant isolation
Imesh GunaratneSenior 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 C4https://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 C5https://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!