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 for VMware Solutionsの特別プログラム

IBM Cloud Blog

2021年08月24日に、米国 Two New Promotions for IBM Cloud for VMware Solutionsに掲載されたブログの抄訳です。  Veeam とCaveonix RiskFore ...続きを読む


Kubernetes効果:チームの変革に火をつける

IBM Cloud Blog

この投稿は、2020年08月12日に、米国 IBM Cloud Blog に掲載されたブログ(英語)の抄訳です。 Kubernetesによって自動化を実現し、可能な限り自動化の文化を作ることができます。 クライアントがク ...続きを読む


【経営層/IT部門向けメールニュース登録受付中】IBM クラウド・ビジョン ニュース 9月特集

IBM Cloud Blog, IBM Cloud News, IBM Services...

ITをさらなる成長のエンジンとするための戦略やヒントをご紹介するメールニュース「IBMクラウド・ビジョン ニュース」。次回の特集は、「ニューノーマル時代のクラウド・コンピューティングとITソリューション」です。 メールニ ...続きを読む