, ,

VKS Namespace Network Options and Their Implications (VCAP-VKS Exam Series, Part 12)

Objective 3.2 asks you to evaluate the implication for Namespace Network options. Here is what each of the three models commits you to, which fields lock the moment you click Create, and the subnet prefix arithmetic that decides how many VKS nodes a namespace will ever hold.

VCAP-VKS Exam Series · Part 12 of 34
Who this is for: You already have a Supervisor running, you have created a handful of vSphere Namespaces from the vSphere Client, and you took the network defaults every time because they worked. This Part covers Objective 3.2, published wording Evaluate the implication for Namespace Network options. A vSphere Namespace is the resource and policy boundary the Supervisor hands to a platform team; the Supervisor is the Kubernetes control plane that vSphere runs natively on a cluster. Reference estate is the one we have carried since Part 3: VCF 9.0, one workload domain, three vSphere Zones, NSX with VPC networking available, Avi in the load balancing path, VKS 3.3.x supplying the Kubernetes releases.

A candidate on a coaching call three weeks ago asked me why his lab would not let him tick Override cluster network settings when he created a namespace. He had rebuilt the Supervisor twice chasing it. Nothing was broken. His Supervisor was enabled on the vSphere networking stack, and on that stack there is no per namespace network to override, because there is no NSX tier-1 gateway to give the namespace. That single checkbox is the cleanest illustration of what Objective 3.2 is really asking: a namespace does not choose its network model, it inherits one, and the choice was made when somebody enabled the Supervisor.

Key takeaways: Objective 3.2, published wording Evaluate the implication for Namespace Network options. Namespaces on a Supervisor configured with the vSphere Distributed Switch support VKS clusters and VMs only; no vSphere Pods and no Harbor Registry. Overriding network settings per namespace exists only on NSX, and Broadcom requires one Edge cluster dedicated to tier-0 gateways plus a second dedicated to tier-1 gateways before you can use it. Namespace Subnet Prefix defaults to 28 and cannot be changed once set, and neither can NAT mode or the tier-0 gateway. On a Supervisor with NSX VPC, subnet Size is a count of addresses, so 16 means sixteen IP addresses and not a /16. Version floor worth memorising: VKS 3.3.1 or later before a Supervisor consumes NSX VPC networks.

Last Part we sized the load balancer sitting in front of the Supervisor and found that object count, not throughput, is what runs it out of room. This Part stays one layer down. Everything a namespace can do with a packet was decided upstream, and your job in the exam and on a real estate is to read the Supervisor and predict what each namespace will and will not be able to do.

Three network models a namespace can inherit

VCF 9.0 gives a Supervisor three workload networking stacks, and a vSphere Namespace lands in whichever one it was born into. Understanding what each one withholds matters more than understanding what each one provides, because the exam asks you to evaluate implications, not to recite features.

vSphere Distributed Switch with a load balancer. Workload traffic rides a distributed portgroup. Broadcom is explicit that namespaces on this stack support only VKS clusters and standalone VMs. vSphere Pods, which are containers the Supervisor schedules directly onto ESXi hosts, are unavailable, and so is the Harbor Registry as a Supervisor Service. There is no namespace level network object, so the override checkbox never appears.

NSX Segment networking. Each namespace gets a tier-1 gateway and one or more segments carved from a Namespace Network CIDR, with a Subnet Prefix deciding how big each carve is. Ingress virtual IPs come from an Ingress CIDR, and outbound source NAT addresses come from an Egress CIDR. This is the model most people learned on, and it is the only one where the override workflow applies.

NSX VPC networking. New in VCF 9.0 and the recommended stack going forward. A vSphere Namespace maps to an NSX Virtual Private Cloud, a self contained network tenancy with its own gateway, its own IP address management and its own subnets. If you do not name a VPC when you create the namespace, one is created for you inside the default NSX Project. Subnets carry an access mode of Public, Private-VPC or Private-TGW, and that access mode, not a NAT checkbox, is what decides reachability. Every VPC belongs to an NSX Project, and each Project has its own Transit Gateway.

