IBM Cloud Blog

IBM Cloud Kubernetesサービスクラスタにおけるネットワークパフォーマンスの調査

記事をシェアする:

この投稿は、2020年8月8日に、米国 Cloud Blog(英語) に掲載されたブログの抄訳です。

Kubernetes クラスタ上のネットワーク接続が非常に遅くなることがあり、どこにボトルネックがあるのかを理解する必要があります。

IBM Cloud Kubernetes Service(英語) はマネージドサービスであるため、ネットワークのデバッグは非常に困難な場合があります。今回の記事では、オープンソースのツールを使って自分でネットワークパフォーマンスをデバッグする方法を紹介します。

iPerf3

iPerf3は、ネットワークインターフェースに許容される最大帯域幅を測定するためによく使われるオープンソースのソフトウェアです。すべてのコンテナイメージにデフォルトでインストールされているわけではないので、インストールするには自分でコンテナイメージを定義する必要があります。

例えば、以下のようになります。

FROM nginx
RUN apt-get update -y && apt-get install iperf3 -y

事前に定義されたコンテナイメージを使用したい場合は、ClearLinux の iperf イメージ(IBM外のWebサイトへ)を使用することができます。

コンテナイメージを入手したら、IBM Cloud Kubernetes Service クラスタにデプロイする必要があります。そのためには、DaemonSet(IBM外のWebサイトへ)リソースを使用します。

 apiVersion: apps/v1
 kind: DaemonSet
 metadata:
    name: iperf3
    labels:
       app: iperf3
 spec:
    selector:
       matchLabels:
         app: iperf3
    template:
       metadata:
          labels:
             app: iperf3
       spec:
          containers:
          - name: iperf3
             image: clearlinux/iperf:3
             command: ['/bin/sh', '-c', 'sleep 1d']
             ports:
             - containerPort: 5201

DaemonSetの定義に従って、各ノードに1つのレプリカが作成されます。

テスト

DaemonSetの準備ができたら、作成されたすべてのポッドをリストアップします。

kubectl get pods -o wide -l app=iperf3

出力は以下のようなものになるはずです。

 NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE
 iperf3-29dwc 1/1 Running 0 4m 172.30.24.203 10.187.165.223
 iperf3-2xctw 1/1 Running 0 4m 172.30.20.85 10.94.110.40
 iperf3-8zlhb 1/1 Running 0 4m 172.30.106.81 10.94.110.35
 iperf3-hsv7g 1/1 Running 0 4m 172.30.133.17 10.185.69.203
 iperf3-kx6h6 1/1 Running 0 4m 172.30.177.47 10.187.165.224
 iperf3-wzkp5 1/1 Running 0 4m 172.30.32.22 10.185.69.204

そして、1つのポッドをマスターとして選択し(送信されたすべてのパケットを受信する)、他のポッドをクライアントとして選択します。

ターミナルを開いて、マスターポッドで以下を実行します。

kubectl exec -it POD_NAME -- iperf3 -s -f M

別のターミナルを開き、各クライアントポッドに対して以下を実行します。

kubectl exec -it POD_NAME -- iperf3 -c MASTER_POD_IP -f M

結果は以下のようなものになるはずです。

 Connecting to host 172.30.70.199, port 5201
 [ 5] local 172.30.35.143 port 34202 connected to 172.30.70.199 port 5201
 [ ID] Interval Transfer Bitrate Retr Cwnd
 [ 5] 0.00-1.00 sec 617 MBytes 617 MBytes/sec 41 1.43 MBytes
 [ 5] 1.00-2.00 sec 714 MBytes 714 MBytes/sec 0 1.75 MBytes
 [ 5] 2.00-3.00 sec 635 MBytes 635 MBytes/sec 74 1.12 MBytes
 [ 5] 3.00-4.00 sec 669 MBytes 669 MBytes/sec 49 1.17 MBytes
 [ 5] 4.00-5.00 sec 649 MBytes 648 MBytes/sec 340 908 KBytes
 [ 5] 5.00-6.00 sec 641 MBytes 642 MBytes/sec 0 1.32 MBytes
 [ 5] 6.00-7.00 sec 649 MBytes 649 MBytes/sec 0 1.63 MBytes
 [ 5] 7.00-8.00 sec 670 MBytes 670 MBytes/sec 57 1.42 MBytes
 [ 5] 8.00-9.00 sec 661 MBytes 661 MBytes/sec 11 1.26 MBytes
 [ 5] 9.00-10.00 sec 634 MBytes 634 MBytes/sec 362 969 KBytes
 - - - - - - - - - - - - - - - - - - - - - - - - -
 [ ID] Interval Transfer Bitrate Retr
 [ 5] 0.00-10.00 sec 6.38 GBytes 654 MBytes/sec 934 sender
 [ 5] 0.00-10.04 sec 6.38 GBytes 650 MBytes/sec receiver
 iperf Done.

結論

これは、Kubernetes クラスタでネットワークパフォーマンスをデバッグする方法の 1 つにすぎません。

iPerf テストの出力が低いビットレートを返す場合は、クラスタ上で何かが誤って設定されているため、すぐに IBM Cloud サポートに問い合わせて調べてもらう必要があります。

IBM Cloud サポートセンターを介してサポートに問い合わせてください。


翻訳:IBM Cloud Blog 編集部

More IBM Cloud Blog stories

ベータ版登場:第4世代インテル® Xeon® スケーラブル・プロセッサーをIBM CloudのVPC向け仮想サーバーに搭載

IBM Cloud Blog, IBM Cloud News, IBM Cloud チュートリアル

IBM Cloud VPC 内のインテル® Xeon テクノロジー方向付けを支援する専用アーリーアクセスにサインアップしてください。 第4世代インテル® Xeon® スケーラブル・プロセッサーを搭載したIBM Cloud ...続きを読む


第4世代インテル® Xeon® スケーラブル・プロセッサーをIBM Cloud ベアメタルサーバーで利用開始

IBM Cloud Blog, IBM Cloud News, IBM Cloud チュートリアル

インテルとIBM Cloudは企業がよりハイパフォーマンスな環境を運用できるよう共同支援しています。 本日、インテル®は第4世代インテル® Xeon® スケーラブル・プロセッサーを世界に発表し、IBMは同時にこれらの最新 ...続きを読む


今後の展望: IBM Cloud における第 4 世代インテル® Xeon® スケーラブル・プロセッサー

IBM Cloud Blog, IBM Cloud News, IBM Cloud チュートリアル

第4世代インテル® Xeon® スケーラブル・プロセッサーが、2023年のクラウド・コンピューティング・トレンドを実現可能とする要因はどこにあるのでしょうか? IBM Cloudを見てみましょう 本日、IBMはIntel ...続きを読む