SlideShare a Scribd company logo
Sanjeev Rampal
Principal Engineer
Cisco Systems
Adrian Ludwin
Google Cloud
Secure Multitenancy
In Kubernetes
• Overview and Architecture
• What is Kubernetes Multitenancy ?
• Architectural models for Multitenancy
• Community initiatives: Multitenancy control plane
• Tenant controller & namespace grouping
• Hierarchical namespaces
• Virtual clusters
• Community initiatives: Data plane and benchmarking
• Benchmarking
• Data plane models
• Demo
• Q & A
Agenda
Overview & Architecture
• What is it ?
• Ability to share a Kubernetes cluster between multiple independent teams
• Why is it useful ?
• Improved resource efficiencies (esp when move to containers on BM)
• Reduced cluster sprawl
• Lower capex and opex for the cluster operator
• Resource usage burstability -> Higher application performance
• Essentially a bin-packing & statistical multiplexing problem
• Potential challenges
• Kubernetes not designed for Multitenancy at its core
• Unlike say Openstack, there are no core K8s resources for ”Users”, “Tenants”, “Projects”
• Wide spectrum of loosely defined scenarios and potential use case
• Defining “Standardization” vs best practice vs implementation choice
What is Kubernetes Multitenancy ?
The community feels this area needs work
• The New Stack poll (newstack.io November 2019)
• Categories of Multitenancy (high level use cases)
• “Soft” Multitenancy
• Ex. Multiple teams within the same enterprise sharing a K8S cluster
• “Hard” Multitenancy
• Ex. Service provider hosting multiple independent tenants on a shared cluster
• “Coke & Pepsi on the same K8s cluster”
• Other
• SaaS multitenancy
What is Kubernetes Multitenancy ? …
• Available solutions
1. Community Kubernetes + DIY solution using namespaces, network
policies etc
2. Vendor/ commercial distributions with features built on these
• E.g. Openshift “Projects”, Rancher “Projects”
3. Emerging community initiatives tracked within K8s Multitenancy
Working group & others
What is Kubernetes Multitenancy ? …
Architectural Models
VM VM VM
Hypervisor
k8s1 k8s2 k8s3
IaaS
ex. vSphere
k8s
cluster
mgmt
T1 T2 T3
BM BM BM BM
BM BMBMBM
ns1 ns2 ns3 ns-a ns-b ns-x ns-y
K8S
T1 T2 T3
Super K8S
BM BM BM BM
k8s1 k8s2 k8s3
T1 T2 T3
BM BMBMBM
K8S T1 T2 T3
A
B
C
D
Architecture Options
Multitenancy
Architecture Model
Resource
efficiency
Level of
Tenant
isolation
Tenant/
application
Config
restrictions
All “Cloud
Native”
architecture
Architecture maturity &
production readiness
A: Multiple K8S
clusters on top of a
Virtualization IaaS
Low-
medium
High No No (multiple
separate
platforms,
orch.)
Medium-High
B: Namespace
grouping with
Tenant resources
High Medium-
High
Some
restrictions
eg cluster
scoped rescs.
Yes Medium
C: Virtual
Kubernetes Clusters
High High No (?) Yes Early
D: Core Kubernetes
change (Tenant as
1st class resource)
High High No (?) Yes (in
theory)
Very low (design does
not exist)
Mapping Tenants, Applications, Services
Tenant-1
Application-1
Namespace-1
S1 S2 S3
Tenant-1
Application-1
N1
S1 S2 S3
N2 N3
Tenant-1
Application-1
N1
S1 S2 S3
N2
Virtual
Cluster1
Application-2
S4
N3 N4 N5 N6
1 tenant <> 1 app <> 1 NS
(M micro-services all in 1 NS)
Need to resolve naming conflicts
1 tenant <> 1 app <> M NS
(1 service per NS)
Better service portability
1 tenant <> M apps <> mix of H-NSs & VCs
Tenant vs Application Security Responsibility Model
Tenant-A
resources
Tenant-B
resources
Cluster control
Plane resources
(k8s, monitoring etc)
Cluster and provider infrastructure resources
Application Security tools
e.g. Aqua
Community Initiatives: Multitenancy
Control Plane
Operational Model: Personas and workflows
Cluster-admin provisions K8S
cluster with 1 (of N)
recommended security profiles
Cluster-admin provisions
Tenant template and
Namespace template objects
Cluster-admin Tenant-admin Tenant-user
Tenant-admin provisions a
new tenant referring to
these templates
Tenant-admin provisions access
controls for the new tenant including
other admins & non-admin user RBAC
Tenant-user provisions
namespace scoped k8s
resources within tenant
Tenant-admin performs CRUD
operations and tenant life cycle
mgmt. on the tenant resource itself
Tenant Operator Model
• Self-service or Admin-
provisioned Tenants
• Each Tenant-CR manages a
collection of namespaces,
virtual clusters and associated
resources via corresponding
CRs that eventually own those
K8s resouces
• Named admins + named
resource RBAC
apiVersion: tenancy.x-k8s.io/v1alpha1
kind: Tenant
metadata:
labels:
controller-tools.k8s.io: "1.0"
name: tenant-t1
spec:
tenantAdminNamespaceName: t1-adm
requireNamespacePrefix: true
tenantAdmins:
- kind: ServiceAccount
name: t1-user1
namespace: default
apiVersion: tenancy.x-k8s.io/v1alpha1
kind: TenantNamespace
metadata:
labels:
controller-tools.k8s.io: "1.0"
name: tns-t1-n1
namespace: t1-adm
spec:
# Add fields here
name: t1-adm-ns1
Sample config
Team NS
Hierarchical Namespace Controller
• Propagates policy objects from parents to
children
• Hardcoded list in v0.1 (Nov), aim to be
configurable in v0.3 (early 2020)
• Self-service subnamespaces
• No need for cluster-level privileges to create
subnamespaces
• Hierarchical authz checks
• “Subadmins” cannot deprive “superadmins”
of access
• Integrations via K8s labels
• Namespaces receive labels indicating the
subtrees they’re in.
Org NS
Service 1 NS Service 2 NS
SRE RBAC Network Policy
SRE RBAC Network Policy
Dev RBAC Team secrets
SRE RBAC Network Policy
Dev RBAC Team secrets
SRE RBAC Network Policy
Dev RBAC Team secrets
Original objects
Propagated
objects
Hierarchical config
Hierarchical configHierarchical config
Virtual Kubernetes Clusters Model
Virtual Cluster Architecture Proposal; F Guo et al; Alibaba Cloud
Tenant Operator +
Virtual Cluster + HNC (optional)
Data plane and Benchmarking
Multitenancy Benchmarks
• Goals: validate whether multi-tenancy has been achieved, independently of how its configured
• Decouple how multi-tenancy is provisioned and managed from the desired state.
• Define the desired states for multi-tenancy
• Provide automated tests for validating the desired states
MT Profile Level Intent
Level 1 Uses K8s API objects; can be manually configured; limited tenancy features
Level 2 Level 1 + allow extensions for self-service DevOps i.e. namespace creation, etc.
Level 3 Level 2 + ability to create CRDs,etc. (virtual control plane)
• Categories:
1. Control Plane Isolation (CPI)
2. Tenant Isolation (TI)
3. Network Isolation (NI)
4. Host Isolation (HI)
5. Data Isolation (DI)
6. Fairness (FNS)
7. Self-Service Operations (OPS)
• Formatted similar to CIS benchmarks
• Test suite implemented using k8s e2e tests framework
• Open development model: community submits PRs for candidate benchmark
tests and implementations
Benchmark Categories & Formal Definition
• Profile Applicability:
• Level 1
• Type:
• Behavioral Check
• Category:
• Control Plane Isolation
• Description:
• Tenants should not be able to …
• Rationale:
• Tenants should not be able to access control
plane resources ...
Example: MTB-PL1-CC-CPI-1
• Audit:
• Run the following commands to retrieve
the list of non-namespaced resources:
• kubectl --kubeconfig cluster-admin api-
resources --namespaced=false For all non-
namespaced resources, and each verb
(get, list, create, update, patch, watch,
delete, and deletecollection) issue the
following commands:
• kubectl --kubeconfig tenant-a auth can-i
<verb> <resource> Each command must
return 'no'
Example Baseline Reference Implementation:
• Control Plane:
• Namespace Grouping Model (Tenant Operator based)
• Data Plane:
• containerD/ CRI-O runtime
• Container sandboxing
• Pod Security Policy (+Apparmor, Seccomp)
• Kata containers
• K8s Network Policy
• (CNI vendor specific) Global Network Policy
• Supported by Calico, Cisco ACI, Cilium, (others ?)
• Dynamic policy admission controller/ framework
• Open Policy Agent/ Gatekeeper/ Kyverno/ K-rail ..
Network Policy: Global Policy + K8s Policy
• Current K8s Network Policy is namespace scoped only non-ideal for Multi-tenancy
• Recommendation: Use a combo of K8s Network Policy + (CNI-specific) Global Network Policy
• Global Network Policy: Tool for Cluster Admin to isolate tenants
• K8s Network Policy: Developers, Devops use for micro-segmentation
Tenant-1 Tenant-2
Global nw policy rule
For tenant isolation
K8s nw policy rules for
App team microsegmentation
---
kind: GlobalNetworkPolicy
apiVersion: crd.projectcalico.org/v1
metadata:
name: isolate-tenant-1
spec:
types:
- Ingress
- Egress
Global Network Policy Calico v3.7 (demo only)
example
(ps. use Calico 3.10 namespaceselector for better rule options)
order: 10
ingress:
- action: Deny
source:
namespaceSelector: tenant != 't1'
destination:
namespaceSelector: tenant == 't1'
- action: Allow
egress:
- action: Deny
source:
namespaceSelector: tenant == 't1'
destination:
namespaceSelector: tenant != 't1'
- action: Allow
Profile 1: Basic
• Secure by default Kubernetes configuration
• Disable anonymous authentication
• Disable ABAC, disable local authorization,
• K8S secrets encryption enabled
• CIS Kubernetes benchmarks Level 2
requirements
• Enable RBAC
• Recommended default set of admission
controllers (NodeRestriction, AlwaysPullImages,
PodSecurityPolicy etc)
• Pod Admission controller (PodSecurityPolicy)
• CNI Container Network Policy enabled including
ingress and egress policies
• Docker run-time with Seccomp, AppArmor/
SELinux default profiles
• Best effort multi-tenancy for services
(monitoring, logging etc)
Sample Cluster Setup Reference Configurations
Profile 2:
• Profile 1 + additional required
enhancements including:
• Dynamic policy engine (e.g. OPA) based
enhancement for
• Access control/ RBAC
• Admission control (beyond Pod Security
policies)
• Advanced policy controls (e.g. ingress route
policies)
• Newer container runtimes & runtime
sandboxing options (CRI-O, containerD w/
Kata runtime, Firecracker/ gVisor)
• Complete solution for multi-tenancy across
monitoring, logging, storage, service mesh ..
• Tenancy across Multi-cluster, multi-cloud
Demo
Where to find us
• Home page: https://github.com/kubernetes-sigs/multi-tenancy/
• https://github.com/kubernetes/community/tree/master/wg-
multitenancy
• Slack channel: Kubernetes Slack, #wg-multitenancy
• Google Group: https://groups.google.com/forum/#!forum/kubernetes-
wg-multitenancy
• Bi-weekly meeting (join google group for invite)
• Tuesday 11am Pacific Time
WG leads
• Project leads
• @Adrian Ludwin
• Hierarchical Namespace Controller (“HNC,”)
• Software Engineer @ Google
• @Fei Guo
• Virtual Clusters, Tenant Controller
• Software Engineer @ Alibaba
• @Jim Bugwadia
• Multi-tenancy Benchmarks
• Founder & CEO at Nirmata
• Chairs
• @tasha
• Tasha Drew, Product Line Manager @ VMware
• @srampal
• Sanjeev Rampal, Principal Engineer @ Cisco

