CNDT2021、HPEのアーキテクトが解説するKubernetesネットワークの最新情報

2021年12月13日(月)
松下 康之 - Yasuyuki Matsushita
HPEのアーキテクトがKubernetesのネットワークの基礎と最新情報を解説するセッションを紹介する。

CloudNative Days Tokyo 2021から、ヒューレットパッカードエンタープライズのアーキテクトが解説するKubernetesのネットワークアーキテクチャーと最新情報に関するセッションを紹介する。「Kubernetesネットワーキング初級者脱出ガイド -基本から最新動向まで」と題されたセッションは40分を使ってDockerとKubernetesのネットワークの違い、Kubernetesにおけるネットワークの概要、kube-proxyの性能劣化に関する議論、CNIの解説などを最新のアップデートを含め紹介する内容だ。

動画:Kubernetesネットワーキング初級者脱出ガイド -基本から最新動向まで-

セッションを行う太田航平氏

セッションを行う太田航平氏

以後は、公開されているスライドから抜粋して紹介する。

スライド:Kubernetesネットワーキング初級者脱出ガイド -基本から最新動向まで-

40分の枠を使って解説されたのは、以下の内容だ。

セッションのアジェンダ

セッションのアジェンダ

まずコンテナの代表格であるDockerのネットワークについて解説を行った。

Dockerのネットワークを解説

Dockerのネットワークを解説

このスライドではNGINXのWebサーバー、PHPとMySQLのバックエンドという構成のアプリケーションを例に挙げて解説している。

Dockerネットワークの特徴を解説

Dockerネットワークの特徴を解説

そしてDockerにおけるネットワーク機能を解説し、それがKubernetesとどう違うのか? をkubectlの出力例を交えて解説した。太田氏はKubernetesには3つの側面があるとして、その中から分散システムとしてのKubernetesの構造を説明した。

Kubernetesのネットワークを3つの層で解説

Kubernetesのネットワークを3つの層で解説

次のスライドではノードを繋ぐネットワーク、サービスを繋ぐネットワーク、Podを繋ぐネットワークに障害が発生してノードがダウンした場合でも、アプリケーション自体が他のノードで起動されるKubernetesの特徴的なオーバーレイネットワークの仕組みを解説した。

Kubernetesのネットワークを解説

Kubernetesのネットワークを解説

より具体的な仕組みとして、ロードバランサーとサービスを繋ぐkube-proxyについて解説を行った。

ロードバランサー経由でトラフィックが転送される仕組みを解説

ロードバランサー経由でトラフィックが転送される仕組みを解説

さらにCNI(Container Network Interface)についても解説を行い、Kubernetesのネットワークがプラグインの形で実装されていることを紹介した。

CNIの概要を説明

CNIの概要を説明

CNIはプラグインなので実際にはさまざまな実装例があるとして、Flannel、Calico、Ciliumなどを紹介。Ciliumは2021年10月にCNCFのインキュベーションプロジェクトとして採用されたeBPFをベースにしたネットワークソフトウェアだ。

さまざまなCNIを紹介

さまざまなCNIを紹介

またkube-proxyに関する議論として、サービスの数が2500を超えた辺りから性能が劣化することを紹介した。機能を紹介することに留まらず、コミュニティの中で何が議論されているのかを垣間見せた形になった。

iptablesベースのkube-proxyではサービス数増加に従って性能が劣化する

iptablesベースのkube-proxyではサービス数増加に従って性能が劣化する

次のスライドでkube-proxyの代替案として、eBPFをベースにしたCalicoやCiliumを紹介した。

kube-proxyの代替案を説明

kube-proxyの代替案を説明

続いてKubernetesにおける各モジュールの動きを解説した。ネットワークトラフィックがどのように動いているのかを知ることで、Kubernetesに最適なロードバランシング機能について説明を行っている。

Kubernetesのモジュールを説明

Kubernetesのモジュールを説明

etcdが分散KVSとしてクラスターの状態データを保存し、kubectlから与えられたあるべき姿と現状のクラスターの実態との違いを同じにするためにAPI Server、スケジューラー、コントローラーが動くというKubernetesの実行原理を解説している。

AWSの例を使ってトラフィックがどのようにたどるのかを説明

AWSの例を使ってトラフィックがどのようにたどるのかを説明

ここではロードバランサーからPodにトラフィックが流れる際にオーバーヘッドが発生していることを解説し、コンテナネイティブなロードバランシングについて解説。その実装についてAWS、GKEを例にとって解説した。

コンテナネイティブなネットワークについて解説

コンテナネイティブなネットワークについて解説

すでにAWSやGKEでは実装例があるが、オンプレミスのクラスターにおける実装については、技術的には可能だろうが、現実に実装されていないことを解説した。

AWSでの実装を解説

AWSでの実装を解説

続いてGateway APIの解説に移り、Gateway APIが産まれた経緯や概要などを紹介。現在のIngressだけでは不足であるとして、SIG-Networkの中で議論されていることを解説し、Ingressの代替としてその動向を注目しておくべきだと語った。

Gateway APIの概要

Gateway APIの概要

最後にまとめとして、Kubernetesの開発においてアプリケーション側、インフラストラクチャー側それぞれが責任範囲の分離を目指して開発が行われていること、そのための活動がSIGを中心に行われていることを説明して、セッションを終わった。

セッションのまとめ

セッションのまとめ

Kubernetesのネットワークの概要の基礎的な部分から技術的にボトルネックとなりそうな部分に注目して解説を行い、最新情報を踏まえつつ、今後の動向についても解説するという「初級者脱出」のためのきっかけを与えるような内容となっている。実際にはこのセッションで得た知見を出発点にして、自身でより深い内容に踏み込んでいくことを薦めるCNCFのアンバサダーらしいセッションとなった。

著者
松下 康之 - Yasuyuki Matsushita
フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。

連載バックナンバー

仮想化/コンテナイベント
第17回

CNDT2021、CNCFの元TOCメンバーがOSSにおける標準の重要性を解説

2022/2/22
AppleのシニアエンジニアKatie Gamanji氏が、クラウドネイティブにおける標準の重要性を解説したセッションを紹介する。
セキュリティイベント
第16回

CNDT2021、メルカリがマイクロサービスのセキュリティを強固にするための施策を解説

2022/2/1
CNDT2021から、メルカリのエンジニアによるマイクロサービスのセキュリティを強化する施策を解説するセッションを紹介する。
システム開発イベント
第15回

CNDT2021、クラスター運用自動化をGitOps的に行う方法論をサイバーエージェントのエンジニアが解説

2022/1/28
CNDT2021から、サイバーエージェントのエンジニアによる、GitOps的にクラスター運用自動化を行う際のポイントを解説したセッションを紹介する。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています