すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Service Mesh:グローバル名前空間の管理

最終更新日:Jan 13, 2025

名前空間は、Kubernetes クラスタのリソースを仮想の独立した空間に分割するために使用されます。このトピックでは、名前空間の作成、名前空間への自動サイドカープロキシインジェクションの有効化、Service Mesh(ASM)インスタンスとの間でKubernetes クラスタとの自動サイドカープロキシインジェクションラベルの同期、グローバル名前空間が属するクラスタの変更方法について説明します。

名前空間の作成

Service Mesh(ASM)インスタンスで作成する名前空間は、ASM コンソールまたは kubectl クライアントを使用して作成されたかどうかにかかわらず、ASM インスタンスのみに属します。これらは、ASM インスタンスによって管理されるデータプレーン上の Kubernetes クラスタとは独立しています。したがって、ASM インスタンスの名前空間は、ASM インスタンスによって管理されるデータプレーン上の Kubernetes クラスタの名前空間とは異なる場合があります。Service Mesh インスタンスの名前空間を作成または削除しても、ASM インスタンスによって管理されるデータプレーン上の Kubernetes クラスタの名前空間は影響を受けません。

  1. ASM コンソールにログインします。左側のナビゲーションペインで、[service Mesh] > [メッシュ管理] を選択します。

  2. [メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションペインで、[ASM インスタンス] > [グローバル名前空間] を選択します。

  3. [グローバル名前空間] ページで、[作成] をクリックします。[名前空間の作成] パネルで、必要なパラメータを設定し、[OK] をクリックします。

    パラメータ

    説明

    名前

    名前空間の名前を指定します。名前は 1 ~ 63 文字で、数字、文字、ハイフン(-)のみを使用できます。名前は文字または数字で始まり、文字または数字で終わる必要があります。

    ラベル

    [追加][ラベル] の横でクリックします。次に、[名前] パラメータと [値] パラメータを指定して、名前空間にラベルを追加します。

    名前空間には複数のラベルを追加できます。ラベルは名前空間を識別するために使用されます。たとえば、テスト環境で使用される名前空間にラベルを付けることができます。

説明

名前空間を作成した後、[グローバル名前空間] ページの [アクション] 列で次の操作を実行できます。

  • 名前空間の変更: [YAML] をクリックします。[編集] ダイアログボックスで、設定を変更し、[OK] をクリックします。

  • 名前空間の削除: [削除] をクリックします。[送信] メッセージで、[OK] をクリックします。

自動サイドカープロキシインジェクションの有効化

名前空間に対して自動サイドカープロキシインジェクションを有効にすると、Envoy プロキシがサイドカーとして名前空間に作成された各ポッドに自動的に挿入されます。これらの Envoy プロキシは、ASM インスタンスのデータプレーンを構成します。

  1. ASM コンソールにログインします。左側のナビゲーションペインで、[service Mesh] > [メッシュ管理] を選択します。

  2. [メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションペインで、[ASM インスタンス] > [グローバル名前空間] を選択します。

  3. [グローバル名前空間] ページで、目的の名前空間を見つけ、サイドカープロキシの自動挿入を有効にする[自動サイドカーインジェクション] 列の 送信OK をクリックします。 メッセージで、 をクリックします。

    説明

    ポッドに対して自動サイドカープロキシインジェクションを有効にした後、設定を有効にするには、ポッドを再起動する必要があります。詳細については、「サイドカープロキシの設定」の「(オプション)ワークロードの再デプロイ」セクションをご参照ください。

データプレーン上の Kubernetes クラスタとの間で ASM インスタンスとの自動サイドカープロキシインジェクションラベルを同期する

ASM インスタンスで作成する名前空間は、ASM コンソールまたは kubectl クライアントを使用して作成されたかどうかにかかわらず、ASM インスタンスのみに属します。名前空間は、ASM インスタンスによって管理されるデータプレーン上の Kubernetes クラスタとは独立しています。ASM インスタンスの名前空間とその自動サイドカープロキシインジェクションラベルを、名前空間が属するデータプレーン上の Kubernetes クラスタに同期できます。逆もまた同様です。

データプレーン上の Kubernetes クラスタから ASM インスタンスに自動サイドカープロキシインジェクションラベルを同期するASM インスタンス

データプレーン上の Kubernetes クラスタから ASM インスタンスに自動サイドカープロキシインジェクションラベルが同期されると、次の結果が発生します。

  • データプレーン上の Kubernetes クラスタに名前空間が存在するが、ASM インスタンスに存在しない場合、名前空間は自動的に作成されます。

  • データプレーン上の Kubernetes クラスタの名前空間に istio-injection ラベルまたは istio.io/rev ラベルがある場合、ラベルは ASM インスタンス内の同じ名前の名前空間に自動的に同期されます。

  1. ASM コンソールにログインします。左側のナビゲーションペインで、[service Mesh] > [メッシュ管理] を選択します。

  2. [メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションペインで、[ASM インスタンス] > [グローバル名前空間] を選択します。

  3. [グローバル名前空間] ページで、[kubernetes クラスタからサイドカー自動インジェクションを同期] をクリックします。[kubernetes クラスタからサイドカー自動インジェクションを同期] ダイアログボックスで、同期元の Kubernetes クラスタを選択し、[OK] をクリックします。

    [グローバル名前空間] ページで、ASM インスタンスのグローバル名前空間がデータプレーン上の Kubernetes クラスタと同期されていることを確認できます。

ASM インスタンスからデータプレーン上の Kubernetes クラスタに自動サイドカープロキシインジェクションラベルを同期する

重要

ASM インスタンスの名前空間を変更すると、ASM インスタンスの名前空間の自動サイドカープロキシインジェクションラベルは、名前空間が属するデータプレーン上の Kubernetes クラスタに自動的に同期されます。データプレーン上の Kubernetes クラスタの名前空間を変更したために、ASM インスタンスの名前空間がデータプレーン上の Kubernetes クラスタの名前空間と異なる場合にのみ、この操作を実行する必要があります。

ASM インスタンスからデータプレーン上の Kubernetes クラスタに自動サイドカープロキシインジェクションラベルが同期されると、次の結果が発生します。

  • ASM インスタンスに名前空間が存在するが、データプレーン上の Kubernetes クラスタに存在しない場合、名前空間は自動的に作成されます。

  • ASM インスタンスの名前空間に istio-injection ラベルまたは istio.io/rev ラベルがある場合、ラベルはデータプレーン上の Kubernetes クラスタ内の同じ名前の名前空間に自動的に同期されます。

  • ASM インスタンスの名前空間のラベルは、データプレーン上のすべての Kubernetes クラスタに同期されます。

  1. ASM コンソールにログインします。左側のナビゲーションペインで、[service Mesh] > [メッシュ管理] を選択します。

  2. [メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションペインで、[ASM インスタンス] > [グローバル名前空間] を選択します。

  3. [グローバル名前空間] ページで、[kubernetes クラスタに自動サイドカーインジェクションを同期] をクリックします。

    データプレーン上の Kubernetes クラスタの名前空間が ASM インスタンスと同期されていることがわかります。データプレーン上の Kubernetes クラスタの名前空間を表示する方法の詳細については、「名前空間とリソースクォータの管理」をご参照ください。

グローバル名前空間が属するクラスタを変更する

データプレーン上の複数の Kubernetes クラスタが ASM インスタンスに追加されている場合、グローバル名前空間が属するクラスタを変更できます。ASM インスタンスからデータプレーン上の Kubernetes クラスタに自動サイドカープロキシインジェクションラベルを同期すると、ASM インスタンスの名前空間とその自動サイドカープロキシインジェクションラベルは、ASM インスタンスの名前空間が属するクラスタに基づいて、データプレーン上の異なる Kubernetes クラスタに同期されます。

この機能を使用するには、ASM インスタンスのバージョンが 1.17.2.37 以降である必要があります。ASM インスタンスの更新方法の詳細については、「ASM インスタンスの更新」をご参照ください。グローバル名前空間が属するクラスタは、次のいずれかの方法で変更できます。

方法 1: データプレーン上の Kubernetes クラスタから ASM インスタンスに自動サイドカープロキシインジェクションラベルを同期すると、システムが自動的にクラスタを変更しますシステムは、データプレーン上の Kubernetes クラスターから ASM インスタンスに自動サイドカープロキシインジェクションラベルを同期すると、クラスターを自動的に変更します

データプレーン上の Kubernetes クラスタから ASM インスタンスに自動サイドカープロキシインジェクションラベルを同期すると、クラスタとグローバル名前空間間の所属関係も同期されます。

方法 2: グローバル名前空間が属するクラスタを手動で変更する

ASM インスタンスからデータプレーン上の Kubernetes クラスタに自動サイドカープロキシインジェクションラベルを同期すると、グローバル名前空間が属するクラスタに対して次の結果が発生します。

グローバル名前空間を同期するときに、Kubernetes クラスタが名前空間が属するクラスタでない場合、名前空間とその自動サイドカープロキシインジェクションラベルはデータプレーンに同期されません。

  1. ASM インスタンスに複数のクラスタを追加します。詳細については、「ASM インスタンスにクラスタを追加する」または「ASM によって管理されるサーバーレスゲートウェイを使用してマルチクラスタイングレスを実装する」をご参照ください。

  2. ASM コンソールにログインします。左側のナビゲーションペインで、[service Mesh] > [メッシュ管理] を選択します。

  3. [メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションペインで、[ASM インスタンス] > [グローバル名前空間] を選択します。

  4. [グローバル名前空間] ページで、目的の名前空間を見つけ、[所属クラスタ] 列の [編集] をクリックします。表示されるダイアログボックスで、1 つ以上の Kubernetes クラスタを選択し、[OK] をクリックします。