More Related Content

What's hot

Docker and kubernetes_introduction
Docker and kubernetes_introductionDocker and kubernetes_introduction
Docker and kubernetes_introduction
Jason Hu
 
Introduction of Kubernetes - Trang Nguyen
Introduction of Kubernetes - Trang NguyenIntroduction of Kubernetes - Trang Nguyen
Introduction of Kubernetes - Trang Nguyen
Trang Nguyen
 
DevOps with Kubernetes
DevOps with KubernetesDevOps with Kubernetes
DevOps with Kubernetes
EastBanc Tachnologies
 
Room 2 - 6 - Đinh Tuấn Phong - Migrate opensource database to Kubernetes easi...
Room 2 - 6 - Đinh Tuấn Phong - Migrate opensource database to Kubernetes easi...Room 2 - 6 - Đinh Tuấn Phong - Migrate opensource database to Kubernetes easi...
Room 2 - 6 - Đinh Tuấn Phong - Migrate opensource database to Kubernetes easi...
Vietnam Open Infrastructure User Group
 
Kuberneteの運用を支えるGitOps
Kuberneteの運用を支えるGitOpsKuberneteの運用を支えるGitOps
Kuberneteの運用を支えるGitOps
shunki fujiwara
 
Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17
Ryan Jarvinen
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
Gabriel Carro
 
Kubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionKubernetes Architecture and Introduction
Kubernetes Architecture and Introduction
Stefan Schimanski
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
Araf Karsh Hamid
 
Building CI/CD Pipelines with Jenkins and Kubernetes
Building CI/CD Pipelines with Jenkins and KubernetesBuilding CI/CD Pipelines with Jenkins and Kubernetes
Building CI/CD Pipelines with Jenkins and Kubernetes
Janakiram MSV
 
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
NTT DATA Technology & Innovation
 
Kubernetes
KubernetesKubernetes
Kubernetes
Henry He
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
CJ Cullen
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
Eric Gustafson
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
Jo Hoon
 
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...
Edureka!
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
Raffaele Di Fazio
 
Helm - Application deployment management for Kubernetes
Helm - Application deployment management for KubernetesHelm - Application deployment management for Kubernetes
Helm - Application deployment management for Kubernetes
Alexei Ledenev
 
Azure kubernetes service (aks)
Azure kubernetes service (aks)Azure kubernetes service (aks)
Azure kubernetes service (aks)
Akash Agrawal
 

What's hot (20)

Docker and kubernetes_introduction
Docker and kubernetes_introductionDocker and kubernetes_introduction
Docker and kubernetes_introduction
 
Introduction of Kubernetes - Trang Nguyen
Introduction of Kubernetes - Trang NguyenIntroduction of Kubernetes - Trang Nguyen
Introduction of Kubernetes - Trang Nguyen
 
DevOps with Kubernetes
DevOps with KubernetesDevOps with Kubernetes
DevOps with Kubernetes
 
Room 2 - 6 - Đinh Tuấn Phong - Migrate opensource database to Kubernetes easi...
Room 2 - 6 - Đinh Tuấn Phong - Migrate opensource database to Kubernetes easi...Room 2 - 6 - Đinh Tuấn Phong - Migrate opensource database to Kubernetes easi...
Room 2 - 6 - Đinh Tuấn Phong - Migrate opensource database to Kubernetes easi...
 
Kuberneteの運用を支えるGitOps
Kuberneteの運用を支えるGitOpsKuberneteの運用を支えるGitOps
Kuberneteの運用を支えるGitOps
 
Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Kubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionKubernetes Architecture and Introduction
Kubernetes Architecture and Introduction
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
 
