IBM Cloud Blog
IBM Cloud Kubernetesサービスクラスタにおけるネットワークパフォーマンスの調査
2020年08月14日
カテゴリー IBM Cloud Blog | IBM Cloud チュートリアル
記事をシェアする:
この投稿は、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 編集部
セキュリティー・ロードマップ
IBM Cloud Blog
統合脅威管理、耐量子暗号化、半導体イノベーションにより、分散されているマルチクラウド環境が保護されます。 2023 安全な基盤モデルを活用した統合脅威管理により、価値の高い資産を保護 2023年には、統合された脅威管理と ...続きを読む
量子ロードマップ
IBM Cloud Blog
コンピューティングの未来はクォンタム・セントリックです。 2023 量子コンピューティングの並列化を導入 2023年は、Qiskit Runtimeに並列化を導入し、量子ワークフローの速度が向上する年になります。 お客様 ...続きを読む
ハイブリッドクラウド・ロードマップ
IBM Cloud Blog
コンポーザブルなアプリケーション、サービス、インフラストラクチャーにより、企業は複数のクラウドにまたがるダイナミックで信頼性の高い仮想コンピューティング環境の作成が可能になり、開発と運用をシンプルに行えるようになります。 ...続きを読む