Naming note, said once: VKS is the product formerly called TKG Service or TKGS. Broadcom documentation for this exact workflow still reads the Supervisor must be able to route directly to the TKG cluster nodes and ingress subnets, and CRDs, API groups and log lines carry tkg throughout. Read tkg as VKS and move on; the rename is not finished and the exam does not pretend it is.
ImplicationvDS stackNSX SegmentNSX VPC
vSphere Pods in the namespaceNoYesYes
Harbor as a Supervisor ServiceNoYesYes
Override cluster network settingsNot offeredYes, with two dedicated Edge clustersNot needed, isolation is native
Where workload IPs come fromDistributed portgroupSegment carved from Namespace Network CIDRVPC subnet from a private or external IP block
Isolation boundary per namespaceShared workload networkTier-1 gatewayVPC gateway plus subnet access mode
How outbound reachability is controlledPhysical routingNAT mode plus Egress CIDRSubnet access mode plus external IP
Version floorNone beyond the Supervisor releaseNone beyond the Supervisor releaseVKS 3.3.1 or later
Adding address space on Day 2New portgroup, disruptiveAdd CIDRs after creation, prefix stays fixedAdd a subnet to the VPC
Namespace network model trade off matrix for VCF 9.0

Read the bottom two rows together and the design pressure becomes obvious. On the Segment model you can keep adding CIDRs forever but you can never resize the carve; on the VPC model you add subnets and the sizing conversation moves inside the VPC. That difference is the whole of Objective 3.2 in one sentence.

Namespace density arithmetic on a shared CIDR

Namespace Subnet Prefix is the field candidates skip and estates regret. It specifies the size of the subnet reserved for each namespace segment, its default is 28, and Broadcom states plainly that once you specify it you cannot change it. Everything downstream follows from that one number: how many namespaces a Namespace Network CIDR yields, and how many workload addresses each namespace will ever hold.

Take a /22 Namespace Network CIDR, which is a comfortable allocation on most estates and the one I use in the lab. Here is what each prefix buys, with usable addresses counted after the network, gateway and broadcast addresses come off the top.

Namespaces from one /22, by subnet prefixBar height is namespace count. Label above each bar is usable workload addresses per namespace.13 usable64prefix 28default29 usable32prefix 2761 usable16prefix 26253 usable4prefix 24
Namespace count against workload address headroom, from a single /22
Reference artifact: the namespace density table below is the thing to keep. Paste it into whatever form your platform teams use to request a namespace, and make the requester state a peak node count before you pick a prefix. It converts an irreversible NSX decision into a two minute conversation.
Subnet prefixSegments from a /22Total addressesUsable workload addressesAutoscaler headroom after a 3 plus 3 cluster
28 (default)6416137 nodes
2732322923 nodes
2616646155 nodes
244256253247 nodes
Namespace density table, usable counts observed on the reference estate

I lost most of a Thursday to that first row. We carved a namespace on the middle zone for the PostgreSQL StatefulSet work, took the default prefix of 28 without a second thought, and dropped a three control plane, three worker VKS cluster into it. Fine for a fortnight. Then the autoscaler was asked to take that cluster to twelve workers and it stalled at ten. Machine objects sat in Provisioning with nothing useful on the cluster status, and it was the NCP log on the Supervisor that finally named it: a segment with no free addresses. Thirteen usable, six spent on day one, seven left, exactly as the table says. Because the prefix cannot be edited, there was no fix, only a rebuild. New namespace at prefix 26, storage policy and VM class and content library reattached, cluster redeployed, persistent volumes restored from Velero. Four hours and ten minutes end to end, all of it avoidable by typing 26 instead of accepting 28.

