名前空間は、Kubernetes クラスターリソースを仮想的かつ分離された空間に分割するために使用します。このトピックでは、名前空間の作成、名前空間のサイドカープロキシの自動インジェクションの有効化、Service Mesh (ASM) インスタンスと Kubernetes クラスター間でのサイドカープロキシ自動インジェクションラベルの同期、およびグローバル名前空間が所属するクラスターの変更方法について説明します。
名前空間の作成
ASM コンソールまたは kubectl クライアントを使用して Service Mesh (ASM) インスタンスで作成した名前空間は、その ASM インスタンスにのみ属します。 これらは、ASM インスタンスによって管理されるデータプレーン上の Kubernetes クラスターからは独立しています。 したがって、ASM インスタンスの名前空間は、同インスタンスが管理するデータプレーン上の Kubernetes クラスターの名前空間とは異なる場合があります。 Service Mesh インスタンスの名前空間を作成または削除しても、同インスタンスが管理するデータプレーン上の Kubernetes クラスターの名前空間は影響を受けません。
ASM コンソール にログインします。左側のナビゲーションウィンドウで、 を選択します。
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、 を選択します。
-
[グローバル名前空間] ページで、[作成] をクリックします。[名前空間の作成] パネルで、パラメーターを設定し、[OK] をクリックします。
パラメーター
説明
[名前]
名前空間の名前を指定します。名前は 1~63 文字で、数字、英字、ハイフン (-) のみを含めることができます。名前の先頭と末尾は、英字または数字である必要があります。
[ラベル]
[ラベル] の右側にある [追加] をクリックします。キーと値を入力して、名前空間にラベルを追加します。
名前空間には複数のラベルを追加できます。ラベルは名前空間を識別するために使用します。たとえば、テスト環境で使用される名前空間としてラベルを付けることができます。
名前空間の作成後、[グローバル名前空間] ページの [アクション] 列で次の操作を実行できます。
-
名前空間を編集するには、[YAMLの表示] をクリックします。[編集] ダイアログボックスで、YAML 設定を変更し、[OK] をクリックします。
-
名前空間を削除するには、[削除] をクリックします。[確認] ダイアログボックスで、[OK] をクリックします。
サイドカープロキシの自動インジェクションの有効化
名前空間のサイドカープロキシの自動インジェクションを有効にすると、その名前空間で作成される各 Pod に Envoy プロキシがサイドカーとして自動的にインジェクションされます。これらの Envoy プロキシは、ASM インスタンスのデータプレーンを構成します。
ASM コンソール にログインします。左側のナビゲーションウィンドウで、 を選択します。
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、 を選択します。
-
[グローバル名前空間] ページで、対象の名前空間を見つけ、[サイドカー自動インジェクション] 列の [サイドカー自動インジェクションの有効化] をクリックします。[確認] ダイアログボックスで、[OK] をクリックします。
説明名前空間のサイドカープロキシの自動インジェクションを有効にした後、設定を反映させるには Pod を再起動する必要があります。詳細については、「サイドカープロキシの設定」の「(オプション) ワークロードの再デプロイ」セクションをご参照ください。
ASMインスタンスとデータプレーン上のKubernetesクラスター間でのサイドカープロキシ自動インジェクションラベルの同期
ASM インスタンスで作成した名前空間は、ASM コンソールで作成した場合でも kubectl クライアントを使用して作成した場合でも、ASM インスタンスのみに属します。名前空間は、ASM インスタンスによって管理されるデータプレーン上の Kubernetes クラスターとは独立しています。ASM インスタンスの名前空間とそのサイドカープロキシ自動インジェクションラベルを、名前空間が所属するデータプレーン上の Kubernetes クラスターに同期できます。逆の同期も可能です。
データプレーン上のKubernetesクラスターからASMインスタンスへのサイドカープロキシ自動インジェクションラベルの同期
データプレーン上の Kubernetes クラスターから ASM インスタンスにサイドカープロキシの自動インジェクションラベルを同期すると、次のようになります。
データプレーン上の Kubernetes クラスターに名前空間が存在するが、ASM インスタンスに存在しない場合、名前空間が自動的に作成されます。
データプレーン上の Kubernetes クラスターの名前空間に
istio-injectionラベルまたはistio.io/revラベルがある場合、そのラベルは ASM インスタンス内の同名の名前空間に自動的に同期されます。
ASM コンソール にログインします。左側のナビゲーションウィンドウで、 を選択します。
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、 を選択します。
-
[グローバル名前空間] ページで、[Kubernetes クラスターから自動インジェクションを同期] をクリックします。[Kubernetesクラスターから自動インジェクションを同期] ダイアログボックスで、ソースデータプレーンクラスターを選択し、[OK] をクリックします。
[グローバル名前空間] ページで、ASM インスタンスのグローバル名前空間がデータプレーンクラスターと同期されていることを確認できます。
ASMインスタンスからデータプレーン上のKubernetesクラスターへのサイドカープロキシ自動インジェクションラベルの同期
通常、ASM インスタンスで名前空間を変更すると、サイドカープロキシ自動インジェクションのラベルは、その名前空間が所属するデータプレーン上の Kubernetes クラスターに自動的に同期されます。この手動同期操作は、データプレーン上の Kubernetes クラスターの名前空間が直接変更され、ASM インスタンスの名前空間と不整合が生じた場合にのみ実行する必要があります。
ASM インスタンスからデータプレーン上の Kubernetes クラスターにサイドカープロキシの自動インジェクションラベルを同期すると、次のようになります。
ASM インスタンスに名前空間が存在するが、データプレーン上の Kubernetes クラスターに存在しない場合、名前空間が自動的に作成されます。
ASM インスタンスの名前空間に
istio-injectionラベルまたはistio.io/revラベルがある場合、そのラベルはデータプレーン上の Kubernetes クラスター内の同名の名前空間に自動的に同期されます。ASM インスタンスの名前空間のラベルは、その名前空間が所属するデータプレーン上の Kubernetes クラスターに同期されます。
ASM コンソール にログインします。左側のナビゲーションウィンドウで、 を選択します。
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、 を選択します。
-
[グローバル名前空間] ページで、[Kubernetes クラスターへ自動インジェクションを同期] をクリックします。
データプレーン上の Kubernetes クラスターの名前空間が ASM インスタンスと同期されていることを確認できます。データプレーン上の Kubernetes クラスターの名前空間を表示する方法の詳細については、「名前空間とリソースクォータの管理」をご参照ください。
グローバル名前空間が所属するクラスターの変更
複数のデータプレーン上の Kubernetes クラスターが ASM インスタンスに追加されている場合、グローバル名前空間が所属するクラスターを変更できます。ASMインスタンスからデータプレーン上のKubernetesクラスターにサイドカープロキシの自動インジェクションラベルを同期すると、ASM インスタンスの名前空間とそのサイドカープロキシ自動インジェクションラベルは、ASM インスタンスの名前空間の所属クラスターに基づいて、異なるデータプレーン上の Kubernetes クラスターに同期されます。
この機能を使用するには、ASM インスタンスのバージョンが 1.17.2.37 以降である必要があります。ASM インスタンスの更新方法の詳細については、「ASMインスタンスのアップグレード」をご参照ください。グローバル名前空間が所属するクラスターは、次のいずれかの方法で変更できます。
方法1: データプレーン上のKubernetesクラスターからASMインスタンスにサイドカープロキシ自動インジェクションラベルを同期する際の、システムによるクラスターの自動変更
データプレーン上のKubernetesクラスターからASMインスタンスにサイドカープロキシの自動インジェクションラベルを同期すると、クラスターとグローバル名前空間間の所属関係も同期されます。
方法2:グローバル名前空間が所属するクラスターの手動変更
ASMインスタンスからデータプレーン上のKubernetesクラスターにサイドカープロキシの自動インジェクションラベルを同期すると、グローバル名前空間が所属するクラスターに対して次のようになります。
グローバル名前空間を同期する際、Kubernetes クラスターがその名前空間の所属クラスターでない場合、名前空間とそのサイドカープロキシ自動インジェクションラベルはデータプレーンに同期されません。
複数のクラスターを ASM インスタンスに追加します。詳細については、「ASMインスタンスへのクラスターの追加」または「ASMで管理されるサーバーレスゲートウェイを使用したマルチクラスターIngressの実装」をご参照ください。
ASM コンソール にログインします。左側のナビゲーションウィンドウで、 を選択します。
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、 を選択します。
-
[グローバル名前空間] ページで、対象の名前空間を見つけ、[所属クラスター] 列の [編集] をクリックします。表示されるダイアログボックスで、1 つ以上のデータプレーンクラスターを選択し、[OK] をクリックします。