機械翻訳について

ドメイン失敗再試行処理

このドキュメントでは、Kubernetes環境のOracle WebLogic Serverでのドメイン失敗再試行処理について説明します。

目次

概要

WebLogic Kubernetes Operatorは、ドメイン・リソースの処理中に様々な失敗が発生する可能性があります。 失敗は、ドメイン・リソースのstatus.conditionsフィールドでKubernetesイベントおよび「条件」を使用して報告されます。 「ドメインのデバッグ」を参照してください。 失敗は様々なカテゴリに分類され、オペレータによって処理が異なります。オペレータは、ほとんどの失敗によって自動再試行が発生します。 失敗の再試行制限および間隔のチューニングについては、「再試行動作」を参照してください。

ドメイン失敗の重大度

ドメイン・リソースの失敗は、次の3つの重大度レベルに分類されます:

  • 警告
    • 通常、ドメインが使用可能になるのを妨げないドメイン仕様構成とWebLogicドメイン・トポロジが一致しません。 たとえば、レプリカの構成が高すぎます。
  • 重大な失敗
    • ドメイン処理中のほとんどの失敗は一時的な失敗であり、後で介入なしで解決されるか、ドメイン・リソースまたはクラスタ・リソースを変更せずにユーザー・アクションによって修正される可能性があります。 このタイプの失敗が発生した場合のオペレータ「定期的な再試行」
      例:
      • イントロスペクタ・ジョブのタイムアウト(DeadlineExceededエラー)。
      • 特別なマーカー文字列FatalIntrospectorErrorを含まないイントロスペクタ・ログのSEVERE エラー。
      • 一時的なネットワークの問題。
      • 一部のリソースを作成する権限がありません。
      • オペレータからの例外です。
      • ドメイン仕様を変更せずに修正できるバリデーション・エラー(シークレットの欠落やConfigMapの欠落など)。
  • 致命的な失敗
    • 自動的に再試行されない失敗。 失敗の原因を修正し、「再試行動作」の説明に従ってドメインを更新することで、再試行を手動で開始する必要があります。
      例:
      • 特別なマーカー文字列FatalIntrospectorErrorを含むイントロスペクタ・ログの致命的なエラー。
      • ドメイン仕様の変更が必要なドメイン・リソースのバリデーション・エラー。
      • 予想される「最大再試行時間」に達したSevereレベルでの失敗。

ドメイン失敗の理由については、「ドメイン失敗の理由」を参照してください。

「失敗とその重大度を示すドメイン・ステータスの例については、ここをクリックしてください。」

再試行動作

重大度がFatalまたはWarningの失敗が発生したドメインは再試行されません。 ドメインのステータスには、失敗状態の修正に必要なアクションを示すメッセージが含まれている必要があります。

重大度がSevereのドメイン失敗は、次のように再試行されます:

  • このオペレータは、前の失敗のタイムスタンプに基づいて次の再試行時間を計算するため、次の再試行は常に、最後の失敗タイムスタンプと事前定義された再試行間隔の時間に発生します。
    • 前回の失敗のタイムスタンプは、ドメイン・ステータスのlastFailureTimeフィールドにあります。
    • 再試行間隔は、ドメイン指定のfailureRetryIntervalSecondsフィールドに指定されます。 デフォルト値は120秒です。 ゼロ秒の値は、失敗直後に再試行することを意味します。
  • 最初の失敗が事前定義された最大再試行時間を超えてからの経過時間が経過すると、オペレータはドメイン・リソースの再試行を停止します。
    • 初期失敗のタイムスタンプは、initialFailureTimeフィールドでドメイン・ステータスを確認できます。
    • 再試行間隔は、ドメイン指定のfailureRetryLimitMinutesフィールドに指定されます。 デフォルト値は1440分(24時間)です。 値0分は再試行を無効にします。これは、デバッグ目的でログファイルにアクセスする場合に役立ちます。

次は、保留中の再試行で失敗を示すドメイン・ステータスの例です。 このドメイン・リソースは、failureRetryLimitMinutesが10分になるように構成されています。 次の再試行はLast Failure Timeの120秒後であり、再試行は時間がInitial Failure Timeの10分後であることに注意してください。

Status:
  ...
  Initial Failure Time:      2022-10-11T23:16:21.851801Z
  Last Failure Time:         2022-10-11T23:21:53.109997Z
  Message:                   Failure on pod 'domain1-introspector-hlvwt' in namespace 'default': Back-off pulling image "oracle/weblogic:12214". Will retry next at 2022-10-11T23:23:53.109997240Z and approximately every 120 seconds afterward until 2022-10-11T23:26:21.851801Z if the failure is not resolved.

この例では、すべての再試行が、事前定義された再試行時間制限の前にドメインの起動に失敗し、ドメイン・ステータスにAbortedの理由を含むFatalの失敗が示されています。

Status:
  Clusters:
  Conditions:
    Last Transition Time:    2022-10-11T23:26:34.107662Z
    Message:                 The operator failed after retrying for 10 minutes. This time limit may be specified in spec.failureRetryLimitMinutes. Please resolve the error and then update domain.spec.introspectVersion to force another retry.
    Reason:                  Aborted
    Severity:                Fatal
    Status:                  True
    ...

即時再試行を手動で開始するか、spec.failureRetryLimitMinutesに達した再試行を再開するには、オペレータによる即時アクションを引き起こすドメイン・フィールドを更新します。 たとえば、必要に応じてspec.introspectVersionまたはspec.restartVersionを変更します。 「起動と停止」および「イントロスペクションの開始」を参照してください

ドメイン失敗の理由

次に、ドメイン・リソースの処理中にオペレータによって発生する可能性のある失敗の理由の一覧を示します。

ドメイン失敗理由 説明
DomainInvalid ドメイン・リソース内の1つ以上の構成バリデーション・エラー(domainUIDなど)が長すぎるか、構成オーバーライドがイメージ・ドメインのモデルで使用されています。
Introspection 1つ以上のSEVEREログ・メッセージがイントロスペクタのログ・ファイルにあります。
Kubernetes Kubernetes APIコールから受信したリカバリ不能なレスポンス・コード。
ServerPod 1つ以上のWebLogic Serverポッドが失敗したか、ドメイン・リソースのspec.serverPod.maxReadyWaitTimeSecondsで構成された事前定義済の最大待機時間内に準備完了状態になりませんでした。そうしないと、イントロスペクタ・ジョブ・ポッドが完了しませんでした。
ReplicasTooHigh レプリカ・フィールドは、WebLogicクラスタ構成内のサーバーの最大数を超える値に設定または変更されます。
Internal ドメイン・リソースの処理中にオペレータで内部例外が発生しました。
TopologyMismatch ドメイン・リソースに構成された1つ以上のサーバーまたはクラスタがWebLogicドメイン構成に存在しないか、モニタリング・エクスポータ・ポートが指定され、サーバー・ポートと競合しています。
Aborted イントロスペクタで致命的なエラーが発生したか、オペレータが最大再試行時間を超えました。