Building CI/CD Pipelines with Jenkins and Kubernetes
Building CI/CD Pipelines with Jenkins and KubernetesBuilding CI/CD Pipelines with Jenkins and Kubernetes
Building CI/CD Pipelines with Jenkins and Kubernetes
 
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
 
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Helm - Application deployment management for Kubernetes
Helm - Application deployment management for KubernetesHelm - Application deployment management for Kubernetes
Helm - Application deployment management for Kubernetes
 
Azure kubernetes service (aks)
Azure kubernetes service (aks)Azure kubernetes service (aks)
Azure kubernetes service (aks)
 

Similar to Kubecon US 2019: Kubernetes Multitenancy WG Deep Dive

Kubernetes Multitenancy - KubeSec Enterprise Security Summit
Kubernetes Multitenancy - KubeSec Enterprise Security SummitKubernetes Multitenancy - KubeSec Enterprise Security Summit
Kubernetes Multitenancy - KubeSec Enterprise Security Summit
Sanjeev Rampal
 
Operationalizing Amazon EKS
Operationalizing Amazon EKSOperationalizing Amazon EKS
Operationalizing Amazon EKS
Jim Bugwadia
 
Kubernetes for Enterprise DevOps
Kubernetes for Enterprise DevOpsKubernetes for Enterprise DevOps
Kubernetes for Enterprise DevOps
Jim Bugwadia
 
Implementing-SaaS-on-Kubernetes-Michael-Knapp-Andrew-Gao-Capital-One.pdf
Implementing-SaaS-on-Kubernetes-Michael-Knapp-Andrew-Gao-Capital-One.pdfImplementing-SaaS-on-Kubernetes-Michael-Knapp-Andrew-Gao-Capital-One.pdf
Implementing-SaaS-on-Kubernetes-Michael-Knapp-Andrew-Gao-Capital-One.pdf
ssuserf4844f
 
Simplify Your Way To Expert Kubernetes Management
Simplify Your Way To Expert Kubernetes ManagementSimplify Your Way To Expert Kubernetes Management
Simplify Your Way To Expert Kubernetes Management
DevOps.com
 
Meetup 12-12-2017 - Application Isolation on Kubernetes
Meetup 12-12-2017 - Application Isolation on KubernetesMeetup 12-12-2017 - Application Isolation on Kubernetes
Meetup 12-12-2017 - Application Isolation on Kubernetes
dtoledo67
 
Hybrid cloud openstack meetup
Hybrid cloud openstack meetupHybrid cloud openstack meetup
Hybrid cloud openstack meetup
dfilppi
 
Azure meetup cloud native concepts - may 28th 2018
Azure meetup   cloud native concepts - may 28th 2018Azure meetup   cloud native concepts - may 28th 2018
Azure meetup cloud native concepts - may 28th 2018
Jim Bugwadia
 
AllTheTalks 2020: "The Past, Present, and Future of Cloud Native API Gateways"
AllTheTalks 2020: "The Past, Present, and Future of Cloud Native API Gateways"AllTheTalks 2020: "The Past, Present, and Future of Cloud Native API Gateways"
AllTheTalks 2020: "The Past, Present, and Future of Cloud Native API Gateways"
Daniel Bryant
 
SoftwareCircus 2020 "The Past, Present, and Future of Cloud Native API Gateways"
SoftwareCircus 2020 "The Past, Present, and Future of Cloud Native API Gateways"SoftwareCircus 2020 "The Past, Present, and Future of Cloud Native API Gateways"
SoftwareCircus 2020 "The Past, Present, and Future of Cloud Native API Gateways"
Daniel Bryant
 
Kubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDKubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CD
Stfalcon Meetups
 
Virtual Kubernetes Clusters on Amazon EKS
Virtual Kubernetes Clusters on Amazon EKSVirtual Kubernetes Clusters on Amazon EKS
Virtual Kubernetes Clusters on Amazon EKS
Jim Bugwadia
 
Cloud Native ClickHouse at Scale--Using the Altinity Kubernetes Operator-2022...
Cloud Native ClickHouse at Scale--Using the Altinity Kubernetes Operator-2022...Cloud Native ClickHouse at Scale--Using the Altinity Kubernetes Operator-2022...
Cloud Native ClickHouse at Scale--Using the Altinity Kubernetes Operator-2022...
Altinity Ltd
 
Building a Kubernetes cluster for a large organisation 101
Building a Kubernetes cluster for a large organisation 101Building a Kubernetes cluster for a large organisation 101
Building a Kubernetes cluster for a large organisation 101
Ed Schouten
 
GOTOpia 2020: "The Past, Present, and Future of Cloud Native API Gateways"
GOTOpia 2020: "The Past, Present, and Future of Cloud Native API Gateways"GOTOpia 2020: "The Past, Present, and Future of Cloud Native API Gateways"
GOTOpia 2020: "The Past, Present, and Future of Cloud Native API Gateways"
Daniel Bryant
 
Demystifying Kubernetes for Enterprise DevOps
Demystifying Kubernetes for Enterprise DevOpsDemystifying Kubernetes for Enterprise DevOps
Demystifying Kubernetes for Enterprise DevOps
Jim Bugwadia
 
Kubernetes and Terraform in the Cloud: How RightScale Does DevOps
Kubernetes and Terraform in the Cloud: How RightScale Does DevOpsKubernetes and Terraform in the Cloud: How RightScale Does DevOps
Kubernetes and Terraform in the Cloud: How RightScale Does DevOps
RightScale
 