Here is where the popular study advice is backwards. Nearly every walkthrough tells you to be generous with Ingress and Egress CIDRs, because ingress is the part you can see and a virtual IP shortage is loud. Reverse the emphasis. Ingress and Egress CIDRs are additive; Broadcom documents that you can configure additional CIDRs after you create the namespace. Subnet prefix is not additive and never will be. Spend your planning attention on the field you only get to set once.

Fields that lock the moment you click Create

Experienced vSphere admins carry an assumption that hurts them here: namespace settings behave like resource limits, editable whenever. CPU, memory, storage limits and permissions are indeed editable. Three network fields are not.

FieldEditable laterCost of getting it wrong
NAT modeNo, locked once the namespace mode is enabledDelete and recreate the namespace
Tier-0 gatewayNo, locked at selectionDelete and recreate the namespace
Namespace Subnet PrefixNo, locked once specifiedDelete and recreate, plus a workload migration
Namespace Network CIDRYes, additiveAdd another CIDR in namespace network settings
Ingress CIDRYes, additiveAdd another CIDR in namespace network settings
Egress CIDRYes, additiveAdd another CIDR in namespace network settings
Namespace network fields, irreversible against additive

Two more implications sit behind the override checkbox and both are worth a line each. Overriding requires an NSX build with an Edge cluster dedicated to tier-0 gateways and a separate Edge cluster dedicated to tier-1 gateways, which is not how most single site NSX installs are built. And the moment you override, IP address management becomes yours: Broadcom requires the new Ingress, Egress and Namespace Network subnets to be unique for that Supervisor and unique from every other namespace network on it. There is no allocator watching your back. Selecting a tier-0 gateway also overrides the one you chose when you enabled the Supervisor, so every CIDR has to be supplied again, and the Supervisor still has to route directly to the cluster nodes and ingress subnets, either through a VRF gateway that inherits the Supervisor tier-0 configuration or through BGP between the two tier-0 gateways.

Which is exactly why I stopped reaching for the override on new builds. If what you want is a namespace with its own network boundary, the VPC model gives it to you as the default behaviour rather than as an exception that costs two Edge clusters and a manual IPAM regime. The override survives for one legitimate case on my estate, a namespace that has to hang off a specific tier-0 for an audit boundary, and that is it.

flowchart TD
  A[New vSphere Namespace] --> B{Supervisor networking stack}
  B -->|vDS with Avi| C[No override offered. VKS clusters and VMs only]
  B -->|NSX Segment| D{Needs its own tier zero}
  B -->|NSX VPC| E[Namespace maps to a VPC]
  D -->|No| F[Inherit Supervisor CIDRs. Set subnet prefix once]
  D -->|Yes| G[Override settings. Two Edge clusters and manual IPAM]
  E --> H{Reachable from outside}
  H -->|Yes| I[Public subnet. No NAT required]
  H -->|No| J[Private VPC or Private TGW subnet]
Decision path for namespace network options on VCF 9.0

One VPC detail deserves its own warning because it has caught more people than anything else in the 9.0 workflow. Subnet Size in a VPC is a total count of IP addresses, not a mask length. Entering 16 gives you sixteen addresses, several of which NSX reserves for network operations, and not a /16 with sixty five thousand. If you carry vSphere and NSX habits into that field you will build a subnet three orders of magnitude smaller than you intended and only find out when the fourth workload fails to get an address.

Worth knowing for context although it sits outside the 9.0 exam scope: from VCF 9.1 onward, deploying a Supervisor with classic NSX Segment networking moved to an API only option and the vSphere Client goes straight to the VPC workflow. Your exam is built on 9.0, where both are first class in the UI, so answer for 9.0. See the NSX Series for how tier-0, tier-1 and VPC constructs are built in the first place, and the VKS Series for the product walkthrough underneath this study path. If you are arriving from a Tanzu Kubernetes Grid Integrated estate, the TKGI to VKS Series covers the migration reading; this series assumes you are already on VKS.

Exam focus for objective 3.2

