オンラインサービスはネットワーク品質の影響を受けやすく、低遅延が求められます。一方、オフラインサービスは大量のネットワーク帯域幅を消費します。これらのサービスが何の制御もなく一緒に実行されると、ネットワークリソースを奪い合う可能性があります。この競合は、サービスの遅延増大や可用性の低下につながる可能性があります。Pod のインバウンドおよびアウトバウンド帯域幅とデータパケットの優先度をカスタマイズすることで、ネットワークリソースをよりきめ細かく制御できます。これにより、サービス間の帯域幅競合による影響を軽減できます。
Pod の帯域幅制限
標準的な Kubernetes の Pod アノテーションを使用して、Pod のインバウンドおよびアウトバウンド帯域幅を制限できます。
アノテーション | 説明 |
| Pod のインバウンド帯域幅制限。値の例は 10 Mbps です。 |
| Pod のアウトバウンド帯域幅制限。値の例は 10 Mbps です。 |
Terway が共有 Elastic Network Interface (ENI) モードで構成され、かつ IPvlan+eBPF ネットワークアクセラレーションモードが有効になっている場合、
kubernetes.io/ingress-bandwidthアノテーションはサポートされません。Terway が排他的な ENI モードで構成されている場合、
kubernetes.io/ingress-bandwidthアノテーションはサポートされません。DataPathV2 ネットワークアクセラレーションモードでは、Terway v1.13.0 以降が Ingress の帯域幅制限をサポートします。これらの帯域幅制限は、ノードに出入りするトラフィックにのみ適用されます。同一ノード内のトラフィックには適用されません。
v1.3.0 より前の Terway バージョンで作成されたクラスターの場合、Terway の構成を変更してこの機能を有効にする必要があります。詳細については、以下の手順をご参照ください。
v1.3.0 より前の Terway で作成されたクラスター
ご利用のクラスターが v1.3.0 より前の Terway バージョンで作成された場合は、Terway の構成を変更してこれらのアノテーションを有効にする必要があります。
パケット優先度制御ポリシー
デフォルトでは、ネットワークインターフェースカード (NIC) のキューは、先入れ先出し (FIFO) 方式でパケットを送信します。Terway を使用すると、Pod のパケット優先度制御ポリシーを構成できます。これにより、ピークトラフィック時に優先度の高いサービスのパケットが最初に送受信されるようになり、遅延が短縮されます。
この機能はデフォルトで無効になっています。Terway の構成を変更することで有効にできます。
この機能は、DataPathV2 ネットワークアクセラレーションモードが有効になっているクラスターではサポートされていません。
この機能は、排他的な ENI モードのノードではサポートされていません。
優先度制御を有効にすると、ENI の NIC キューは mq+prio に置き換えられます。
次の Pod アノテーションを使用して、Pod パケットの優先度を指定します。
説明 | 備考 |
k8s.aliyun.com/network-priority: "guaranteed" | 最高の優先度。遅延の影響を受けやすいサービスに適しています。 |
k8s.aliyun.com/network-priority: "best-effort" | 中程度の優先度。一般的なサービスに適しています。 |
k8s.aliyun.com/network-priority: "burstable" | 最低の優先度。高帯域幅を必要とするものの、遅延の影響を受けにくいサービスに適しています。 |