ULB での SCTP ロードバランシングのサポートについて詳述し、主要なパラメータ、要件、および参照情報についてまとめます。SCTP サービス配布の管理について説明します。
ULB は、ダイレクトサービス経由で SCTP ロードバランシングを提供します。すべての SCTP LoadBalancer カスタムリソースは、プロトコル:SCTP および ulbDirectServiceEnabled:true に設定する必要があります。ULB は、SCTP INIT パケットを処理する際に、アソシエーションに適したバックエンド アプリケーション Pod を選択します。後続のパケットでは、同じバックエンドが使用されますが、記録されたアソシエーションの状態は有効なままです。マルチホーム アソシエーションの場合、別の学習済みピアアドレス経由で受信した通信も、同じバックエンドにリダイレクトされます。
SCTP ロード バランシング構成の要件
|
エリア |
管理者の要件 |
|---|---|
| ノードイングレスの可用性 | ULB クラスターポリシーは、構成されたインターフェイスがないか、停止している場合でも有効です。ノードは、[状態:起動(state: up)] と報告している間にのみ、そのインターフェイス経由で ULB サービス通信を受信できます。ULB は、インターフェイスが動作可能になると、自動的にそのインターフェイスの使用を開始します。 |
| バックエンドネットワーク接続 | SCTP ダイレクト サービス 通信を受信するための各バックエンド Pod は、生成された NAD を参照する Pod テンプレートから作成する必要があります。これにより、Pod 内に ULB 管理対象インターフェイスとサービスアドレスが作成されます。 |
| プロトコルと機能 | LoadBalancer で、プロトコル:SCTP and ulbDirectServiceEnabled:true と設定します。 |
| サービスアドレス | LoadBalancer serviceIP と ULB ネットワークポリシーで設定されたものと同じアドレスを使用します。 |
| ポートおよびアプリケーション | servicePort と target.port を同じ値に設定します。バックエンド アプリケーションは、構成されたサービスアドレスとポートで SCTP 通信を受け入れる必要があります。 |
| バックエンドの選択 | LoadBalancer 名前空間で対象のバックエンド アプリケーション Pod と一致するように、target.selectors.matchLabels を構成します。 |
| インターフェイス MTU | 必要に応じて、1280 ~ 9000 の MTU を設定します。デフォルトは 1500 です。 |
SCTP ロードバランシングに向けた ULB 構成および生成リソース
SCTP デプロイメントの場合、それぞれのセクションの説明に従い、ULB クラスターポリシーを使用して目的のノードインターフェイスを構成し、ULBネットポリシーを使用してサービスアドレスを構成します。
ULB は、コミットされた構成を処理し、対応する Kubernetes リソースを自動的に作成または更新します。管理者は、これらのリソースを手動で作成しません。
ULB クラスターポリシーには、ULB が着信サービス通信を処理するノードインターフェイスが含まれます。ULB ネットワークポリシーには、ダイレクトサービス IP アドレスと、必要に応じてインターフェイス MTU が含まれています。ULB ネットワークポリシーの場合、ULB は、ポリシーと同じ名前空間にポリシーと同じ名前で Multus NetworkAttachmentDefinition も作成します。Backend application pod テンプレートは、k8s.v1.cni.cncf.io/networks Pod 注釈によってこの名前を参照します。Multus が Pod ネットワークを作成すると、構成された各サービスアドレスが Pod 内の個別の ULB 管理対象インターフェイスに割り当てられます。
生成されたリソースを確認するには、次を使用します。
kubectl get ulbclusterpolicy global-ulb-cluster-policy
kubectl get ulbnetworkpolicy -n <application-namespace> <network-policy-name>
kubectl get network-attachment-definitions -n <application-namespace> <network-policy-name>