Kubernetes 内のネットワークは、物理的な世界のネットワークとそれほど変わりません。ネットワークの基本的な知識があれば、コンテナ ポッドとサービス間の通信を簡単に実現できます。 スイッチ、ルーター、イーサネット ケーブルを使用する物理ネットワークから、ソフトウェア定義ネットワーク (SDN) と仮想インターフェイスを使用する仮想ネットワークに移行するには、多少の学習が必要です。もちろん、原則は同じですが、規範やベストプラクティスは異なります。 Kubernetes には独自のルールセットがあり、コンテナやクラウドを扱う場合は、Kubernetes ネットワークの仕組みを理解しておくと役立ちます。 Kubernetes ネットワーク モデルには、覚えておくべき一般的なルールがいくつかあります。
Kubernetes ネットワークはどのような問題を解決しますか?Kubernetes ネットワークは、Kubernetes 内のさまざまなエンティティ タイプが通信できるように設計されています。 Kubernetes インフラストラクチャのレイアウトは、設計上、多くの分離が行われています。名前空間、コンテナ、およびポッドは、コンポーネントを互いに区別できるように設計されているため、高度に構造化された通信計画が重要です。 コンテナ間ネットワークコンテナ間のネットワークは、Pod ネットワーク名前空間を通じて行われます。ネットワーク名前空間を使用すると、システムの他の部分から分離され、独立して実行される独立したネットワーク インターフェイスとルーティング テーブルを持つことができます。各ポッドには独自のネットワーク名前空間があり、コンテナは同じ IP アドレスとポートを共有します。これらのコンテナはすべて同じ名前空間の一部であるため、コンテナ間の通信はすべて localhost を介して行われます。 (図では緑の線で示されています。) ポッド間ネットワークKubernetes では、各ノードにポッド用の指定された CIDR IP 範囲があります。これにより、各ポッドがクラスター内の他のポッドから認識できる一意の IP アドレスを受け取ることが保証されます。新しいポッドが作成されても、IP アドレスが重複することはありません。コンテナ間ネットワークとは異なり、Pod を同じノードにデプロイするか、クラスター内の異なるノードにデプロイするかに関係なく、Pod 間の通信は実際の IP を使用して行われます。 上の図は、ポッドが相互に通信するためには、ポッド ネットワーク名前空間とルート ネットワーク名前空間の間でトラフィックが流れる必要があることを示しています。これは、仮想イーサネット デバイスまたは veth ペア (図では veth0 を Pod 名前空間 1 に、veth1 を Pod 名前空間 2 に接続) を介して Pod 名前空間とルート名前空間を接続することによって実現されます。仮想ブリッジはこれらの仮想インターフェイスを接続し、アドレス解決プロトコル (ARP) を使用してそれらの間で通信が流れるようにします。 データが Pod 1 から Pod 2 に送信される場合、イベント フローは次のようになります。
ポッドからサービスへのネットワークポッドは動的です。需要に応じて規模を拡大または縮小する必要があるかもしれません。アプリケーションがクラッシュしたりノードに障害が発生した場合でも、再度作成できます。これらのイベントにより、Pod の IP アドレスが変更され、ネットワークの問題が発生する可能性があります。 Kubernetes は、次のことを実行するサービス機能を使用してこの問題を解決します。
クラスター内で負荷を分散する方法は 2 つあります。
上の図は、Pod 1 から Pod 3 へのパケット フローを示しています。このフローは、サービスを経由してさまざまなノード (赤でマーク) に渡されます。仮想ブリッジ宛てのパケットは、ブリッジ上で実行されている ARP がそのサービスを理解しないため、デフォルト ルート (eth0) を使用する必要があります。その後、パケットは iptables を介してフィルタリングされる必要があります。iptables は、kube-proxy によってノードに定義されたルールを使用します。したがって、図は現在のパスを示しています。 インターネットからサービスネットワークへこれまで、クラスター内でトラフィックをルーティングする方法について説明しました。ただし、Kubernetes ネットワークには、アプリケーションを外部ネットワークに公開するという別の側面もあります。 アプリケーションを外部ネットワークに公開するには、2 つの方法があります。
ディスカバリーサービスKubernetes は次の 2 つの方法でサービスを検出します。
公開されたサービスの ServiceTypes Kubernetes サービスは、通常ラベル セレクターを使用して定義される一連の Pod にアクセスする方法を提供します。これは、クラスター内の他のアプリケーションにアクセスしようとするアプリケーションである場合もあれば、クラスター内で実行されているアプリケーションを外部に公開できるようにする場合もあります。クベネフィット さまざまな ServiceTypes には次のものが含まれます。
ネットワークソフトウェア使用されているテクノロジーを理解していれば、Kubernetes 内のネットワークは物理的な世界のネットワークとそれほど変わりません。一生懸命勉強してネットワークの基礎を覚えておけば、コンテナ、ポッド、サービス間の通信を簡単に実現できます。 |
<<: Azure で発見された 6 つの「悪夢」のクラウド セキュリティ脆弱性に対する Microsoft の対応
>>: ビジネスニーズを中心としたクラウドネイティブアーキテクチャシステムの構築
Hostdare は誰もが知っている VPS 販売業者です。ブラックフライデーのプロモーション期間中...
2020年のコロナウイルスのパンデミックは世界のサプライチェーンに深刻な課題をもたらし、その波及効果...
[51CTO.comからのオリジナル記事]ポストエピデミック時代において、リモートワークは新たな常態...
林青峰のドメイン名を5万で売っている人がいる業界関係者は、スポーツ選手のドメイン名に投資するのは、彼...
ブルガリアの VPS プロバイダーである friendhosting のクリスマス プロモーションは...
最近非常に人気のあるプロモーション方法であるWeibo の九升格子については、ほとんどの CP がす...
[[382059]]このレポートは、米国、日本、ドイツ、英国、フランス、オーストラリアなどの先進国と...
1. ブランド名に何百万ドルもの価値があるのはなぜですか? 1. 重要だから孔子は「名が正しくなけれ...
XiayipaiのSEO担当者Lian Zichao氏は、5月23日以降、Baiduの検索エンジンで...
昨日、4月28日土曜日、私は厦門インタラクティブタイムズ文化コミュニケーション株式会社が開催したMa...
2009 年 1 月 19 日、一人の技術愛好家が独自にシステムを開発し、低価格の VPS サービス...
Dogyun (狗云) の米国 VPS には現在、複数のデータ センターから選択できるオプションが ...
Farno は 2009 年に設立されました。同社はドイツに登録されており (登録番号: HRB 1...
Baidu は最近非常に熱心に取り組んでおり、頻繁に更新しています。そのため、ウェブマスターとして、...
2018年は我が国が初めて冬季オリンピックを開催した年であり、国際的なイベントとして世界中に幅広い影...