コンテナネットワークの基礎知識【第9回】
「Kubernetes」を使うなら、まず知っておきたい「Flannel」と「Calico」の通信
コンテナ間の通信を実現するCNIプラグインを使うことで、KubernetesのPod間通信が可能になります。代表的なオープンソースのCNIプラグインを紹介します。
コンテナオーケストレーター「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」は利用できません。
Calico
「Calico」はノードをまたぐPod間通信をFlannelのようにカプセル化する方法と、カプセル化しない方法のどちらかを選択することが可能です。Calicoは各ノードに、Podが利用するCIDR(Classless Inter-Domain Routing、アドレス割り当ての仕組み)のネットワークアドレス(Pod CIDR)を割り当てます。各ノード内で起動する「BIRD」(経路制御プロトコル「BGP」を使ったプログラム)が、Pod CIDRを経路情報として交換し、ノード内のルートテーブルに反映します。ノードはPodが送信したパケットをルートテーブルに基づいて宛先Podが存在するノードに転送し、パケットは受信先のノード内のルートテーブルを参照して宛先Podに届きます(図2)。
ノード同士が同じネットワークセグメント内であればこのようにシンプルに通信することが可能ですが、宛先のノードが異なるネットワークセグメントに存在する場合、中継するルーティング機能を備えたスイッチなどの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.
コンテナネットワークの基礎知識
この記事の著者
関連記事
新着ホワイトペーパー PR
-
製品資料
[株式会社うるる] 「入札市場」攻略ガイド:効率的に落札するためのポイントを徹底解説 -
製品資料
[株式会社うるる] 入札情報に特化した「販路拡大」「効率化」のためのサポートツールとは? -
市場調査・トレンド
[株式会社うるる] 公共入札に成功する企業と失敗する企業の「5つの違い」 -
製品資料
[日本ビジネスシステムズ株式会社] 専門家が教える、Microsoft 365の「テナント統合/分離」を成功に導く秘訣 -
製品資料
[rakumo株式会社] Microsoft 365での情報埋没を防ぐ、社内ナレッジを資産化する情報ポータル活用
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
PHP脆弱性「PHP2Shell」で2260万件に影響 情シスの緊急チェックリスト
-
2
「Microsoft 365」が乗っ取られる MFAを破る“本物の画面”の恐怖
-
3
「Windows」の不要なファイルを安全に消して容量を空ける方法
-
4
「テザリング依存」に潜む落とし穴 “遅いVPN”を解消するネット構築術
-
5
なぜ「Gemini 4 Argon」は出遅れたのか? Googleが狙う“逆転のシナリオ”
-
6
Claude利用8割のGMO、AI人材の評価軸が「トークン管理」に変わった
-
7
半数がブルーカラー転向を視野に? ベテランエンジニアを追い込む“54歳の壁”
-
8
被害額は過去最高額 それでも「サイバー犯罪者が捕まらない」3つの理由
-
9
ChatGPTは“検索しまくり”でGeminiは“淡泊”? データが明かすAIの裏側
-
10
「IT運用・情報システム業務」に関するアンケート
ホワイトペーパーランキング PR
-
1
AI駆動攻撃にどう対抗する? 超速の攻撃からエンドポイントを保護する方法
-
2
2026年のサイバーセキュリティには何が必要か? 最新データに学ぶ傾向と対策
-
3
経験豊富な即戦力人材に直接アプローチできる、「攻めの採用」への転換術
-
4
「IT史に名を残すシステム障害」8選
-
5
最速72分でデータが流出? 最新の脅威トレンドや侵入手法から分かった防衛策
-
6
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
7
AI駆動開発のスピードと安全性を両立 「品質・セキュリティ管理」の実践ガイド
-
8
HDDを使わない「SSDオンリー」が無謀なのはなぜ?
-
9
「標的型攻撃メール」事例・サンプル集
-
10
Microsoft 365のメールセキュリティ、3つの“死角”と追加で検討すべき対策とは
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー