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

Enterprise Distributed Application Service:アプリケーション Pod にラベルを追加する

最終更新日:Jan 07, 2025

マイクロサービスモデルでは、Kubernetes クラスタに多数のアプリケーションが含まれている場合があります。各アプリケーションには複数のバージョンが存在する可能性があります。この場合、クラスタ内に多数の Pod が存在する可能性があります。アプリケーション Pod を識別するために、Enterprise Distributed Application Service (EDAS) コンソールで、名前と値の形式でラベルを設定できます。その後、ラベルでアプリケーション Pod を検索できるため、アプリケーション管理が簡素化されます。このトピックでは、アプリケーションの作成時またはデプロイ時にアプリケーション Pod のラベルを設定する方法について説明します。

手順

  1. EDAS コンソールにログインします。

  2. 左側のナビゲーションペインで、[アプリケーション管理] > [アプリケーション] をクリックします。トップナビゲーションバーで、リージョンを選択します。ページの上部で、名前空間を選択します。[コンテナサービスまたはサーバーレス Kubernetes クラスタ][クラスタタイプ] ドロップダウンリストから選択します。次に、デプロイするアプリケーションを見つけて、アプリケーション名をクリックします。

  3. [アプリケーションの概要] ページの右上隅で、[デプロイ] > [デプロイ] を選択します。

  4. [デプロイモードの選択] ページで、デプロイモードを選択し、デプロイモードセクションの右上隅にある [デプロイの開始] をクリックします。

    説明

    この例では、[すべてに一度にリリース] モードを使用しています。

  5. [すべてに一度にリリース] ページで、デプロイパラメータ設定を変更し、[ラベル設定] をクリックして、名前と値のペアを設定します。[OK] をクリックします。

    説明

    名前と値のペアの値として、アプリケーションの名前を指定する必要があります。

    アプリケーションがデプロイされた後、次の kubectl コマンドを実行して、指定されたラベルで Pod を検索します。

    kubectl get pod -l demo-app-name=sc-server-demo

    以下のようなコマンド出力が表示されます。

    NAME                                        READY   STATUS    RESTARTS   AGE
    sc-server-demo-group-1-1-5795d5487c-****   2/2     Running   0          2m58s

ラベルを使用して Pod アフィニティを設定する

Kubernetes クラスタにアプリケーションをデプロイする場合は、異なるコンポーネント間の依存関係を考慮する必要があります。たとえば、特定の Pod を同じトポロジードメインにスケジュールできますが、他の Pod を同じトポロジードメインにスケジュールすることはできません。この場合、ラベルを使用してカスタム Pod アフィニティまたは Pod アンチアフィニティを設定できます。次のセクションでは、ラベルを使用して Pod アフィニティを実装する方法について説明します。

前提条件

demo-app-name=sc-server-demo ラベルを追加するアプリケーションがデプロイされています。

手順

次の手順では、別のアプリケーションの Pod アフィニティを設定し、2 つのアプリケーションの Pod を同じノードにスケジュールする方法について説明します。

  1. EDAS コンソールにログインします。

  2. 左側のナビゲーションペインで、[アプリケーション管理] > [アプリケーション] をクリックします。トップナビゲーションバーで、リージョンを選択します。ページの上部で、名前空間を選択します。[コンテナサービスまたはサーバーレス Kubernetes クラスタ][クラスタタイプ] ドロップダウンリストから選択します。次に、デプロイするアプリケーションを見つけて、アプリケーション名をクリックします。

  3. [アプリケーションの概要] ページの右上隅で、[デプロイ] > [デプロイ] を選択します。

  4. [デプロイモードの選択] ページで、デプロイモードを選択し、デプロイモードセクションの右上隅にある [デプロイの開始] をクリックします。

    説明

    この例では、[すべてに一度にリリース] モードを使用しています。

  5. [すべてに一度にリリース] ページで、アプリケーション環境とデプロイパッケージを変更し、[スケジューリングルール] をクリックします。

    [モードの選択] フィールドで、[カスタム設定] を選択します。[pod アフィニティ] タブで、スケジューリングルールを作成し、次の設定を実行します。

    • kubernetes.io/hostnameトポロジキー

    • demo-app-nameアプリケーションタグキー

    • In演算子

    • sc-server-demoアプリケーションタグ値

  6. [ラベル設定] をクリックし、demo-app-name=sc-client-demo の名前と値のペアを設定します。次に、[OK] をクリックします。

    アプリケーションがデプロイされた後、次の kubectl コマンドを実行して、2 つのアプリケーション Pod が存在するノードをクエリします。

    kubectl get pod -l demo-app-name=sc-client-demo -o wide
    kubectl get pod -l demo-app-name=sc-server-demo -o wide

    以下のようなコマンド出力が表示されます。

    NAME                                        READY   STATUS    RESTARTS   AGE   IP            NODE                          NOMINATED NODE   READINESS GATES
    sc-

    コマンド出力は、2 つのアプリケーション ポッドが同じノードに存在することを示しています。

次の手順

アプリケーションをデプロイする際に、[pod Affinity] タブと [pod Anti-affinity] タブでスケジューリングルールを作成できます。詳細については、「スケジューリングルールの構成」をご参照ください。