This article provides answers to a few common questions on the following parameters used within Tanzu Kubernetes Grid Integrated Edition with some examples:
pod_ip_block_ids,
node_ip_block_ids,
pod_subnet_prefix,
node_subnet_prefix
Tanzu Kubernetes Grid Integrated Edition
NSX Data Center
Q: Is our Node IP Block appropriately sized for existing and future clusters?
Answer: Broadcom Support cannot provide infrastructure sizing and planning guidance. However, let's walk through two example Node IP Blocks to show what it will give you
NOTE:
Example1:
Node IP Block: 10.218.0.0/16 which carves out Node Subnets with /24 per kubernetes Cluster
Total Clusters and Nodes possible using the default /24 subnet:
Note: NCP/NSX won't assign three of the IP addresses to any node/pod.
For example, in a /24 Subnet there're 256 theoretical available IP addresses. NCP/NSX won't assign x.x.x.0 (Network address), x.x.x.1 (Gateway address), and x.x.x.255 (Broadcast address) to any node/pod, so in practical terms there'll be only 253 available IP addresses per Subnet.
Example2:
Node IP Block: 10.218.128.0/18 which carves out Node Subnets with /24 per kubernetes Cluster
Total Clusters and Nodes possible using the default /24 subnet:
Note: NCP/NSX won't assign three of the IP addresses to any node/pod.
For example, in a /24 Subnet there're 256 theoretical available IP addresses. NCP/NSX won't assign x.x.x.0 (Network address), x.x.x.1 (Gateway address), and x.x.x.255 (Broadcast address) to any node/pod, so in practical terms there'll be only 253 available IP addresses per Subnet.
Refer to the following guides for more details:
Network Planning for Installing Tanzu Kubernetes Grid Integrated Edition with VMware NSX
Which discusses:
Q: Is my Pod IP Block appropriately sized for existing and future cluster workloads?
Answer: Broadcom Support cannot provide infrastructure sizing and planning guidance. However, let's walk through two example Pod IP Blocks to show what it will give you
NOTE:
Example1:
Pod IP Block: 10.218.0.0/16 which carves out Subnets with /24 for each kubernetes Namespace (across all clusters)
Total Namespaces and Pods across all Clusters using the default /24 subnet:
Note: NCP/NSX won't assign three of the IP addresses to any node/pod.
For example, in a /24 Subnet there're 256 theoretical available IP addresses. NCP/NSX won't assign x.x.x.0 (Network address), x.x.x.1 (Gateway address), and x.x.x.255 (Broadcast address) to any node/pod, so in practical terms there'll be only 253 available IP addresses per Subnet.
IMPORTANT: If the number of pods in a Namespace goes beyond 253, then an additional Subnet will be carved out of the POD IP BLOCK range and used by the same Namespace. Thus, only 255 subnets would remain. The number of potential Namespaces would be lowered to 255 (from 256 max subnets)
Example2:
Pod IP Block: 10.218.128.0/18 which carves out Subnets with /24 for each kubernetes Namespace (across all clusters)
Total Namespaces and Pods across all Clusters using the default /24 subnet:
Note: NCP/NSX won't assign three of the IP addresses to any node/pod.
For example, in a /24 Subnet there're 256 theoretical available IP addresses. NCP/NSX won't assign x.x.x.0 (Network address), x.x.x.1 (Gateway address), and x.x.x.255 (Broadcast address) to any node/pod, so in practical terms there'll be only 253 available IP addresses per Subnet.
IMPORTANT: If the number of pods in a Namespace goes beyond 253, then an additional Subnet will be carved out of the POD IP BLOCK range and used by the same Namespace. Thus, only 63 subnets would remain. The number of potential Namespaces would be lowered to 63 (from 64 max subnets)
Refer to the following guides for more details:
Network Planning for Installing Tanzu Kubernetes Grid Integrated Edition with VMware NSX
Which discusses:
Q: How do the node_subnet_prefix, pod_subnet_prefix parameters affect the default values of the Nodes IP Block and Pods IP Block?
NOTE:
Nodes IP Block (node_ip_block_ids) is Updatable starting with TKGI 1.16.0
Pods IP Block (pod_ip_block_ids) is also Updatable
Info about node_subnet_prefix:
By changing the value of node_subnet_prefix to /22
Node IP Block: 10.218.0.0/16 would carves out Node Subnets with /22 per kubernetes Cluster
Note: NCP/NSX won't assign three of the IP addresses to any node/pod.
For example, in a /22 Subnet there're 1024 theoretical available IP addresses. NCP/NSX won't assign x.x.x.0 (Network address), x.x.x.1 (Gateway address), and x.x.x.255 (Broadcast address) to any node/pod, so in practical terms there'll be only 1021 available IP addresses per Subnet.
Refer to the Reference on Node Subnet Prefix
Info about pod_subnet_prefix:
Example:
By changing the value of pod_subnet_prefix to /22
Node IP Block: 10.218.0.0/16 would carves out Namespace Subnets with /22 to be used across all TKGI Clusters
Note: NCP/NSX won't assign three of the IP addresses to any node/pod.
For example, in a /22 Subnet there're 1024 theoretical available IP addresses. NCP/NSX won't assign x.x.x.0 (Network address), x.x.x.1 (Gateway address), and x.x.x.255 (Broadcast address) to any node/pod, so in practical terms there'll be only 1021 available IP addresses per Subnet.
Refer to the Reference on Pod Subnet Prefix
Q: Is my Floating IP Pool sufficient for the Kubernetes Services and cluster Load Balancers in my environment?
Answer: Floating IPs (FIPs) in TKGI when NSX Data Center is used:
Answer: You can always add more Floating IP Pools if your default IP Block is exhausted or you are reaching its limit through a Network Profile
Q: Can I expand the number of Floating IPs in my environment?
Answer: Yes
Q: How do I expand available Floating IPs?
Answer:
During TKGI deployment, a single Floating IP Pool ID is populated by the TKGI Operator into the OpsManager -> TKGI tile -> Networking tab
That Floating IP Pool ID becomes the default Floating Pool ID used by all Kubernetes clusters
When deployed NSX Data Center, an operator can create more Floating IP Pool IDs and expand through a Network Profile as needed
Steps:
Add new Floating IPs (FIPs) to TKGi
Update-Cluster Network Profile Validation Rules
NOTE:
fip_pool_ids is an array used within a Network Profile. It is Updatable. You can create additional FIP IDs to expand your Floating IP pool through a Network Profile
Not all Network Profile parameters are Updatable. Refer to Network Profile Parameters
Q: Are there any adjustments or recommendations to improve this setup based on TKGI and NSX-T best practices?
Answer:
Broadcom Support is not able to give architectural planning guidance specific to customer business plans. If you need architectural and related planning, customer account teams will help you with a PSO engagement to assist.
Broadcom support recommends the following planning guides and topics:
Network Planning for Installing Tanzu Kubernetes Grid Integrated Edition with VMware NSX
NSX Deployment Topologies for Tanzu Kubernetes Grid Integrated Edition
Considerations for Using the VMware NSX Policy API with TKGI
-> cni_configurations Parameters
Using Network Profiles (NSX Only)
Creating and Managing Network Profiles (NSX Only)