第5章 Kubernetesのネットワーク抽象化 Kubernetesネットワークの抽象化
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
前回は、ネットワークの基礎と、KubernetesのトラフィックがAからBへどのように移動するかについて広範囲に説明した。本章では、、Kubernetesにおけるネットワークの抽象化、主にサービス検出とロードバランサについて説明する。最も注目すべきは、サービスとイングレスの章である。両リソースは、多数のユースケースを解決しようとするため、選択肢が多く、複雑であることで知られている。これらは、Kubernetes上のワークロードの基本的なネットワーク特性を定義するため、Kubernetesネットワークスタックの最も目に見える部分である。開発者はここで、Kubernetes上にデプロイされたアプリケーションのネットワークスタックと対話する。
この章では、Kubernetesネットワーキング抽象化の基本的な例と、それらがどのように機能するかの詳細について説明する。 フォローするために、以下のツールが必要である:
-
Docker
-
カインド
-
リンカード
kubectl exec 、 のコマンドに慣れている必要がある。もしそうでなくても、私たちのコード・リポジトリには、私たちが説明するあらゆるコマンドがあるので、あまり心配する必要はない。また、Docker exec 第2章と第3章の と も利用する。これらのツールのほとんどは、デバッグや実装の詳細を表示するためのものであり、通常の演算子では必ずしも必要ではないことに注意してほしい。ip netns
Docker、KIND、Linkerdのインストールは、それぞれのサイトで入手できる。また、この本のコード・リポジトリにも詳しい情報を掲載している。
チップ
kubectl は本章の例で重要なツールであり、演算子がクラスタやそのネットワークとやり取りするための標準的なものだ。 、 、 、kubectl create apply getdeleteexec Kubernetesのドキュメントで詳しく学ぶか、kubectl [command] --help を実行してほしい。
この章では、こうしたKubernetesのネットワーク抽象化について探っていく:
-
ステートフルセット
-
エンドポイント
-
エンドポイントスライス
-
-
サービス
-
ノードポート
-
クラスター
-
ヘッドレス
-
外部
-
ロードバランサー
-
-
イングレス
-
イングレス・コントローラー
-
イングレスの規則
-
-
サービスメッシュ
-
リンカード
-
これらの抽象化を調べるために、以下の手順でKubernetesクラスタにサンプルをデプロイする:
-
イングレスを有効にしてKINDクラスタをデプロイする。
-
StatefulSetsを探求する。
-
Kubernetesサービスをデプロイする。
-
イングレスコントローラをデプロイする。
-
リンカード・サービスメッシュをデプロイする。
これらの抽象化は、Kubernetesクラスタに出入りする通信のフローをプログラムで制御するために、Kubernetes APIが開発者や管理者に提供するものの中心にある。これらの抽象化を理解してデプロイする方法をマスターすることは、クラスタ内のあらゆるワークロードを成功させるために極めて重要だ。これらの例を通して作業した後、アプリケーションの特定の状況でどの抽象化を使うべきかを理解するだろう。 ...