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 の対応
>>: ビジネスニーズを中心としたクラウドネイティブアーキテクチャシステムの構築
フォン・ノイマン・アーキテクチャの 5 つの要素のうち、コンピューティング、ストレージ、およびネット...
モーニングポスト記者の沈良、張少潔、張静燕鉄道の春節旅行シーズンは昨日も引き続きチケット販売のピーク...
[要約] 終値に基づくと、JD.comの時価総額は286億米ドルに達し、上場している中国のインターネ...
この記事では、トラフィック競争における大晦日ガラの価値と意義を分析し、ビリビリが大晦日ガラでユーザー...
近年、経済情勢が変動し続ける中、企業はクラウドを新たな安全地帯として捉え始めています。特にCOVID...
オンラインストアの運営はますます難しくなっています。購入チャネルのコストが増加しただけでなく、さまざ...
evoxt が運営する VPS の主な特徴は、低価格、強力なパフォーマンス、十分な帯域幅です。これら...
検索エンジンは、ウェブサイトがオンライン マーケティングを行うための重要なプラットフォームです。一方...
ブルガリアのDA International Group Ltd傘下のalphavpsブランド(AS...
losangelesvpsの11.11中国イベントが始まりました。INAPのロサンゼルスデータセンタ...
SEO は徐々に企業の注目を集めています。SEO 業界がますます強力かつ大規模になるにつれ、SEO ...
[[275190]]新しいテクノロジーと新しいトレンドとして、エッジ コンピューティングはテクノロジ...
ライトブログは、ブログとマイクロブログの中間のネットワークサービスです。ブログは表現力に富む傾向があ...
エッジ コンピューティングには、限られたスペースに収まり、過酷な条件に耐え、複雑な分析ルーチンを実行...
Dedicatedsolutionは香港独自の独立サーバーの立ち上げを開始し、現在、プライベートカス...