コンテナ クラウド アーキテクチャ | 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 分で開始

推薦する

Baidu入札クリエイティブのライティングスキルについての簡単な議論

多くの人が創造的な文章を書くために頭を悩ませます。実際、あなたの創造性が訪問者を引き付けるかどうかの...

責任あるブロガーになる方法

ブロガーには多くの責任があります。読者があなたのコンテンツを読んでいないからといって、責任がないとい...

ねずみ講にリンクされたリベートウェブサイトは業界に衝撃を与え、規制当局は厳しい調査を行った。

「消費者割引」は「投資割引」に変わり、規制当局はねずみ講を取り締まっている。キャッシュバックウェブサ...

中国語のキーワードを検索すると、英語のウェブサイトがホームページで 2 番目にランクされるのはなぜですか?

記事のタイトルは、私が百度知道で見た質問です。質問したネットユーザーは非常に困惑しており、回答を求め...

超詳細な分散スケジューリングフレームワーク Elastic-job の実践的な説明

[[378874]]この記事はWeChatの公開アカウント「Java Geek Technology...

ウェブマスターの考え: オンライン採用が従来の採用に勝つ方法

情報化時代において、最も恩恵を受けているのはインターネット業界です。インターネット業界の発展に伴い、...

2020年のトレンド予測: SaaSモデルが企業のデジタル化の第一選択肢に

2019 年が終わりに近づき、2020 年は新たな旅の始まりです。振り返ってみると、エンタープライズ...

bgpto: 日本ソフトバンク/シンガポール CN2 GIA、専用サーバー、月額 64 ドル、e3-1230v3/16g メモリ/480gSSD/100M 帯域幅/3 IP

bgp.to は現在、シンガポールと東京のデータセンターの独立サーバーを 35% 割引で提供していま...

Hostflyte: VPS IPの変更はわずか2ドル、4Gメモリ/20g SSD/4Tトラフィックの場合は年間11ドル

hostflyte からの最新ニュース: 公式が VPS コントロール パネルに「IP アドレスの変...

Google の新しいツールは、ユーザーが放棄されたクラウド プロジェクトを見つけて削除するのに役立ちます

[51CTO.com クイック翻訳] Google は、クラウドの利用率を向上させ、古いクラウド コ...

新しいウェブサイトの独創性を分析する

独創性が検索エンジンへの組み込み、重み付け、ランキング付けに役立つことは誰もが知っています。しかし、...

タオバオには「論文盗作チェック」の店舗が500店以上あり、月間売上高は100万元を超える。

[概要] このソフトウェアを最も多く販売している Taobao のストアでは、1 か月で 200 万...

オンラインマーケティングを行う際は、「ジャンクトラフィック」を避けてください

Changsha Internet Marketing は、インターネット マーケティング担当者とし...

B2B製品設計はまずロジック、次にデザイン

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています2Cの聴衆...