Hands-on Lab·Certified Kubernetes Security Specialist
Namespace Isolation for Multi-Tenancy
A namespace separates names and nothing else. This guide builds the six objects that turn one into a boundary, proves each of them from the outside and the inside, and finishes on the thing no combination of Kubernetes objects will separate.
Microservice Vulnerabilities Guide 22 of 40 Advanced
- Kubernetesapiserver v1.36.4, kubelet v1.36.3
- Runtimecontainerd 2.2.6
- CNICilium 1.18.1
- Built withkubeadm v1.36.3
- TimeAbout 20 min
Every object here is standard Kubernetes - no operator, no policy engine and nothing installed. This is the template a platform team applies to every new tenant.
- Host kernel7.0.0-29
| Server Name | IP Address | OS | Roles | CPU | RAM | HDD |
|---|---|---|---|---|---|---|
| CKA6001 | 192.168.0.46 | Ubuntu 26.04 LTS | Control Plane Node (tainted NoSchedule) | 2 Core | 4 GB | 50 GB |
| CKA6001-NODE01 | 192.168.0.47 | Ubuntu 26.04 LTS | Worker Node | 2 Core | 4 GB | 50 GB |
| CKA6001-NODE02 | 192.168.0.48 | Ubuntu 26.04 LTS | Worker Node | 2 Core | 4 GB | 50 GB |
This guide includes
Use this when a namespace is about to be handed to a tenant. This matters because a namespace separates names and nothing else - it takes six objects to make it a boundary, and even then one thing stays shared.
- measuring a brand new namespace, and finding it is not a boundary at all
- adding the six objects that turn it into one
- testing that boundary from both directions - a neighbour reaching in, and the tenant reaching out
- finding what a namespace still cannot separate, by looking at where the Pods actually ran
Before you start
-
A namespace is not a boundary until you make it one
-
The six objects that make one
-
Test the boundary from both directions
-
What a namespace still cannot separate