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 の対応
>>: ビジネスニーズを中心としたクラウドネイティブアーキテクチャシステムの構築
2017年、Weiboは株価が44ドルから140ドルへと3倍に急騰するというハイライトを迎えた。...
SEO を研究し実践する人が増えています。SEO がウェブサイトに良いトラフィックをもたらすことは間...
vpsdime は、X5650 U、128G メモリ、raid50 用 14 台の 4T ハード ド...
モノのインターネットの究極の目標は、あらゆるものを接続することです。しかし、現在のブロードバンドレベ...
3年前、私は伝統的なメディア界に新しいメディアを紹介するよう何度か依頼されました。彼は厳しい口調と期...
中国でアメリカのVPSとアメリカのサーバーを利用する場合、基本的にアメリカ西海岸に集まる人が多いです...
ウェブマスターの友人は Discuz をよくご存知だと思います。私たちが訪問するフォーラムのほとんど...
サイト クラスターの主な目的は、検索エンジンを通じて大量のトラフィックを獲得したり、メイン サイトへ...
DS はついに新しいデータ センターをオープンします。今後 90 日以内に稼働する予定です。その時点...
ベトナムの商人である hostingviet は、2009 年に設立され、納税番号は 0107249...
ウェブサイトのランキングを決定する多くの要素の中で、外部リンクは非常に重要な要素です。さらに言えば、...
[51CTO.comよりオリジナル記事] インターネットの発展により、エネルギー企業にも変革の波が到...
外部リンクを構築する本質は、ウェブサイトの権威とキーワードランキングを向上させることだと考えているな...
9月1日、OpenStackの最新バージョンであるPikeが正式にリリースされました。新バージョンの...
Baidu アルゴリズムの継続的なアップグレードと改善により、さまざまなランキング アルゴリズムは現...