kubernetesssssssssssssssssssssssssss.pdf
kubernetesssssssssssssssssssssssssss.pdfkubernetesssssssssssssssssssssssssss.pdf
kubernetesssssssssssssssssssssssssss.pdf
bchiriamina2
 
How we can do Multi-Tenancy on Kubernetes
How we can do Multi-Tenancy on KubernetesHow we can do Multi-Tenancy on Kubernetes
How we can do Multi-Tenancy on Kubernetes
Opsta
 
DevOpsCon 2020: The Past, Present, and Future of Cloud Native API Gateways
DevOpsCon 2020: The Past, Present, and Future of Cloud Native API GatewaysDevOpsCon 2020: The Past, Present, and Future of Cloud Native API Gateways
DevOpsCon 2020: The Past, Present, and Future of Cloud Native API Gateways
Daniel Bryant
 

Similar to Kubecon US 2019: Kubernetes Multitenancy WG Deep Dive (20)

Kubernetes Multitenancy - KubeSec Enterprise Security Summit
Kubernetes Multitenancy - KubeSec Enterprise Security SummitKubernetes Multitenancy - KubeSec Enterprise Security Summit
Kubernetes Multitenancy - KubeSec Enterprise Security Summit
 
Operationalizing Amazon EKS
Operationalizing Amazon EKSOperationalizing Amazon EKS
Operationalizing Amazon EKS
 
Kubernetes for Enterprise DevOps
Kubernetes for Enterprise DevOpsKubernetes for Enterprise DevOps
Kubernetes for Enterprise DevOps
 
Implementing-SaaS-on-Kubernetes-Michael-Knapp-Andrew-Gao-Capital-One.pdf
Implementing-SaaS-on-Kubernetes-Michael-Knapp-Andrew-Gao-Capital-One.pdfImplementing-SaaS-on-Kubernetes-Michael-Knapp-Andrew-Gao-Capital-One.pdf
Implementing-SaaS-on-Kubernetes-Michael-Knapp-Andrew-Gao-Capital-One.pdf
 
Simplify Your Way To Expert Kubernetes Management
Simplify Your Way To Expert Kubernetes ManagementSimplify Your Way To Expert Kubernetes Management
Simplify Your Way To Expert Kubernetes Management
 
Meetup 12-12-2017 - Application Isolation on Kubernetes
Meetup 12-12-2017 - Application Isolation on KubernetesMeetup 12-12-2017 - Application Isolation on Kubernetes
Meetup 12-12-2017 - Application Isolation on Kubernetes
 
Hybrid cloud openstack meetup
Hybrid cloud openstack meetupHybrid cloud openstack meetup
Hybrid cloud openstack meetup
 
Azure meetup cloud native concepts - may 28th 2018
Azure meetup   cloud native concepts - may 28th 2018Azure meetup   cloud native concepts - may 28th 2018
Azure meetup cloud native concepts - may 28th 2018
 
AllTheTalks 2020: "The Past, Present, and Future of Cloud Native API Gateways"
AllTheTalks 2020: "The Past, Present, and Future of Cloud Native API Gateways"AllTheTalks 2020: "The Past, Present, and Future of Cloud Native API Gateways"
AllTheTalks 2020: "The Past, Present, and Future of Cloud Native API Gateways"
 
SoftwareCircus 2020 "The Past, Present, and Future of Cloud Native API Gateways"
SoftwareCircus 2020 "The Past, Present, and Future of Cloud Native API Gateways"SoftwareCircus 2020 "The Past, Present, and Future of Cloud Native API Gateways"
SoftwareCircus 2020 "The Past, Present, and Future of Cloud Native API Gateways"
 
Kubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDKubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CD
 
Virtual Kubernetes Clusters on Amazon EKS
Virtual Kubernetes Clusters on Amazon EKSVirtual Kubernetes Clusters on Amazon EKS
Virtual Kubernetes Clusters on Amazon EKS
 
Cloud Native ClickHouse at Scale--Using the Altinity Kubernetes Operator-2022...
Cloud Native ClickHouse at Scale--Using the Altinity Kubernetes Operator-2022...Cloud Native ClickHouse at Scale--Using the Altinity Kubernetes Operator-2022...
Cloud Native ClickHouse at Scale--Using the Altinity Kubernetes Operator-2022...
 
Building a Kubernetes cluster for a large organisation 101
Building a Kubernetes cluster for a large organisation 101Building a Kubernetes cluster for a large organisation 101
Building a Kubernetes cluster for a large organisation 101
 
GOTOpia 2020: "The Past, Present, and Future of Cloud Native API Gateways"
GOTOpia 2020: "The Past, Present, and Future of Cloud Native API Gateways"GOTOpia 2020: "The Past, Present, and Future of Cloud Native API Gateways"
GOTOpia 2020: "The Past, Present, and Future of Cloud Native API Gateways"
 
Demystifying Kubernetes for Enterprise DevOps
Demystifying Kubernetes for Enterprise DevOpsDemystifying Kubernetes for Enterprise DevOps
Demystifying Kubernetes for Enterprise DevOps
 
