「Kubernetes」を使うなら、まず知っておきたい「Flannel」と「Calico」の通信コンテナネットワークの基礎知識【第9回】

コンテナ間の通信を実現するCNIプラグインを使うことで、KubernetesのPod間通信が可能になります。代表的なオープンソースのCNIプラグインを紹介します。

2021年12月13日 05時00分 公開
[奈良昌紀, 細谷典弘, 千葉 豪ネットワンシステムズ]

 コンテナオーケストレーター「Kubernetes」のクラスタ(Kubernetesクラスタ)におけるネットワークは、一般的にCNI(Container Networking Interface)プラグインを使用して構成します。CNIは業界団体CNCF(Cloud Native Computing Foundation)のプロジェクトとして定義された「Linux」コンテナ向けのネットワークの仕様であり、CNIプラグインはこの仕様に基づいたプラグインです。CNIの仕様に基づいたプラグインであれば、Kubernetesだけではなく「Cloud Foundry」や「Apache Mesos」などの主要なコンテナオーケストレーターでも利用することが可能です。

 オープンソースのCNIプラグインが豊富に存在する他、さまざまなベンダーが自社のネットワーク製品やサービスを活用するためのCNIプラグインを提供しています。CNIプラグインを選択する際の参考として、本稿はまずオープンソースの主要なCNIプラグインを紹介します。

オープンソースのCNIプラグイン

 オープンソースで開発されているCNIプラグインは概して、Kubernetesクラスタ内のソフトウェアだけで機能します。そのため、Kubernetesを使ったさまざまなコンテナで利用することが可能です。

Flannel

会員登録(無料)が必要です

 「Flannel」は非常にシンプルなKubernetesのCNIプラグインとして豊富な実績を持ちます。にLinuxカーネルの機能を利用して、仮想ネットワーク用のプロトコル「VXLAN」(Virtual eXtensible Local Area Network)を使った「ノード」(コンテナの実行ホスト)間のオーバーレイネットワーク(論理的に制御可能なネットワーク)を構成し、コンテナ向けのネットワークを作成します。Flannelはノード内の「flannel.1」というネットワークインタフェースでノードをまたぐPod間通信(Podはコンテナの集合体)をVXLANによってカプセル化(プロトコル用のヘッダ情報の付与)し、トンネリング(通信経路の確立)をして他のノードに届けます。受信したノードがカプセル化を解き、Pod同士の通信が実現します(図1)。シンプルな実装となっており、Pod間通信を制御するKubernetesの機能「Network Policy」は利用できません。

画像 図1 FlannelによるKubernetesネットワーク(「eth0」はPodのネットワークインタフェース。「veth」は仮想ネットワークインタフェース。「cni0」「cni1」はブリッジのインタフェース)《クリックで拡大》

Calico

 「Calico」はノードをまたぐPod間通信をFlannelのようにカプセル化する方法と、カプセル化しない方法のどちらかを選択することが可能です。Calicoは各ノードに、Podが利用するCIDR(Classless Inter-Domain Routing、アドレス割り当ての仕組み)のネットワークアドレス(Pod CIDR)を割り当てます。各ノード内で起動する「BIRD」(経路制御プロトコル「BGP」を使ったプログラム)が、Pod CIDRを経路情報として交換し、ノード内のルートテーブルに反映します。ノードはPodが送信したパケットをルートテーブルに基づいて宛先Podが存在するノードに転送し、パケットは受信先のノード内のルートテーブルを参照して宛先Podに届きます(図2)。

画像 図2 CalicoによるKubernetesネットワーク(「cali100」「cali200」「cali300」「cali400」は仮想ネットワークインタフェース)《クリックで拡大》

 ノード同士が同じネットワークセグメント内であればこのようにシンプルに通信することが可能ですが、宛先のノードが異なるネットワークセグメントに存在する場合、中継するルーティング機能を備えたスイッチなどのL3(レイヤー3)デバイスにPod CIDRに対する経路情報が存在しないとパケットを届けることができません。そこでFlannelなどパケットをカプセル化する仕組みを使うか、カプセル化をしない場合はルートリフレクタ(経路情報を転送する仕組み)を利用して、中継するL3デバイスにPod CIDRを広報(経路情報を伝えること)することで、L3デバイスをまたいだ通信が可能になります。通信のカプセル化にはオーバーヘッド(ある処理に付随する負荷)が発生するので、Calicoでカプセル化しないPod間通信を選択することでデータ転送パフォーマンスが向上します。

 CalicoはNetwork Policyを利用してPod間の通信を制御することが可能です。データ転送を担うデータプレーンとしてFlannelを利用し、Network Policyを利用するためのポリシーエンジンとしてCalicoを利用することもできます。


 次回はクラウドサービスが提供するKubernetesのネットワークを紹介します。

