Unified Load Balancer 構成およびアドミニストレーション ガイド、リリース 2026.02

PDF

Unified Load Balancer 構成およびアドミニストレーション ガイド、リリース 2026.02

ULB で PFCP ロードバランシングをサポートする

Want to summarize with AI?

Log in

ULB での PFCP ロードバランシングのサポートについて説明し、主要なパラメータ、要件、および参照情報についてまとめます。ULB は、バックエンド Pod 全体に PFCP 通信を分散する eBPF ベースの PFCP ロードバランサを提供します。


ULB は、セッションアフィニティを維持しながらバックエンド Pod 全体に PFCP 通信を分散する、eBPF ベースの PFCP ロードバランサを提供します。ノードレベルのメッセージ、新しいセッションメッセージ、および既存のセッションメッセージを個別に処理します。アプリケーションは、セッションレベルとノードレベルの PFCP 通信に個別のバックエンド Pod グループを使用できます。


PFCP ロードバランサのカスタムリソース


セッションレベルのメッセージ

apiVersion: lbs.cisco.com/v1alpha1
kind: LoadBalancer
metadata:
  name: <pfcp-sess-lb-name>
spec:
  lbMode: bpf
  protocol: PFCP
  serviceIPs:
  - <ipv4_address>
  servicePort: 8805
  target:
    port: <target-port>
    selectors:
      matchLabels:
        <label-key1>: <label-value1>
        <label-key2>: <label-value2>
  trafficManagementPolicyRef: <pfcp-sess-tmp-name>
  ulbDirectServiceEnabled: false

ノードレベルのメッセージ

apiVersion: lbs.cisco.com/v1alpha1
kind: LoadBalancer
metadata:
  name: <pfcp-node-lb-name>
spec:
  lbMode: bpf
  protocol: PFCP
  serviceIPs:
  - <pfcp-service-ip>
  servicePort: 8805
  target:
    port: <target-port>
    selectors:
      matchLabels:
        <label-key1>: <label-value1>
        <label-key2>: <label-value2>

  trafficManagementPolicyRef: <pfcp-node-tmp-name>
  ulbDirectServiceEnabled: false

PFCP 通信管理ポリシーのカスタムリソース


セッションレベルのメッセージ

apiVersion: lbs.cisco.com/v1alpha1
kind: TrafficManagementPolicy
metadata:
  name: <pfcp-sess-lb-name>
spec:
  # PFCP session message handling (Message Type >= 50)
  pfcpSessionMessages:

    # Load balancing algorithm 
    algorithm: RANDOM_LOCAL

    # Affinity policy 
    sessionAffinity:
      # Node identifier extraction 
      nodeIdentifier:
        target:
          header: PFCP          # PFCP Header
          offset: 4             # SEID field offset
          length: 8             # SEID is 8 bytes
        operation:
          type: BITWISE_AND
          mask: "0x3C00000000000000"    # Extract bits 58-61 (4 bits)

      # Session identifier extraction 
      sessionIdentifier:
        target:
          header: PFCP          # PFCP Header
          offset: 4             # SEID field offset
          length: 8             # SEID is 8 bytes
        operation:
          type: BITWISE_AND
          mask: "0x03FFFFFFFFFFFFFF"    # Extract bits 0-57 (58 bits)

      # Session Map provisioning strategy
      sessionMap:
        provisioningMode: APPLICATION_PUSH_NOTIFICATION 

      # Affinity Notification
      affinityNotification:
        # Currently single rule is allowed
        rules:
          - condition: KEY_NOT_FOUND

            # Action to take by marking spare bit in PFCP Header
            # SET_PFCP_SPARE_BIT4: Set spare bit 4 in PFCP Header              
            # SET_PCFP_SPARE_BIT5: Set spare bit 5 in PFCP Header
            action: SET_PFCP_SPARE_BIT4     

ノードレベルのメッセージ

apiVersion: lbs.cisco.com/v1alpha1
kind: TrafficManagementPolicy
metadata:
  name: <pfcp-node-tmp-name>
spec:
  # PFCP node message handling (Message Type < 50)
  pfcpNodeMessages:

    # Load balancing algorithm (RANDOM)
    algorithm: RANDOM

PFCP エグレス管理ポリシーカスタムリソース


セッションレベルのメッセージ

apiVersion: lbs.cisco.com/v1alpha1
kind: EgressManagementPolicy
metadata:
  name: <pfcp-sess-emp-name>
spec:
  egressIPs:
  - <pfcp-service-ip>
  egressMode: bpf
  egressPort:
    stateful:
    - podName: <pfcp-sess-0-name>
      portRanges:
      - <port-range11...port-range1n>
    - podName: <pfcp-sess-1-name>
      portRanges:
      - <port-range21...port-range2n>
    - podName: <pfcp-sess-2-name>
      portRanges:
      - <port-range31...port-range3n>
    - podName: <pfcp-sess-3-name>
      portRanges:
      - <port-range31...port-range4n>
    - podName: <pfcp-sess-4-name>
      portRanges:
      - <port-range41...port-range5n>
  protocol: PFCP
  target:
    selectors:
      matchLabels:
        <label-key1>: <label-value1>
        <label-key2>: <label-value2>

ノードレベルのメッセージ

apiVersion: lbs.cisco.com/v1alpha1
kind: EgressManagementPolicy
metadata:
  name: <pfcp-node-emp-name>
spec:
  egressIPs:
  - <pfcp-service-ip>
  egressMode: bpf
  egressPort:
    stateful:
    - podName: <pfcp-node-0-name>
      portRanges:
      - <port-range11...port-range1n>
    - podName: <pfcp-node-1-name>
      portRanges:
      - <port-range21...port-range2n>
  protocol: PFCP
  target:
    selectors:
      matchLabels:
        <label-key1>: <label-value1>
        <label-key2>: <label-value2>

制限事項:

  1. ULB はフラグメント化された IPv4 パケットまたは IPv6 拡張ヘッダーチェーンを明示的に処理しません。

  2. このリリースでは、ローリングアップグレードとダウングレードはサポートされていません。

  3. Pod やノードの再起動などのレジリエンシイベントからのリカバリは、このリリースではサポートされていません。