Exam focus, Objective 3.2: Evaluate the implication for Namespace Network options. This objective expects you to be handed a namespace network configuration and predict its consequences: which workload types the namespace can host, whether a setting can be corrected in place or forces a rebuild, and how much address space each namespace consumes from a shared CIDR. Because the wording is evaluative rather than procedural, it lends itself to matching and drag and drop items that pair a network model with a capability or a constraint, and to multiple selection items asking which settings survive a change request. Trap that catches experienced admins: assuming namespace network settings are editable because vSphere object settings usually are. NAT mode, the tier-0 gateway and the subnet prefix all lock at creation, and knowing which three lock is worth more marks than knowing what any of them do.

Objective checkpoint

Self test, three original questions:

1. A Supervisor is enabled on the vSphere networking stack with Avi in front. A platform team requests a namespace that runs vSphere Pods and consumes Harbor as a Supervisor Service. What is the correct evaluation? Answer: neither is available; namespaces on a vDS backed Supervisor support VKS clusters and standalone VMs only. Reasoning: namespace capability is inherited from the networking stack chosen when the Supervisor was enabled, and it cannot be added per namespace.

2. A namespace was created with NAT mode enabled and Namespace Subnet Prefix left at 28. The owner now needs directly routable node addresses and room for forty workloads. Which of the two can be corrected without recreating the namespace? Answer: neither. Reasoning: NAT mode locks once the namespace mode is enabled and the subnet prefix locks once specified; only the Namespace Network, Ingress and Egress CIDRs are additive after creation.

3. On a Supervisor using NSX VPC, an operator creates a subnet with Size set to 16 and expects to attach two hundred workloads. What will happen and why? Answer: address exhaustion after fewer than sixteen workloads. Reasoning: Size is a total count of IP addresses rather than a prefix length, and NSX reserves several of those addresses for network operations.

Namespace network call for this estate

My pick for the reference estate, and my recommendation for anything you build new on VCF 9.0: NSX VPC, with Private-TGW subnets as the default for VKS namespaces and Public subnets reserved for the few namespaces that genuinely need directly advertised addresses. It gives every namespace a real isolation boundary without the two Edge cluster tax, and it moves address planning into a place where you can add a subnet later instead of rebuilding.

Keep NSX Segment networking where you already run it, and if you must override at namespace level, do it deliberately and document the IPAM allocation somewhere a colleague will find it. Avoid two things outright. First, the vDS stack for any namespace where vSphere Pods or Harbor are even a possibility, because you cannot add those later. Second, and I mean this literally, avoid accepting the default subnet prefix of 28 on any namespace that will host a VKS cluster with an autoscaler attached. Thirteen addresses is a six node cluster plus a rounding error.

Tonight, in your own lab: open Workload Management, pick an existing namespace, and try to change its subnet prefix. Watch the field refuse you. Then write down the prefix and the current node count for every namespace you own, and mark the ones with fewer than ten spare addresses. That list is your rebuild backlog, and it is far better to have it now than at 3 a.m. when an autoscaler stalls. Next Part takes the same namespace and looks at how ingress and egress are actually architected around it, which is Objective 3.3.

VCAP-VKS Exam Series · Part 12 of 34
« Previous: Part 11  |  Guide  |  Next: Part 13 »

References

About The Author


Discover more from Journal of Intelligent Infrastructure

Subscribe to get the latest posts sent to your email.

Leave a Reply

Your email address will not be published. Required fields are marked *

Architect’s Toolkit

About the Author

Dr. Pranay Jha is a Cloud and AI Consultant with 18+ years of experience in hybrid cloud, virtualization, and enterprise infrastructure transformation. He specializes in VMware technologies, multi-cloud strategy, and Generative AI solutions. He holds a PhD in Computer Applications with research focused on Cloud and AI, has published multiple research papers, and has been a VMware vExpert since 2016 and a VMUG Community Leader.

Discover more from Journal of Intelligent Infrastructure

Subscribe now to keep reading and get access to the full archive.

Continue reading