ジョブ実行が完了しないのはなぜですか?

コンソールを使用している場合は、ジョブをサブミットしても、ジョブ実行は完了しません。

CLI を使用する場合、ジョブのサブミット後にジョブの実行が完了しません。 その結果は、ibmcloud ce jobrun get コマンドを実行してジョブ実行の詳細を表示することで確認できますが、ジョブ実行の状況の結果に、以下の出力が含まれていません。

Status:                True
Type:                  Complete

ジョブ実行が完了しなかった場合は、以下のいずれかのケースが該当するかどうかを判別します。

  1. ジョブ実行が完了するにはさらに時間が必要です。
  2. ジョブ実行が使用するイメージが存在しません。
  3. コンテナー・レジストリーの割り当て量を超えたか、レジストリーに認証が必要です。
  4. ジョブ実行で必要な環境変数パラメーターが指定されていません。
  5. ジョブ実行に渡されるコマンドまたは引数が無効です。

以下のいずれかの解決策を試してください。

  1. ジョブを実行できるだけの十分な時間が指定されていることを確認します。

    • コンソールを使用する場合は、ジョブ・ページで**「ジョブの実行依頼 (Submit Job)」**をクリックして、選択したジョブとその定義済みプロパティーに基づいてジョブを実行します。 **「ジョブのタイムアウト (Job timeout)」**値が正しく設定されていること、ジョブ実行を完了できるだけの十分な時間が指定されていることを確認します。

    • CLI を使用する場合は、--maxexecutiontime MAX_TIME オプションが正しく設定されていること、ジョブ実行を完了できるだけの十分な時間が指定されていることを確認します。

  2. ジョブ実行で使用されているイメージが存在し、正しく参照されていることを確認します。

    • コンソールを使用する場合は、ジョブ・ページで、**「イメージ参照 (Image reference)」**に指定されているイメージが正しいこと、そのイメージがコンテナー・レジストリーに存在することを確認します。

    • CLI を使用する場合は、ibmcloud ce jobrun get コマンドを使用してジョブ実行の詳細を表示します。その表示にイメージの名前が含まれています。 存在するイメージを使用していることを確認します。

  3. ibmcloud ce jobrun events --jobrun JOBRUN_NAMEコマンドを実行して、ImagePullBackOffエラーを確認します。以下に例を示します。

    ibmcloud ce jobrun events --jobrun myjobrun
    
    • イベント内のエラーが以下のメッセージに類似している場合、このエラーは、レジストリー割り当て量を超過したことを示します。 プランのアップグレードを検討してください。 IBM Cloud Container Registry サービス・プランおよび割り当て量制限について詳しくは、IBM Cloud Container Registryについてを参照してください。
      403 Forbidden - Server message: denied: You have exceeded your pull traffic quota for the current month. Review your pull traffic quota and pricing plan.
      
    • イベント内のエラーが以下のメッセージに類似している場合、このエラーは、レジストリーへのアクセスが存在しないか、権限が必要である可能性があることを示します。 資格情報に適切なレジストリーへのアクセスがあることを確認します。
      Failed to pull image "<image_name>": rpc error: code = Unknown desc = failed to pull and unpack image "<image_name:image_tag>": failed to resolve reference <image_name:image_tag>": pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed.
      
  4. 実行依頼されたジョブ実行の詳細を表示します。

    • コンソールから、ジョブ・ページの 「ジョブ実行」 タブでジョブ実行の名前をクリックして、実行依頼したジョブの詳細を表示します。 実行依頼されたジョブ実行の詳細ページで、設定されている環境変数を確認し、環境変数が正しいことを確認できます。

    • CLI を使用する場合は、ibmcloud ce jobrun get コマンドを使用して、以下の項目についての結果を確認します。

      • ジョブ実行の詳細で、--env KEY=VALUE--env-from-secret SECRET_NAME、および --env-from-configmap CONFIGMAP_NAME オプションを使用して設定されている環境変数が正しいかどうかを確認します。
      • ibmcloud ce secret get --name SECRET_NAME コマンドと ibmcloud ce configmap get --name CONFIGMAP_NAME コマンドを使用して、シークレットと構成マップに格納されている環境変数が存在することを確認します。
  5. コマンドと引数がジョブ実行に対して有効であることを確認してください。

    • コンソールから、ジョブ・ページの 「ジョブ実行」 タブでジョブ実行の名前をクリックして、実行依頼されたジョブの詳細をコンソールに表示します。 実行依頼されたジョブの詳細ページには、実行依頼されたジョブの実行に対して定義されているすべてのコマンドまたは引数がリストされます。 コマンドと引数の順序が重要になります。

    • CLI では、 ibmcloud ce jobrun get コマンドを使用して、実行依頼されたジョブ実行の詳細を表示します。 コマンドと引数の順序が重要になります。

これらの解決策で問題が解決しない場合は、さらに詳しくデバッグするために、ジョブ実行のログまたはシステム・イベント情報を取得してみてください。 詳しくは、ジョブ実行インスタンスのログを取得するにはどうすればよいですか?およびジョブ実行インスタンスのシステム・イベント情報を取得するにはどうすればよいですか? を参照してください。 (CLI)

ジョブの実行について詳しくは、ジョブの実行を参照してください。