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

【NTTコミュニケーションズ様との共同実証報告】AI時代のネットワーク運用高度化に向けた取り組み

IBM Cloud Blog, オートメーション

システム障害と聞くだけで緊張してしまうのは私だけでしょうか?心理的にも体力的にも負荷が高いこの仕事をAIによって、なんとか楽にならないのか、と誰しもが思っています。そこで、IBMのAIによる運用支援ソリューションであるA ...続きを読む


IBMテクノロジーをフル活用しサービス競争力を大幅に向上させた、証券会社向けサービス「KICSクラウド」とは?

IBM Cloud Blog, IBM Partner Ecosystem

光世証券株式会社(以下、光世証券)は、証券業務を行う事業者向けに、証券基幹業務システムをクラウドで利用できる“KICS クラウド”の提供を開始することを発表しました。KICSクラウドはIBM Cloud環境で稼働している ...続きを読む


700社が効果を実感!コンテンツマネジメントシステム(CMS)を用いたWebサイト運用における課題への最適なアプローチ

IBM Cloud Blog, IBM Partner Ecosystem, デジタル変革(DX)

近年、PC、スマートフォン、タブレット、スマートウォッチなど、デバイスの多様化により、それぞれのデバイスに適した形で情報を配信することや、ユーザー毎に最適な情報を出し分けた配信というものが求められ、Webサイトの管理や更 ...続きを読む