コンテナ クラウド アーキテクチャ | Kubernetes ネットワーク モデルを理解する

コンテナ クラウド アーキテクチャ | Kubernetes ネットワーク モデルを理解する

Kubernetes ネットワークを使用すると、k8s ネットワーク内での通信を構成できます。フラットなネットワーク構造に基づいており、ホストとコンテナ間のポート マッピングは必要ありません。

Kubernetes ネットワークにより、コンテナ化されたコンポーネント間の通信が可能になります。このネットワーク モデルの主な利点は、ホストとコンテナー間でポートをマップする必要がないことです。ただし、Kubernetes ネットワーク モデルを構成するのは簡単な作業ではありません。この記事では、Kubernetes ネットワークとは何かを学び、一般的な実装を探り、Kubernetes ネットワークの主なバリエーションについて説明します。

Kubernetes ネットワーキングとは何ですか?

Kubernetes (k8s) はオープンソースのコンテナ オーケストレーション プラットフォームです。これを使用すると、オンプレミスまたはクラウドでのコンテナの展開、更新、および操作を自動化できます。 k8s を使用すると、オペレーティング システムや環境を気にすることなく、複数のインフラストラクチャにわたってコンテナ化されたワークロードを管理できます。

Kubernetes ネットワークは、k8s がコンポーネント間の通信を実装するために使用するモデルです。フラットなネットワーク構造に基づいており、ホストとコンテナ間でポートをマッピングする必要はありません。 Kubernetes ネットワークの設定は難しい場合がありますが、k8s 操作に不可欠な部分であり、展開を成功させるにはこれを理解する必要があります。

一般的なKubernetesネットワーク実装

Kubernetes を使用する場合、プラットフォームは、実装にサードパーティ ツールを必要とするネットワーク モデルを適用します。選択できるサードパーティ ツールは多数ありますが、次の 3 つが人気のあるオプションです。

  • Flannel - k8s 用に設計されたオープンソースのネットワーク構造。 Flannel は各ホスト上のバイナリ エージェントを介して実行されます。プロキシはホストにサブネット リースを割り当て、etcd を使用して構成データを保存します。
  • Project Calico - オープンソースのネットワーク プロビジョニングおよびポリシー エンジン。 Calico を使用すると、k8s ポッドを接続するためのスケーラブルなネットワーク ソリューションを作成できます。また、ホスト ネットワークまたはサービス メッシュ レイヤーでセキュリティ ポリシーを適用することもできます。
  • Weave Net — 仮想ネットワークの作成に使用できる独自のネットワーク ツールキット。 Weave Net には、回復力、スケーラビリティ、セキュリティ、マルチキャスト ネットワーキング、サービス検出などの機能が含まれています。分散型アーキテクチャに基づいており、外部の構成サービスやストレージは必要ありません。

Kubernetes ネットワークの変更

標準的な Kubernetes デプロイメントでは、知っておくべきネットワークの変更がいくつかあります。注意すべき最も一般的なネットワーク状況を以下に示します。

コンテナ間ネットワーク

ネットワークの高レベルのビューでは、イーサネット デバイスと直接通信するデバイスまたは仮想マシンが示されます。ただし、実際には (少なくとも Linux の場合)、マシ​​ン上のすべてのプロセスはネットワーク名前空間内で通信します。

この名前空間は、独自のネットワーク デバイス、ファイアウォール ルール、およびルートを含む論理ネットワーク スタックを作成します。プロセスを実行すると、デフォルトでルート ネットワーク名前空間に割り当てられます。これにより、プロセスへの外部アクセスが可能になります。

Kubernetes では、コンテナはポッドにグループ化され、各ポッドには共有名前空間があります。このポッドでは、すべてのコンテナは同じポート、IP アドレス、ポート スペースを持ちます。通信するには、Pod 内のコンテナはすべて同じ名前空間で実行されるため、localhost を使用できます。異なる Pod 内のコンテナが通信する必要がある場合は、以下で説明する Pod 間ネットワーク手順を使用します。

ポッド間ネットワーク

ポッド間ネットワークは、同じノード内またはノード間のポッド間で発生する可能性があります。各ノードには、クラスレス ドメイン間ルーティング (CIDR) ブロックがあります。ブロックは、そのノード内のポッドに割り当てられた一意の IP アドレスの定義済みセットです。これにより、どのノード上にあるかに関係なく、各ポッドに一意の IP が提供されるようになります。

ポッドが通信する必要がある場合、仮想イーサネット デバイス (VED) または veth ペアを使用してポッドを接続します。 Veth ペアは、名前空間全体に分散された結合されたネットワーク インターフェイスです。ペアの 1 つはルート名前空間に割り当てられ、もう 1 つはポッド名前空間に割り当てられます。 VED は、2 つの名前空間間のブローカー接続として機能します。

ポッドからサービスへのネットワーク

Kubernetes は、必要に応じてポッドを動的に置き換えることができるように設計されています。つまり、ステートフル アプリケーションなどの特別な予防措置を講じない限り、ポッド IP アドレスは永続的ではありません。この問題を解決し、ポッド間の通信が維持されるようにするために、Kubernetes はサービスを使用します。

Kubernetes サービスはポッドの状態を管理し、時間の経過に伴ってポッドの IP アドレスを追跡できるようにします。これらのサービスは、単一の仮想 IP (クラスター IP) をポッド IP のセットに割り当てることで、ポッド アドレスを抽象化します。その後、仮想 IP に送信されたトラフィックは、関連付けられたポッドに分散されます。

