Unified Load Balancer Configuration and Administration Guide, Release 2026.03

PDF

Unified Load Balancer Configuration and Administration Guide, Release 2026.03

ULB cluster policy (UCP)

Want to summarize with AI?

Log in

Introduces ULB cluster policy (UCP) and highlights key concepts, requirements, and operational considerations. It covers The ULB Cluster Policy identifies the node interfaces through which ULB receives service traffic.


The ULB Cluster Policy identifies the node interfaces through which ULB receives service traffic. Configure the names of the physical interfaces or VLAN subinterfaces used by the service-facing network. ULB applies this configuration across the cluster and activates its ingress eBPF processing on each configured interface that is available and up.

The policy identifies interfaces; it does not create them. You can commit the policy even if a configured interface is currently missing or down on one or more nodes. The policy remains valid, but an affected node cannot process ULB service traffic through that interface. When the interface becomes available and up, ULB detects the change and begins using it automatically; the administrator does not need to recommit the policy.

For service availability, ensure that the configured interface exists and is up on every node expected to receive ULB service traffic. A missing or unavailable interface affects processing on that node but does not invalidate the cluster-wide policy.

After the CLI configuration is committed, ULB automatically creates or updates the cluster-scoped policy. The administrator does not create the Kubernetes resource or specify its generated name. Removing an interface from the CLI configuration stops ULB from using that interface. Removing all interface entries removes the generated policy.


Configure the ULB cluster policy

Procedure

Configure the node interfaces that ULB will use for service traffic:

[cluster1/data] lbs# config
[cluster1/data] lbs(config)# cluster-policy
[cluster1/data] lbs(config-cluster-policy)# node-interface name ens192.1001
[cluster1/data] lbs(config-cluster-policy)# exit
[cluster1/data] lbs(config)# end

Verify the configuration

Procedure

1.

Verify that ULB created the policy with the intended interface names:

kubectl get ulbclusterpolicy global-ulb-cluster-policy -o yaml
Sample O/p:
kubectl get ulbclusterpolicy global-ulb-cluster-policy -o yaml
apiVersion: lbs.cisco.com/v1alpha1
kind: UlbClusterPolicy
metadata:
  name: global-ulb-cluster-policy
spec:
  nodeInterfaces:
  - name: ens192.1001
2.

Check the interface state reported for each node (the UlbNodeInfo will be created by ULB):

kubectl get ulbnodeinfos -o yaml
	Sample O/p:
apiVersion: v1
items:
- apiVersion: lbs.cisco.com/v1alpha1
  kind: UlbNodeInfo
  metadata:
    name: <ulbnodeinfo-node-name-1>
  spec:
    interfaces:
    - name: ens192.1001
      primaryIpv4: <ipv4-address>
      primaryIpv6: <ipv6-address>
      state: up
    nodeName: <node-name-1>

- apiVersion: lbs.cisco.com/v1alpha1
  kind: UlbNodeInfo
  metadata:
    name: <ulbnodeinfo-node-name-2>
  spec:
    interfaces:
    - name: ens192.1001
      primaryIpv4: <ipv4-address>
      primaryIpv6: <ipv6-address>
      state: up
    nodeName: <node-nmae-2>

kind: List

ULB node-interface operational states

Reported state

Meaning and administrator action

up

The interface is available for ULB service processing. No interface-level action is required.

down

The interface exists but is not operational. Bring the interface up before directing service traffic to that node.

unknown

The interface was not found. Verify the configured name or create the required interface on that node.

Note

The presence of the ULB Cluster Policy confirms that the configuration was accepted. It does not confirm that the configured interface is currently available on every node. Use the per-node interface state to verify operational readiness.


Configure the ULB cluster policy with IP pool

Procedure

Configure the node interfaces that ULB will use for service traffic, along with the IP pool for the pod’s secondary interfaces.

[cluster1/data] lbs# config
[cluster1/data] lbs(config)# cluster-policy
[cluster1/data] lbs(config-cluster-policy)# node-interface name <interface-name>
[cluster1/data] lbs(config-cluster-policy)# pod-ip-pool name <pool-name> ip-version v4 cidr <ipv4-cidr> node-subnet-prefix <ipv4-prefix>
[cluster1/data] lbs(config-cluster-policy)# pod-ip-pool name <pool-name> ip-version v6 cidr <ipv6-cidr> node-subnet-prefix <ipv6-prefix>
[cluster1/data] lbs(config-cluster-policy)# exit
[cluster1/data] lbs(config)# end