Kubernetes and Terraform in the Cloud: How RightScale Does DevOps
Kubernetes and Terraform in the Cloud: How RightScale Does DevOpsKubernetes and Terraform in the Cloud: How RightScale Does DevOps
Kubernetes and Terraform in the Cloud: How RightScale Does DevOps
 
kubernetesssssssssssssssssssssssssss.pdf
kubernetesssssssssssssssssssssssssss.pdfkubernetesssssssssssssssssssssssssss.pdf
kubernetesssssssssssssssssssssssssss.pdf
 
How we can do Multi-Tenancy on Kubernetes
How we can do Multi-Tenancy on KubernetesHow we can do Multi-Tenancy on Kubernetes
How we can do Multi-Tenancy on Kubernetes
 
DevOpsCon 2020: The Past, Present, and Future of Cloud Native API Gateways
DevOpsCon 2020: The Past, Present, and Future of Cloud Native API GatewaysDevOpsCon 2020: The Past, Present, and Future of Cloud Native API Gateways
DevOpsCon 2020: The Past, Present, and Future of Cloud Native API Gateways
 

More from Sanjeev Rampal

Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesMulti-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Sanjeev Rampal
 
cilium-public.pdf
cilium-public.pdfcilium-public.pdf
cilium-public.pdf
Sanjeev Rampal
 
Container security within Cisco Container Platform
Container security within Cisco Container PlatformContainer security within Cisco Container Platform
Container security within Cisco Container Platform
Sanjeev Rampal
 
Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...
Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...
Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...
Sanjeev Rampal
 
Cisco Live 2017: Container networking deep dive with Docker Enterprise Editio...
Cisco Live 2017: Container networking deep dive with Docker Enterprise Editio...Cisco Live 2017: Container networking deep dive with Docker Enterprise Editio...
Cisco Live 2017: Container networking deep dive with Docker Enterprise Editio...
Sanjeev Rampal
 
Triangle Kubernetes Meetup: Container cloud networking - Contiv for K8S & Ope...
Triangle Kubernetes Meetup: Container cloud networking - Contiv for K8S & Ope...Triangle Kubernetes Meetup: Container cloud networking - Contiv for K8S & Ope...
Triangle Kubernetes Meetup: Container cloud networking - Contiv for K8S & Ope...
Sanjeev Rampal
 
Openstack Summit: Networking and policies across Containers and VMs
Openstack Summit: Networking and policies across Containers and VMsOpenstack Summit: Networking and policies across Containers and VMs
Openstack Summit: Networking and policies across Containers and VMs
Sanjeev Rampal
 
NYC Docker Meetup: Contiv networking on Docker
NYC Docker Meetup: Contiv networking on DockerNYC Docker Meetup: Contiv networking on Docker
NYC Docker Meetup: Contiv networking on Docker
Sanjeev Rampal
 

More from Sanjeev Rampal (8)

Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesMulti-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
 
cilium-public.pdf
cilium-public.pdfcilium-public.pdf
cilium-public.pdf
 
Container security within Cisco Container Platform
Container security within Cisco Container PlatformContainer security within Cisco Container Platform
Container security within Cisco Container Platform
 
Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...
Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...
Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...
 
Cisco Live 2017: Container networking deep dive with Docker Enterprise Editio...
Cisco Live 2017: Container networking deep dive with Docker Enterprise Editio...Cisco Live 2017: Container networking deep dive with Docker Enterprise Editio...
Cisco Live 2017: Container networking deep dive with Docker Enterprise Editio...
 
Triangle Kubernetes Meetup: Container cloud networking - Contiv for K8S & Ope...
Triangle Kubernetes Meetup: Container cloud networking - Contiv for K8S & Ope...Triangle Kubernetes Meetup: Container cloud networking - Contiv for K8S & Ope...
Triangle Kubernetes Meetup: Container cloud networking - Contiv for K8S & Ope...
 
Openstack Summit: Networking and policies across Containers and VMs
Openstack Summit: Networking and policies across Containers and VMsOpenstack Summit: Networking and policies across Containers and VMs
Openstack Summit: Networking and policies across Containers and VMs
 
NYC Docker Meetup: Contiv networking on Docker
NYC Docker Meetup: Contiv networking on DockerNYC Docker Meetup: Contiv networking on Docker
NYC Docker Meetup: Contiv networking on Docker
 

Recently uploaded

Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 

Recently uploaded (20)

Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 

