4.5. 起動プローブ


起動プローブは、サービスが正常に起動したかどうかを確認し、起動プロセスが遅いコンテナーのコールドスタート時間を短縮するのに役立ちます。起動プローブはコンテナーの初期化フェーズ中にのみ実行し、定期的に実行することはありません。起動プローブが失敗した場合、コンテナーは定義された restartPolicy に従います。

4.5.1. 進捗期限

デフォルトでは、サービスには、サービスが最初の起動を完了するまでの時間制限を定義する進行期限があります。起動プローブを使用する場合は、進行期限が起動プローブに必要な最大時間を超えるように設定されていることを確認してください。進行期限の設定が低すぎると、期限に達する前に起動プローブが終了しない可能性があり、サービスが起動しない可能性があります。

デプロイメント中に次のいずれかの状況が発生した場合は、進行期限を延長することを検討してください。

  • サービスイメージはサイズが大きいため、プルに時間がかかります。
  • 初期キャッシュの準備のため、サービスが READY になるまでに長い時間がかかります。
  • クラスターは、新しい Pod にリソースを割り当てるために自動スケーリングに依存します。

4.5.2. 起動プローブの設定

OpenShift Serverless Serving の場合、起動プローブはデフォルトでは定義されません。デプロイメント設定でコンテナーの起動プローブを定義できます。

手順

  • デプロイメント設定を変更して、サービスの起動プローブを定義します。次の例は、2 つのコンテナーを含む設定を示しています。

    定義された起動プローブの例

    apiVersion: serving.knative.dev/v1
    kind: Service
    # ...
    spec:
      template:
        spec:
           containers:
            - name: first-container
              image: <image>
              ports:
                - containerPort: 8080
              # ...
              startupProbe: 1
              httpGet:
                port: 8080
                path: "/"
            - name: second-container
              image: <image>
              # ...
              startupProbe: 2
              httpGet:
                port: 8081
                path: "/"

    1
    first-container の起動プローブ。
    2
    second-container の起動プローブ。

4.5.3. 進捗期限の設定

進行期限設定を設定して、システムが Knative リビジョンの失敗を報告する前に、デプロイメントの進行に許可される最大時間を指定できます。この時間制限は秒または分単位で指定できます。

進捗期限を効果的に設定するには、次のパラメーターを考慮してください。

  • initialDelaySeconds
  • failureThreshold
  • periodSeconds
  • timeoutSeconds

指定された制限時間内に初期スケールが達成されない場合、Knative Autoscaler コンポーネントはリビジョンを 0 にスケールし、Knative サービスは最終的な Failed 状態になります。

デフォルトでは、進行期限は 600 秒に設定されています。この値は Golang の time.Duration 文字列として指定され、最も近い秒に丸められる必要があります。

手順

  • 進行期限設定を設定するには、デプロイメント設定でアノテーションを使用します。

    進捗期限を 60 秒に設定した場合の例

    apiVersion: serving.knative.dev/v1
    kind: Service
    ...
    spec:
      template:
        metadata:
           annotations:
                serving.knative.dev/progress-deadline: "60s"
        spec:
            containers:
                - image: ghcr.io/knative/helloworld-go:latest

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.