執筆者紹介

奈良昌紀(なら・まさのり) ネットワンシステムズ ビジネス開発本部第1応用技術部

通信事業者のデータセンターにおいてネットワークやサーバの運用を経験後、ネットワンシステムズに入社。帯域制御やWAN高速化製品、仮想化関連製品を担当後、主にクラウドや仮想インフラの管理、自動化、ネットワーク仮想化の分野に注力している。

細谷典弘(ほそや・のりひろ) ネットワンシステムズ ビジネス開発本部第3応用技術部

データセンターネットワークの他、マルチクラウド向けのハードウェアやソフトウェアの最先端技術に関する調査・検証、技術支援などを担当。注目分野は「Kubernetes」。放送システムのIP化に向けた技術調査・検証も担当している。

千葉 豪(ちば・ごう) ネットワンシステムズ ビジネス開発本部第1応用技術部

IaaS(Infrastructure as a Service)をはじめとしたクラウド基盤技術および管理製品を担当。コンテナ技術を中心とした開発・解析基盤の構築から運用、コンテナに関連した自動化技術や監視製品の技術検証などに注力している。


Copyright © ITmedia, Inc. All Rights Reserved.

新着ホワイトペーパー

技術文書・技術解説 株式会社ソラコム

IoTデバイス導入ガイド:概念から選定・導入時に押さえておきたいポイントまで

IoTという言葉は知っているものの、ビジネスの場でどのように活用すればよいのか分からないという声も多い。こうした声に応えるべく、IoTの基本的な概念から、IoTデバイスの選定・導入時に押さえておきたいポイントまでを解説する。

市場調査・トレンド 株式会社ソラコム

今さら聞けない「DXとIoT」、基本知識から最初の一歩を踏み出す具体策まで解説

DXやIoTという言葉は知っているものの、それが何を意味し、ビジネスの現場にどのように採り入れられているのか分からないという声は意外と多い。そこで、DXとIoTについて、基本知識から実現方法まで詳しく解説する。

製品資料 アルテリア・ネットワークス株式会社

VPNの「パフォーマンス」や「セキュリティ」の課題を解決するための秘策とは?

インターネットVPNサービスの市場規模は増加傾向にあるが、パフォーマンスやセキュリティなどの課題が顕在化している。VPNの利用状況などのデータを基にこれらの課題を考察し、次世代インターネットVPNサービスの利点と可能性を探る。

製品資料 東京エレクトロン デバイス株式会社

ネットワーク環境の課題を解決し、ネットワークの構築と運用を簡素化する方法

ネットワークに関して、「環境の構築・運用管理に手間やコストがかかる」などの課題を抱える企業は多い。そこで注目されているのが、1つのプラットフォームによる管理で運用負荷低減やトラブル対応効率化を実現するソリューションだ。

事例 東京エレクトロン デバイス株式会社

仮想化技術でマルチテナント型の大規模ネットワークを構築、事例に学ぶ実践術

現代のネットワークには組織ごとに多彩なニーズが求められる。それらに応えるためのネットワーク環境を構築するには大きな手間がかかる。本資料では仮想化技術の採用でマルチテナント型の高速ネットワーク環境を構築した事例を紹介する。

From Informa TechTarget

お知らせ
米国TechTarget Inc.とInforma Techデジタル事業が業務提携したことが発表されました。TechTargetジャパンは従来どおり、アイティメディア(株)が運営を継続します。これからも日本企業のIT選定に役立つ情報を提供してまいります。

ITmedia マーケティング新着記事

news253.jpg

「AIエージェント」はデジタルマーケティングをどう高度化するのか
電通デジタルはAIを活用したマーケティングソリューションブランド「∞AI」の大型アップ...

news163.jpg

「政府」「メディア」への信頼度は日本が最低 どうしてこうなった?
「信頼」に関する年次消費者意識調査の結果から、日本においても社会的な不満・憤りが大...

news062.jpg

「Threads」が広告表示テスト開始 企業アカウント運用のポイントとは?
Metaのテキスト共有アプリ「Threads」で広告表示のテストが開始され、新たな顧客接点とし...