Kubecon US 2019: Kubernetes Multitenancy WG Deep Dive

  • 1.
  • 2. Sanjeev Rampal Principal Engineer Cisco Systems Adrian Ludwin Google Cloud Secure Multitenancy In Kubernetes
  • 3. • Overview and Architecture • What is Kubernetes Multitenancy ? • Architectural models for Multitenancy • Community initiatives: Multitenancy control plane • Tenant controller & namespace grouping • Hierarchical namespaces • Virtual clusters • Community initiatives: Data plane and benchmarking • Benchmarking • Data plane models • Demo • Q & A Agenda
  • 5. • What is it ? • Ability to share a Kubernetes cluster between multiple independent teams • Why is it useful ? • Improved resource efficiencies (esp when move to containers on BM) • Reduced cluster sprawl • Lower capex and opex for the cluster operator • Resource usage burstability -> Higher application performance • Essentially a bin-packing & statistical multiplexing problem • Potential challenges • Kubernetes not designed for Multitenancy at its core • Unlike say Openstack, there are no core K8s resources for ”Users”, “Tenants”, “Projects” • Wide spectrum of loosely defined scenarios and potential use case • Defining “Standardization” vs best practice vs implementation choice What is Kubernetes Multitenancy ?
  • 6. The community feels this area needs work • The New Stack poll (newstack.io November 2019)
  • 7. • Categories of Multitenancy (high level use cases) • “Soft” Multitenancy • Ex. Multiple teams within the same enterprise sharing a K8S cluster • “Hard” Multitenancy • Ex. Service provider hosting multiple independent tenants on a shared cluster • “Coke & Pepsi on the same K8s cluster” • Other • SaaS multitenancy What is Kubernetes Multitenancy ? …
  • 8. • Available solutions 1. Community Kubernetes + DIY solution using namespaces, network policies etc 2. Vendor/ commercial distributions with features built on these • E.g. Openshift “Projects”, Rancher “Projects” 3. Emerging community initiatives tracked within K8s Multitenancy Working group & others What is Kubernetes Multitenancy ? …
  • 9. Architectural Models VM VM VM Hypervisor k8s1 k8s2 k8s3 IaaS ex. vSphere k8s cluster mgmt T1 T2 T3 BM BM BM BM BM BMBMBM ns1 ns2 ns3 ns-a ns-b ns-x ns-y K8S T1 T2 T3 Super K8S BM BM BM BM k8s1 k8s2 k8s3 T1 T2 T3 BM BMBMBM K8S T1 T2 T3 A B C D
  • 10. Architecture Options Multitenancy Architecture Model Resource efficiency Level of Tenant isolation Tenant/ application Config restrictions All “Cloud Native” architecture Architecture maturity & production readiness A: Multiple K8S clusters on top of a Virtualization IaaS Low- medium High No No (multiple separate platforms, orch.) Medium-High B: Namespace grouping with Tenant resources High Medium- High Some restrictions eg cluster scoped rescs. Yes Medium C: Virtual Kubernetes Clusters High High No (?) Yes Early D: Core Kubernetes change (Tenant as 1st class resource) High High No (?) Yes (in theory) Very low (design does not exist)
  • 11. Mapping Tenants, Applications, Services Tenant-1 Application-1 Namespace-1 S1 S2 S3 Tenant-1 Application-1 N1 S1 S2 S3 N2 N3 Tenant-1 Application-1 N1 S1 S2 S3 N2 Virtual Cluster1 Application-2 S4 N3 N4 N5 N6 1 tenant <> 1 app <> 1 NS (M micro-services all in 1 NS) Need to resolve naming conflicts 1 tenant <> 1 app <> M NS (1 service per NS) Better service portability 1 tenant <> M apps <> mix of H-NSs & VCs
  • 12. Tenant vs Application Security Responsibility Model Tenant-A resources Tenant-B resources Cluster control Plane resources (k8s, monitoring etc) Cluster and provider infrastructure resources Application Security tools e.g. Aqua
  • 14. Operational Model: Personas and workflows Cluster-admin provisions K8S cluster with 1 (of N) recommended security profiles Cluster-admin provisions Tenant template and Namespace template objects Cluster-admin Tenant-admin Tenant-user Tenant-admin provisions a new tenant referring to these templates Tenant-admin provisions access controls for the new tenant including other admins & non-admin user RBAC Tenant-user provisions namespace scoped k8s resources within tenant Tenant-admin performs CRUD operations and tenant life cycle mgmt. on the tenant resource itself
  • 15. Tenant Operator Model • Self-service or Admin- provisioned Tenants • Each Tenant-CR manages a collection of namespaces, virtual clusters and associated resources via corresponding CRs that eventually own those K8s resouces • Named admins + named resource RBAC
  • 16. apiVersion: tenancy.x-k8s.io/v1alpha1 kind: Tenant metadata: labels: controller-tools.k8s.io: "1.0" name: tenant-t1 spec: tenantAdminNamespaceName: t1-adm requireNamespacePrefix: true tenantAdmins: - kind: ServiceAccount name: t1-user1 namespace: default apiVersion: tenancy.x-k8s.io/v1alpha1 kind: TenantNamespace metadata: labels: controller-tools.k8s.io: "1.0" name: tns-t1-n1 namespace: t1-adm spec: # Add fields here name: t1-adm-ns1 Sample config
  • 17. Team NS Hierarchical Namespace Controller • Propagates policy objects from parents to children • Hardcoded list in v0.1 (Nov), aim to be configurable in v0.3 (early 2020) • Self-service subnamespaces • No need for cluster-level privileges to create subnamespaces • Hierarchical authz checks • “Subadmins” cannot deprive “superadmins” of access • Integrations via K8s labels • Namespaces receive labels indicating the subtrees they’re in. Org NS Service 1 NS Service 2 NS SRE RBAC Network Policy SRE RBAC Network Policy Dev RBAC Team secrets SRE RBAC Network Policy Dev RBAC Team secrets SRE RBAC Network Policy Dev RBAC Team secrets Original objects Propagated objects Hierarchical config Hierarchical configHierarchical config
  • 18. Virtual Kubernetes Clusters Model Virtual Cluster Architecture Proposal; F Guo et al; Alibaba Cloud
  • 19. Tenant Operator + Virtual Cluster + HNC (optional)
  • 20. Data plane and Benchmarking
  • 21. Multitenancy Benchmarks • Goals: validate whether multi-tenancy has been achieved, independently of how its configured • Decouple how multi-tenancy is provisioned and managed from the desired state. • Define the desired states for multi-tenancy • Provide automated tests for validating the desired states MT Profile Level Intent Level 1 Uses K8s API objects; can be manually configured; limited tenancy features Level 2 Level 1 + allow extensions for self-service DevOps i.e. namespace creation, etc. Level 3 Level 2 + ability to create CRDs,etc. (virtual control plane)
  • 22. • Categories: 1. Control Plane Isolation (CPI) 2. Tenant Isolation (TI) 3. Network Isolation (NI) 4. Host Isolation (HI) 5. Data Isolation (DI) 6. Fairness (FNS) 7. Self-Service Operations (OPS) • Formatted similar to CIS benchmarks • Test suite implemented using k8s e2e tests framework • Open development model: community submits PRs for candidate benchmark tests and implementations Benchmark Categories & Formal Definition
  • 23. • Profile Applicability: • Level 1 • Type: • Behavioral Check • Category: • Control Plane Isolation • Description: • Tenants should not be able to … • Rationale: • Tenants should not be able to access control plane resources ... Example: MTB-PL1-CC-CPI-1 • Audit: • Run the following commands to retrieve the list of non-namespaced resources: • kubectl --kubeconfig cluster-admin api- resources --namespaced=false For all non- namespaced resources, and each verb (get, list, create, update, patch, watch, delete, and deletecollection) issue the following commands: • kubectl --kubeconfig tenant-a auth can-i <verb> <resource> Each command must return 'no'
  • 24. Example Baseline Reference Implementation: • Control Plane: • Namespace Grouping Model (Tenant Operator based) • Data Plane: • containerD/ CRI-O runtime • Container sandboxing • Pod Security Policy (+Apparmor, Seccomp) • Kata containers • K8s Network Policy • (CNI vendor specific) Global Network Policy • Supported by Calico, Cisco ACI, Cilium, (others ?) • Dynamic policy admission controller/ framework • Open Policy Agent/ Gatekeeper/ Kyverno/ K-rail ..
  • 25. Network Policy: Global Policy + K8s Policy • Current K8s Network Policy is namespace scoped only non-ideal for Multi-tenancy • Recommendation: Use a combo of K8s Network Policy + (CNI-specific) Global Network Policy • Global Network Policy: Tool for Cluster Admin to isolate tenants • K8s Network Policy: Developers, Devops use for micro-segmentation Tenant-1 Tenant-2 Global nw policy rule For tenant isolation K8s nw policy rules for App team microsegmentation
  • 26. --- kind: GlobalNetworkPolicy apiVersion: crd.projectcalico.org/v1 metadata: name: isolate-tenant-1 spec: types: - Ingress - Egress Global Network Policy Calico v3.7 (demo only) example (ps. use Calico 3.10 namespaceselector for better rule options) order: 10 ingress: - action: Deny source: namespaceSelector: tenant != 't1' destination: namespaceSelector: tenant == 't1' - action: Allow egress: - action: Deny source: namespaceSelector: tenant == 't1' destination: namespaceSelector: tenant != 't1' - action: Allow
  • 27. Profile 1: Basic • Secure by default Kubernetes configuration • Disable anonymous authentication • Disable ABAC, disable local authorization, • K8S secrets encryption enabled • CIS Kubernetes benchmarks Level 2 requirements • Enable RBAC • Recommended default set of admission controllers (NodeRestriction, AlwaysPullImages, PodSecurityPolicy etc) • Pod Admission controller (PodSecurityPolicy) • CNI Container Network Policy enabled including ingress and egress policies • Docker run-time with Seccomp, AppArmor/ SELinux default profiles • Best effort multi-tenancy for services (monitoring, logging etc) Sample Cluster Setup Reference Configurations Profile 2: • Profile 1 + additional required enhancements including: • Dynamic policy engine (e.g. OPA) based enhancement for • Access control/ RBAC • Admission control (beyond Pod Security policies) • Advanced policy controls (e.g. ingress route policies) • Newer container runtimes & runtime sandboxing options (CRI-O, containerD w/ Kata runtime, Firecracker/ gVisor) • Complete solution for multi-tenancy across monitoring, logging, storage, service mesh .. • Tenancy across Multi-cluster, multi-cloud
  • 28. Demo
  • 29. Where to find us • Home page: https://github.com/kubernetes-sigs/multi-tenancy/ • https://github.com/kubernetes/community/tree/master/wg- multitenancy • Slack channel: Kubernetes Slack, #wg-multitenancy • Google Group: https://groups.google.com/forum/#!forum/kubernetes- wg-multitenancy • Bi-weekly meeting (join google group for invite) • Tuesday 11am Pacific Time
  • 30. WG leads • Project leads • @Adrian Ludwin • Hierarchical Namespace Controller (“HNC,”) • Software Engineer @ Google • @Fei Guo • Virtual Clusters, Tenant Controller • Software Engineer @ Alibaba • @Jim Bugwadia • Multi-tenancy Benchmarks • Founder & CEO at Nirmata • Chairs • @tasha • Tasha Drew, Product Line Manager @ VMware • @srampal • Sanjeev Rampal, Principal Engineer @ Cisco