このサービス IP を使用すると、全体的な通信に影響を与えることなく、必要に応じてポッドを作成および破棄できます。また、Kubernetes サービスはクラスター内ロードバランサーとして機能し、必要に応じて関連するポッド間でトラフィックを分散することも可能になります。

インターネットからサービスへのネットワーク

ほとんどの展開に必要な最終的なネットワーク シナリオは、インターネットとサービスの間です。 Kubernetes を内部アプリケーションまたは外部アプリケーションに使用する場合は、通常、インターネット接続が必要になります。この接続により、ユーザーはサービスにアクセスし、分散したチームが共同作業できるようになります。

外部アクセスを設定するときは、出力と入力という 2 つの手法を使用する必要があります。ホワイトリストまたはブラックリストを使用してこれらのポリシーを設定し、ネットワークに出入りするトラフィックを制御できます。

  • 出力: 出力は、ノードから外部接続にトラフィックをルーティングするプロセスです。これは通常、仮想プライベート クラウド (VPC) に接続されたインターネット ゲートウェイを介して行われます。このゲートウェイは、ネットワーク アドレス変換 (NAT) を使用して、ユーザーとノードが存在するマシン間の IP をマッピングします。ただし、ノード上の個々のポッドにマッピングすることはできません。このステップでは、Kubernetes は IP テーブルとクラスター IP を使用して通信を完了します。
  • Ingress: Ingress は Egress の逆のプロセスであり、外部クライアントから Kubernetes サービスへの通信が含まれます。これは、サービスとの通信でどの接続が許可され、どの接続がブロックされるかを定義する一連のルールとして機能します。

結論は

Kubernetes ネットワークを使用すると、k8s ネットワーク内での通信を構成できます。フラットなネットワーク構造に基づいており、ホストとコンテナ間のポート マッピングは必要ありません。ただし、このネットワーク モデルを適用するには、Flannel、Project Calico、Weave Net などのサードパーティ ツール (オープン ソースまたは有料) を使用する必要があります。

さらに、Kubernetes ネットワークを構成するときは、従来のネットワークでは発生しない特定のネットワークの側面を考慮する必要があります。これらには、コンテナ間ネットワーク、ポッド間ネットワーク、ポッドとサービス間のネットワーク、インターネットとサービス間のネットワークが含まれます。誤った構成は脆弱性につながる可能性があるため、ネットワークを適切に計画することが重要です。


<<:  2021年、クラウドコンピューティングの大手企業はどのような成果を達成するのでしょうか? 2022 年のクラウド コンピューティング業界はどのようなトレンドを示すでしょうか?

>>:  クラウドネイティブ PostgreSQL クラスター - PGO: 5 分で開始

推薦する

コンテンツマーケティング: ビデオコンテンツの作成方法

Google や Bing などの検索エンジンは最近、ハイブリッド検索と呼ばれるアプローチを採用しま...

Kubernetes ログ転送で直面する 4 つの課題

[51CTO.com クイック翻訳] Kubernetes を使用しており、ログ記録を行う必要がある...

SEO担当者を苛立たせるSEO「終末論」の誕生の起源

SEO 担当者の変遷についての記事を読んだのを覚えています。とても納得のいく内容でした。主に、現在 ...

Alpharacks-Simple レビュー: 1g メモリ KVM/年間 28 ドル/ロサンゼルス

退屈だったので、Alpharacks にアフィリエイト報酬 36 ドルを請求したところ、お金を引き出...

SEOの3つの難点を突破してSEO最適化をスムーズに

ウェブサイトの最適化は順風満帆なものではありません。この困難なプロセスには 3 つの大きな困難があり...

国境を越えたオンラインねずみ講の徹底調査:リストに関する嘘が数万人の中国本土住民を騙した

「グーグルやアマゾンなどのIT企業の社員になって配当金を受け取るチャンスを逃したら、100年に一度の...

広州市海珠区の自動運転試験道路第1弾が運用開始、テンセントのL4レベル試験車が初試験に参加

1月26日、広州市海珠区の琶洲人工知能・デジタル経済実験区でインテリジェントコネクテッド(自動運転)...

Youmi Marketing Cloudがリリースされ、モバイルマーケティング実践者の武器が到着します

月給5,000~50,000のこれらのプロジェクトはあなたの将来です10月18日、Youmi Tec...

ウェブサイト構築、シンプル化の方が良い

現在のインターネット環境は非常に衝動的であり、人々はランキングと利益のためにユーザーエクスペリエンス...

クレイジーなBaidu関連検索

今日は胡楊について多くを語らず、写真がシンプルかつ明確に語ってくれることにします。この記事「SEO ...

360 Search に「ダブル Ctrl」機能がある理由の分析

2013年8月16日午後、360 Searchは「ダブルCtrl」機能を開始しました。いわゆる「ダブ...

#苦情防止ホスト# ウェアーズホスト: オランダ、スウェーデン、ブルガリア、ロシアのサーバー/VPS

warez-host.com は 2007 年に設立されました。通常は hostplay というブラ...

検索エンジンマーケティングシリーズ1: ベールを脱ぐ

検索エンジン マーケティングの謎を解明するために、まず検索エンジン マーケティングとは何かを見てみま...