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

IBM Cloud『医療機関向けクラウドサービス対応セキュリティリファレンス (2024年度)』公開のお知らせ

IBM Cloud Blog, IBM Cloud News

このたびIBM Cloudでは総務省ならびに経済産業省が提唱する医療業界におけるクラウドサービスの利活用に関するガイドラインに対応していることを確認し、整理したリファレンス『医療機関向けクラウドサービス対応セキュリティリ ...続きを読む


IBM Cloud追加認定のお知らせ – ISMAP登録

IBM Cloud Blog, IBM Cloud News

昨年認定取得いたしましたIBM CloudのISMAP登録において、本日4月4日にサービスが追加されたことをお知らせします。 認定の概要は以下の通りです。詳細情報はISMAP公式サイト内のISMAPクラウドサービスリスト ...続きを読む


Red Hat OpenShift on IBM Cloudで OpenShift v4.4 をご利用いただけます

IBM Cloud News, IBM Cloud アップデート情報, IBM Cloud チュートリアル

この投稿は、2020年7月22日に、米国 IBM Cloud Announcementに掲載されたブログの抄訳です。    OpenShift v4.4には、多くのエキサイティングな新機能があります Red H ...続きを読む