3.11. コントロールプレーンノード間のネットワークジッターの測定


ハートビート間隔の値は、メンバー間の平均ラウンドトリップ時間(RTT)の最大値(通常はラウンドトリップ時間の約 1.5 倍)です。OpenShift Container Platform のデフォルトのハートビート間隔が 100 ミリ秒の場合、コントロールプレーンノード間の推奨される RTT は約 33 ミリ秒未満で、最大は 66 ミリ秒未満です(66 ミリ秒の 1.5 ミリ秒と 99 ミリ秒)。詳細については、etcd のチューニングパラメーターの設定を参照してください。より高いネットワーク遅延が発生すると、サービスに影響を与えるイベントやクラスターが不安定になる可能性があります。

ネットワーク遅延は、以下の要因に限定されるが、多くの要因の影響を受けます。

  • copper、fiber、ワイヤレス、Satellite などのトランスポートネットワークのテクノロジー
  • トランスポートネットワーク内のネットワークデバイスの数と品質

適切な評価リファレンスは、組織のネットワークレイテンシーと、毎月の IP レイテンシーの統計など、通信プロバイダーによって公開されている商用レイテンシーと比較することです。

より正確な計算を行うには、ネットワークジッターを使用したネットワークレイテンシーを考慮してください。ネットワークジッター は、ネットワークレイテンシーの差異、またはより具体的には、受信パケットの遅延の変動です。理想的なネットワークの状態では、ジッターは可能な限りゼロに近いものです。ネットワークジッターは、時間における実際のネットワークレイテンシーが RTT とマイナスのジッターになるため、etcd のネットワーク遅延の計算に影響します。たとえば、最大遅延が 80 ミリ秒でジッターが 30 ミリ秒のネットワークで、110 ミリ秒のレイテンシーが発生します。つまり、etcd はハートビートがなく、要求のタイムアウトと一時的なリーダーの損失が発生します。リーダーの喪失と再選出の間、Kubernetes API は、サービスに影響を与えるイベントやクラスターの不安定性を引き起こす要求を処理できません。

すべてのコントロールプレーンノード間でネットワークジッターを測定することが重要です。これを行うには、UDP モードで iPerf3 ツールを使用できます。

前提条件

