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

Enterprise Distributed Application Service:スケジューリングルールの構成

最終更新日:Jan 07, 2025

Container Service for Kubernetes(ACK)クラスターにアプリケーションを作成またはデプロイする場合、必要に応じてPodのスケジューリングルールを変更し、できるだけ多くのノードとゾーンにPodをデプロイして、アプリケーションの可用性を向上させることができます。このトピックでは、スケジューリングルールを構成する方法について説明します。

アプリケーションの作成時にスケジューリングルールを構成する

  1. EDAS console にログオンします。左側のナビゲーションペインで、[アプリケーション管理] > [アプリケーション] を選択します。[アプリケーション] ページが表示されます。トップナビゲーションバーで、リージョンを選択します。ページの上部で、名前空間を選択します。左上隅にある [アプリケーションの作成] をクリックします。

  2. [基本情報] 手順で、[クラスタータイプ] パラメーターと [アプリケーションランタイム環境] パラメーターを設定し、[次へ] をクリックします。次の表に、パラメーターについて説明します。
    パラメーター説明
    クラスタータイプアプリケーションをデプロイするクラスターのタイプ。[kubernetesクラスター] を選択します。
    アプリケーションランタイム環境アプリケーションランタイム環境。アプリケーションのタイプに基づいて、アプリケーションランタイム環境を選択します。
    • Java:
      • カスタム: カスタムイメージを使用してACKクラスターにアプリケーションをデプロイする場合に、このオプションを選択します。
      • Java: ユニバーサル JAR パッケージを使用して、アプリケーションをDubboまたは Spring Boot アプリケーションとしてデプロイする場合に、このオプションを選択します。このオプションを選択した後、[Java環境] パラメーターを設定できます。
      • Tomcat: ユニバーサル WAR パッケージを使用して、アプリケーションをDubboまたは Spring アプリケーションとしてデプロイする場合に、このオプションを選択します。このオプションを選択した後、[Java環境] パラメーターと [コンテナーバージョン] パラメーターを設定できます。
      • EDAS-Container (HSF): WAR または FatJar パッケージを使用して、アプリケーションをHigh-speed Service Framework (HSF) アプリケーションとしてデプロイする場合に、このオプションを選択します。このオプションを選択した後、[Java環境]、[Pandoraバージョン]、[Ali-Tomcatバージョン] パラメーターを設定できます。
    • PHP: アプリケーションをApache HTTP Server上で実行される PHP アプリケーションとしてデプロイする場合に、このオプションを選択します。
    • Node.js、c++、go、およびその他の言語: カスタムイメージを使用してマイクロサービスアプリケーションをデプロイする場合に、このオプションを選択します。アプリケーションは任意のプログラミング言語で開発できます。
  3. [構成] 手順で、アプリケーションの環境情報、基本情報、およびデプロイ方法を構成し、関連するリソースパラメーターを設定して、[次へ] をクリックします。

  4. [詳細設定] 手順で、[スケジューリングルール] をクリックし、必要に応じてスケジューリングモードとルールを構成します。
    • [組み込み構成] モードを選択します。
      パラメーター説明
      ゾーンスケジューリング
      • デフォルトのスケジューリング: デフォルトでは、Podはクラスターリソースの状態に基づいてスケジュールされます。システムはすべてのPodを同じゾーンにデプロイする場合があります。したがって、このスケジューリングルールは高可用性を保証するものではありません。
      • できるだけ多くのゾーンにデプロイ: アンチアフィニティルールを使用して、Podをできるだけ多くのゾーンにデプロイし、高可用性を確保します。
      ノードスケジューリング
      • デフォルトのスケジューリング: デフォルトでは、Podはクラスターノードの負荷に基づいてスケジュールされます。
      • できるだけ多くのノードにデプロイ: Podはできるだけ多くのノードにデプロイされ、高可用性が確保されます。
    • [カスタム構成] モードを選択します。

      複雑なシナリオで、ゾーンまたはノードに基づく組み込みのスケジューリングルールが要件を満たせない場合は、Enterprise Distributed Application Service (EDAS) が提供するカスタム構成機能を使用して、独自のルールをカスタマイズすることもできます。

    表 1. ノードアフィニティでスケジューリングルールを作成する
    パラメーター説明
    セレクター

    ノードをフィルタリングするために使用される条件。[ノードタグキー][演算子][ノードタグ値] パラメーターを設定して、Podがデプロイされるノードを指定できます。

    重みルールの重み。有効な値: 0~100の整数。デフォルト値: 1。
    表 2. アプリケーションアフィニティでスケジューリングルールを作成する
    パラメーター説明
    Kubernetes名前空間アプリケーションをホストするACKクラスターの名前空間。
    トポロジーキーノード、ゾーン、リージョンなど、異なるノードが同じトポロジードメイン内にあるかどうかを判断するために使用されるノードラベルのキー。
    セレクターPodをフィルタリングするために使用される条件。[アプリケーションタグキー][演算子][アプリケーションタグ値] パラメーターを設定して、対応するトポロジードメインで実行するPodを決定できます。
    重みルールの重み。有効な値: 0~100の整数。デフォルト値: 1。
    表 3. アプリケーションアンチアフィニティでスケジューリングルールを作成する
    パラメーター説明
    Kubernetes名前空間アプリケーションをホストするACKクラスターの名前空間。
    トポロジーキーノード、ゾーン、リージョンなど、異なるノードが同じトポロジードメイン内にあるかどうかを判断するために使用されるノードラベルのキー。
    セレクターPodをフィルタリングするために使用される条件。[アプリケーションタグキー][演算子][アプリケーションタグ値] パラメーターを設定して、対応するトポロジードメインで実行するPodを決定できます。
    重みルールの重み。有効な値: 0~100の整数。デフォルト値: 1。
    表 4. toleration でスケジューリングルールを作成する
    パラメーター説明
    タグキーtaint と一致するために使用されるキー。
    演算子taint と一致するために使用される演算子。
    タグ値taint と一致するために使用される値。 toleration は、設定した [タグキー][タグ値][演算子][効果] パラメーターに基づいて taint と一致します。
    効果ノード上の taint が toleration された後に適用される効果。
    許容範囲 (秒)

    [効果] パラメーターが [noexecute] に設定されている場合にのみ、このパラメーターを設定できます。

    taint が toleration された後、Podがノード上で実行できる時間。このパラメーターが設定されていない場合、Podはノード上で実行を継続できます。
  5. [アプリケーションの作成] をクリックします。

  6. [作成完了] ページで、[基本情報][構成]、および [詳細設定] セクションの情報を確認します。次に、[アプリケーションの作成] をクリックします。

    [アプリケーション概要] ページの上部にある、[詳細の表示] をクリックします。[変更リスト] ページで、アプリケーションの変更プロセスを表示します。アプリケーションがデプロイされるまで数分待ちます。アプリケーションの変更プロセスが完了したら、[アプリケーション概要] ページの [基本情報] セクションでインスタンスの状態を表示します。ステータスに Pod が実行中と表示されている場合は、アプリケーションがデプロイされています。

アプリケーションの更新時にスケジューリングルールを構成する

アプリケーションの作成時またはデプロイ時にスケジューリングルールを構成できます。

  1. EDAS console にログオンします。

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

  3. [概要] または [基本情報] ページで、右上隅にある [デプロイ] > [デプロイ] を選択します。

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

  5. 環境とデプロイパッケージの情報を設定し、[スケジューリングルール] をクリックし、必要に応じて構成を完了して、[OK] をクリックします。
    • [組み込み構成] モードを選択します。
      パラメーター説明
      ゾーンスケジューリング
      • デフォルトのスケジューリング: デフォルトでは、Podはクラスターリソースの状態に基づいてスケジュールされます。システムはすべてのPodを同じゾーンにデプロイする場合があります。したがって、このスケジューリングルールは高可用性を保証するものではありません。
      • できるだけ多くのゾーンにデプロイ: アンチアフィニティルールを使用して、Podをできるだけ多くのゾーンにデプロイし、高可用性を確保します。
      ノードスケジューリング
      • デフォルトのスケジューリング: デフォルトでは、Podはクラスターノードの負荷に基づいてスケジュールされます。
      • できるだけ多くのノードにデプロイ: Podはできるだけ多くのノードにデプロイされ、高可用性が確保されます。
    • [カスタム構成] モードを選択します。

      複雑なシナリオで、ゾーンまたはノードに基づく組み込みのスケジューリングルールが要件を満たせない場合は、Enterprise Distributed Application Service (EDAS) が提供するカスタム構成機能を使用して、独自のルールをカスタマイズすることもできます。

    表 1. ノードアフィニティでスケジューリングルールを作成する
    パラメーター説明
    セレクター

    ノードをフィルタリングするために使用される条件。[ノードタグキー][演算子][ノードタグ値] パラメーターを設定して、Podがデプロイされるノードを指定できます。

    重みルールの重み。有効な値: 0~100の整数。デフォルト値: 1。
    表 2. アプリケーションアフィニティでスケジューリングルールを作成する
    パラメーター説明
    Kubernetes名前空間アプリケーションをホストするACKクラスターの名前空間。
    トポロジーキーノード、ゾーン、リージョンなど、異なるノードが同じトポロジードメイン内にあるかどうかを判断するために使用されるノードラベルのキー。
    セレクターPodをフィルタリングするために使用される条件。[アプリケーションタグキー][演算子][アプリケーションタグ値] パラメーターを設定して、対応するトポロジードメインで実行するPodを決定できます。
    重みルールの重み。有効な値: 0~100の整数。デフォルト値: 1。
    表 3. アプリケーションアンチアフィニティでスケジューリングルールを作成する
    パラメーター説明
    Kubernetes名前空間アプリケーションをホストするACKクラスターの名前空間。
    トポロジーキーノード、ゾーン、リージョンなど、異なるノードが同じトポロジードメイン内にあるかどうかを判断するために使用されるノードラベルのキー。
    セレクターPodをフィルタリングするために使用される条件。[アプリケーションタグキー][演算子][アプリケーションタグ値] パラメーターを設定して、対応するトポロジードメインで実行するPodを決定できます。
    重みルールの重み。有効な値: 0~100の整数。デフォルト値: 1。
    表 4. toleration でスケジューリングルールを作成する
    パラメーター説明
    タグキーtaint と一致するために使用されるキー。
    演算子taint と一致するために使用される演算子。
    タグ値taint と一致するために使用される値。 toleration は、設定した [タグキー][タグ値][演算子][効果] パラメーターに基づいて taint と一致します。
    効果ノード上の taint が toleration された後に適用される効果。
    許容範囲 (秒)

    [効果] パラメーターが [noexecute] に設定されている場合にのみ、このパラメーターを設定できます。

    taint が toleration された後、Podがノード上で実行できる時間。このパラメーターが設定されていない場合、Podはノード上で実行を継続できます。
    重要 [OK] をクリックすると、アプリケーションが再起動されます。この操作は、オフピーク時に実行することをお勧めします。