ジョブは、複数の短期間のワンオフタスクを一度に処理し、タスク内の 1 つ以上のポッドが正常に終了することを保証します。ジョブを使用して、Alibaba Cloud Container Compute Service (ACS) コンソールでアプリケーションを作成できます。このトピックでは、ジョブの作成方法について説明します。
背景情報
ジョブは、.spec.completions パラメータと .spec.parallelism パラメータに基づいて、以下のタイプに分類されます。.spec.completions
パラメータは、ジョブが完了したと見なされる前に正常に終了する必要があるポッドの数を指定します。デフォルト値:1。.spec.parallelism
パラメータは、ジョブが並列に実行する必要があるポッドの数を指定します。デフォルト値:1。
ジョブタイプ | completions | parallelism | 例 | アクション |
ワンオフジョブ | 1 | 1 | データベース移行 | ジョブは 1 つのポッドのみを開始します。ポッドが正常に終了すると、ジョブは完了します。 |
固定完了カウントのジョブ | 2+ | 1 | 作業キューを処理するためにポッドを 1 つずつ開始する | ジョブはポッドを 1 つずつ開始します。正常に終了したポッドの数が |
作業キューを持つ並列ジョブ | 1 | 2+ | このタイプのジョブは、複数のポッドを同時に開始します。 | ジョブは複数のポッドを並列に実行し、すべてのポッドが終了し、少なくとも 1 つのポッドが正常に終了すると完了したと見なされます。 |
固定完了カウントの並列ジョブ | 2+ | 2+ | このタイプのジョブは、複数のポッドを同時に開始します。 | ジョブは複数のポッドを並列に実行し、正常に終了したポッドの数が |
手順
ステップ 1:基本的なアプリケーション設定を構成する
[ACSコンソール] (ACS console) にログオンします。左側のナビゲーションペインで、[クラスター] Clusters をクリックします。
[クラスタ] ページで、管理するクラスタを見つけ、その ID をクリックするか、クラスタの [アクション] 列の [詳細] をクリックします。クラスター詳細アクション
詳細ページの左側のナビゲーション [ペイン] で、[ワークロード] > [ジョブ] を選択します。
[ジョブ] ページで、[イメージから作成] をクリックします。ジョブイメージから作成
[基本情報] ウィザードページで、アプリケーションの基本設定を構成します。基本情報
パラメータ
説明
名前
アプリケーションの名前を入力します。
種類
[ジョブ] を選択します。ジョブ
ラベル
アプリケーションにラベルを追加します。ラベルは、アプリケーションを識別するために使用されます。
注釈
アプリケーションにアノテーションを追加します。
インスタンスタイプ
使用するインスタンスタイプ。詳細については、「ACS ポッドの概要」をご参照ください。
Qos タイプ
QoS クラスを選択します。詳細については、「コンピューティングパワー QoS」をご参照ください。
汎用ポッドは、[既定] および [besteffort] QoS クラスをサポートしています。
パフォーマンス強化ポッドは、[デフォルト] QoS クラスのみをサポートしています。既定
基本設定が完了したら、[次へ] をクリックします。次へ
ステップ 2:コンテナ設定を構成する
コンテナー ウィザード ページで、コンテナー イメージ、リソース構成、ポート、環境変数、ライフサイクル、ボリューム、およびログを構成します。
[コンテナ 1] タブの右側にある [コンテナの追加] をクリックして、さらにコンテナを追加します。[コンテナーの追加]コンテナー 1
[全般] セクションで、基本的なコンテナー設定を構成します。
パラメータ
説明
イメージ名
イメージを選択
[イメージを選択] をクリックして、コンテナイメージを選択します。イメージを選択
Container Registry Enterprise Edition:Container Registry Enterprise Edition インスタンスに保存されているイメージを選択します。イメージが属するリージョンと Container Registry インスタンスを選択する必要があります。詳細については、「Container Registry とは」をご参照ください。
コンテナーレジストリ 個人版:コンテナーレジストリ 個人版インスタンスに保存されているイメージを選択します。コンテナーレジストリ 個人版がアクティブになっていることを確認してください。イメージが属するリージョンとコンテナーレジストリ インスタンスを選択する必要があります。
[成果物センター] : 成果物センターには、アプリケーションのコンテナー化のための基本オペレーティング システム イメージ、基本言語イメージ、および AI 関連イメージとビッグデータ関連イメージが含まれています。この例では、NGINX イメージが選択されています。詳細については、「成果物センターの概要」をご参照ください。
(オプション) イメージプルポリシーを設定する
[イメージプルポリシー] ドロップダウンリストからイメージプルポリシーを選択します。デフォルトでは、Kubernetes の IfNotPresent ポリシーが使用されます。イメージ プル ポリシー
ifNotPresent:プルするイメージがオンプレミス マシン上にある場合、オンプレミス マシン上のイメージが使用されます。それ以外の場合、システムはイメージ レジストリからイメージをプルします。
常に:アプリケーションがデプロイまたは拡張されるたびに、システムはレジストリからイメージをプルします。
[しない]:システムはオンプレミス マシン上のイメージのみを使用します。
(オプション) イメージプルシークレットを設定する
[イメージプルシークレットを設定] をクリックして、プライベートイメージをプルするために使用するシークレットを設定します。イメージ プル シークレットの設定
シークレットを使用して、Container Registry Personal Edition インスタンスからイメージをプルできます。シークレットの設定方法の詳細については、「シークレットの管理」をご参照ください。
シークレットを使用せずに、Container Registry Enterprise Edition インスタンスからイメージをプルできます。詳細については、「シークレットを使用せずに Container Registry インスタンスからイメージをプルする」をご参照ください。
必要なリソース
コンテナのリソースリクエストを指定します。
CPU:コンテナーの CPU リクエストと CPU 制限を構成できます。デフォルトでは、CPU リクエストは CPU 制限と同じです。CPU リソースは従量課金制です。YAML テンプレートを使用してリソースリクエストとは異なるリソース制限を設定した場合、リソースリクエストはリソース制限の値で自動的に上書きされます。詳細については、「リソース仕様」をご参照ください。
メモリ: コンテナーのメモリ要求とメモリ制限を構成できます。デフォルトでは、メモリ要求はメモリ制限と同じです。メモリリソースは従量課金制です。YAML テンプレートを使用してリソース要求とは異なるリソース制限を設定した場合、リソース要求はリソース制限の値で自動的に上書きされます。詳細については、「リソース仕様」をご参照ください。
コンテナー開始パラメーター
コンテナの起動オプションを指定します。このパラメータはオプションです。
stdin: ACK コンソールでの入力をコンテナーに渡します。
tty:仮想端末で定義されている開始パラメーターを ACK コンソールに渡します。
説明stdin と tty は一緒に使用されます。この場合、仮想端末 (tty) はコンテナーの stdin に関連付けられます。たとえば、対話型プログラムはユーザーから stdin を受信し、端末にコンテンツを表示します。
初期化コンテナー
このチェックボックスをオンにすると、init コンテナが作成されます。このパラメータはオプションです。
Init コンテナを使用して、アプリケーションコンテナの起動をブロックまたは延期できます。ポッド内のアプリケーションコンテナは、init コンテナが起動した後にのみ同時に起動します。たとえば、init コンテナを使用して、アプリケーションが依存するサービスの可用性を確認できます。アプリケーションイメージでは提供されていないツールやスクリプトを init コンテナで実行して、アプリケーションコンテナのランタイム環境を初期化できます。たとえば、ツールやスクリプトを実行して、カーネルパラメータを構成したり、構成ファイルを生成したりできます。詳細については、「Init Containers」をご参照ください。
オプション:[ポート] セクションで、[追加] をクリックしてコンテナポートを追加できます。ポート追加
パラメータ
説明
名前
コンテナポートの名前を入力します。
コンテナーポート
公開するコンテナポートを指定します。ポート番号は 1 ~ 65535 の範囲内である必要があります。
プロトコル
有効な値:TCP および UDP。
オプション:[環境] セクションで、[追加] をクリックして環境変数を追加できます。環境追加
環境ラベルを追加したり、構成を渡したりするために、キーと値のペアで環境変数をポッドに追加できます。詳細については、「Expose Pod Information to Containers Through Environment Variables」をご参照ください。
パラメータ
説明
種類
環境変数のタイプを選択します。有効な値:
カスタム
パラメーター
シークレット
値/valuefrom
リソースフィールド参照
ConfigMap またはシークレットを選択した場合、選択した ConfigMap またはシークレットのすべてのデータをコンテナ環境変数に渡すことができます。
この例では、シークレットが選択されています。[タイプ] ドロップダウンリストから [シークレット] を選択し、[値/ValueFrom] ドロップダウンリストからシークレットを選択します。デフォルトでは、選択したシークレットのすべてのデータが環境変数に渡されます。シークレット
この場合、アプリケーションのデプロイに使用される YAML ファイルには、選択したシークレットのすべてのデータを参照する設定が含まれています。
変数キー
環境変数の名前。
値/valuefrom
環境変数の値。
オプション:[ライフサイクル] セクションで、コンテナのライフサイクルを構成できます。ライフサイクル
コンテナのライフサイクルを構成するために、次のパラメータを指定できます。開始、開始後、および停止前。詳細については、「Attach Handlers to Container Lifecycle Events」をご参照ください。
パラメータ
説明
[開始]
コンテナが起動する前に有効になるコマンドとパラメータを指定します。
起動後
コンテナが起動した後に有効になるコマンドを指定します。
プリストップ
コンテナを終了するコマンドを指定します。
オプション:[ボリューム] セクションで、コンテナにマウントするボリュームを構成します。ボリューム
オプション:[ログ] セクションで、[ログ設定] を指定し、収集されたログに [カスタムタグ] を追加できます。ログログ記録構成カスタム タグ
パラメータ
説明
収集設定
ログストア:ログサービスでログストアを作成して、収集されたログデータを保存します。
コンテナー内のログパス (stdout に設定可能): Stdout またはログを収集するパスを指定します。
stdout ファイルを収集する:stdout を指定すると、stdout ファイルが収集されます。
テキストログ:コンテナの指定されたパスにあるログが収集されることを指定します。この例では、
/var/log/nginx
がパスとして指定されています。パスにはワイルドカード文字を使用できます。
カスタムタグ
カスタムタグを追加することもできます。タグは、ログが収集されるときにコンテナのログに追加されます。ログの分析とフィルタリングのために、コンテナログにカスタムタグを追加できます。
[次へ] をクリックして、[詳細設定] ウィザードページに進みます。次へ詳細
ステップ 3:詳細設定を構成する
[ジョブ設定] セクションで、ジョブパラメータを構成します。ジョブ設定
パラメータ
説明
完了
正常に終了する必要があるポッドの数。デフォルト値:1。
並列処理
ジョブが並列に実行する必要があるポッドの数。デフォルト値:1。
タイムアウト
YAML ファイルの activeDeadlineSeconds フィールド。このフィールドは、ジョブの期間制限を指定します。ジョブが期間制限内に完了しない場合、システムはジョブの終了を試みます。
バックオフ制限
ポッドが失敗した後にポッドを再作成する最大試行回数。デフォルト値:6。失敗したポッドは、指数バックオフ遅延で再作成されます。遅延の上限は 6 分です。
再起動
有効な値: なし と エラー時。
オプション:[ラベル、アノテーション] セクションで、[追加] をクリックしてポッドにラベルとアノテーションを追加します。ラベル、アノテーション追加
[今すぐ作成] をクリックします。今すぐ作成
ステップ 4:アプリケーション情報を表示する
アプリケーションが作成されたら、表示されるページの [詳細の表示] をクリックして、ジョブの詳細ページに移動します。[詳細の表示]
[ジョブ] ページで情報を確認することもできます。ジョブの名前をクリックするか、ジョブの [アクション] 列の [詳細] をクリックして、詳細ページに移動します。ジョブ詳細アクション