手順

  1. コントロールプレーンノードの 1 つに接続し、ホストネットワークモードで iPerf サーバーとして iPerf コンテナーを実行します。サーバーモードで実行している場合、このツールは TCP テストおよび UDP テストを受け入れます。< iperf_image> を iPerf イメージ に置き換えるように注意し、次のコマンドを入力します。

    # podman run -ti --rm --net host <iperf_image> iperf3 -s
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを入力して、別のコントロールプレーンノードに接続し、UDP クライアントモードで iPerf を実行します。

    # podman run -ti --rm --net host <iperf_image> iperf3 -u -c <node_iperf_server> -t 300
    Copy to Clipboard Toggle word wrap

    デフォルトのテストは 10 秒間実行され、最後にクライアント出力に、クライアントパースペクティブからの平均ジッターが表示されます。

  3. 次のコマンドを入力して、デバッグノードモードを実行します。

    # oc debug node/m1
    Copy to Clipboard Toggle word wrap

    出力例

    Starting pod/m1-debug ...
    To use host binaries, run `chroot /host`
    Pod IP: 198.18.111.13
    If you don't see a command prompt, try pressing enter.
    Copy to Clipboard Toggle word wrap

  4. 次のコマンドを入力します。

    sh-4.4# chroot /host
    Copy to Clipboard Toggle word wrap
    sh-4.4# podman run -ti --rm --net host <iperf_image> iperf3 -u -c m0
    Copy to Clipboard Toggle word wrap

    出力例

    Connecting to host m0, port 5201
    [  5] local 198.18.111.13 port 60878 connected to 198.18.111.12 port 5201
    [ ID] Interval           Transfer     Bitrate         Total Datagrams
    [  5]   0.00-1.00   sec   129 KBytes  1.05 Mbits/sec  91
    [  5]   1.00-2.00   sec   127 KBytes  1.04 Mbits/sec  90
    [  5]   2.00-3.00   sec   129 KBytes  1.05 Mbits/sec  91
    [  5]   3.00-4.00   sec   129 KBytes  1.05 Mbits/sec  91
    [  5]   4.00-5.00   sec   127 KBytes  1.04 Mbits/sec  90
    [  5]   5.00-6.00   sec   129 KBytes  1.05 Mbits/sec  91
    [  5]   6.00-7.00   sec   127 KBytes  1.04 Mbits/sec  90
    [  5]   7.00-8.00   sec   129 KBytes  1.05 Mbits/sec  91
    [  5]   8.00-9.00   sec   127 KBytes  1.04 Mbits/sec  90
    [  5]   9.00-10.00  sec   129 KBytes  1.05 Mbits/sec  91
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
    [  5]   0.00-10.00  sec  1.25 MBytes  1.05 Mbits/sec  0.000 ms  0/906 (0%)  sender
    [  5]   0.00-10.04  sec  1.25 MBytes  1.05 Mbits/sec  1.074 ms  0/906 (0%)  receiver
    
    iperf Done.
    Copy to Clipboard Toggle word wrap

  5. iPerf サーバーの出力には、間隔ごとにジッターが表示されます。平均は最後に示されています。このテストの目的上、テスト中に発生した最大ジッターを特定し、1 秒目の出力には無効な測定が含まれる可能性があるため、識別します。以下のコマンドを実行します。

    # oc debug node/m0
    Copy to Clipboard Toggle word wrap

    出力例

    Starting pod/m0-debug ...
    To use host binaries, run `chroot /host`
    Pod IP: 198.18.111.12
    If you don't see a command prompt, try pressing enter.
    Copy to Clipboard Toggle word wrap

  6. 次のコマンドを入力します。

    sh-4.4# chroot /host
    Copy to Clipboard Toggle word wrap
    sh-4.4# podman run -ti --rm --net host <iperf_image> iperf3 -s
    Copy to Clipboard Toggle word wrap

    出力例

    -----------------------------------------------------------
    Server listening on 5201
    -----------------------------------------------------------
    Accepted connection from 198.18.111.13, port 44136
    [  5] local 198.18.111.12 port 5201 connected to 198.18.111.13 port 60878
    [ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
    [  5]   0.00-1.00   sec   124 KBytes  1.02 Mbits/sec  4.763 ms  0/88 (0%)
    [  5]   1.00-2.00   sec   127 KBytes  1.04 Mbits/sec  4.735 ms  0/90 (0%)
    [  5]   2.00-3.00   sec   129 KBytes  1.05 Mbits/sec  0.568 ms  0/91 (0%)
    [  5]   3.00-4.00   sec   127 KBytes  1.04 Mbits/sec  2.443 ms  0/90 (0%)
    [  5]   4.00-5.00   sec   129 KBytes  1.05 Mbits/sec  1.372 ms  0/91 (0%)
    [  5]   5.00-6.00   sec   127 KBytes  1.04 Mbits/sec  2.769 ms  0/90 (0%)
    [  5]   6.00-7.00   sec   129 KBytes  1.05 Mbits/sec  2.393 ms  0/91 (0%)
    [  5]   7.00-8.00   sec   127 KBytes  1.04 Mbits/sec  0.883 ms  0/90 (0%)
    [  5]   8.00-9.00   sec   129 KBytes  1.05 Mbits/sec  0.594 ms  0/91 (0%)
    [  5]   9.00-10.00  sec   127 KBytes  1.04 Mbits/sec  0.953 ms  0/90 (0%)
    [  5]  10.00-10.04  sec  5.66 KBytes  1.30 Mbits/sec  1.074 ms  0/4 (0%)
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
    [  5]   0.00-10.04  sec  1.25 MBytes  1.05 Mbits/sec  1.074 ms  0/906 (0%)  receiver
    -----------------------------------------------------------
    Server listening on 5201
    -----------------------------------------------------------
    Copy to Clipboard Toggle word wrap

  7. 計算されたジッターをペナルティーとしてネットワークレイテンシーに追加します。たとえば、ネットワーク遅延が 80 ミリ秒で、ジッターが 30 ミリ秒の場合、コントロールプレーンの目的で有効なネットワーク遅延として 110 ミリ秒を検討してください。この例では、その値が 100 ミリ秒のしきい値を超え、システムはハートビートを見逃します。
  8. etcd のネットワークレイテンシーを計算するときは、次の式の合計である有効なネットワークレイテンシーを使用します。

    RTT + jitter

    平均ジッター値を使用してペナルティを計算できる可能性がありますが、etcd ハートビートタイマーが次の方の合計よりも低い場合、クラスターはハートビートを偽造する可能性があります。

    RTT + max (jitter)

    代わりに、より回復力のあるデプロイメントに 99 パーセンタイルまたは最大ジッター値を使用することを検討してください。

    effective Network Latency = RTT + max (jitter)

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat