10.7.7. テンプレートの準備ができるまで待機する
テンプレートの作成者は、テンプレート内の特定のオブジェクトがサービスカタログ、Template Service Broker または TemplateInstance
API によるテンプレートのインスタンス化が完了したとされるまで待機する必要があるかを指定できます。
この機能を使用するには、テンプレート内の Build
、BuildConfig
、Deployment
、DeploymentConfig
、Job
または StatefulSet
のオブジェクト 1 つ以上に、次のアノテーションでマークを付けてください。
"template.alpha.openshift.io/wait-for-ready": "true"
テンプレートのインスタンス化は、アノテーションのマークが付けられたすべてのオブジェクトが準備できたと報告されるまで、完了しません。同様に、アノテーションが付けられたオブジェクトが失敗したと報告されるか、固定タイムアウトである 1 時間以内にテンプレートの準備が整わなかった場合に、テンプレートのインスタンス化は失敗します。
インスタンス化の目的で、各オブジェクトの種類の準備状態および失敗は以下のように定義されます。
種類 | 準備状態 (Readines) | 失敗 (Failure) |
---|---|---|
| オブジェクトが Complete (完了) フェーズを報告する | オブジェクトが Canceled (キャンセル)、Error (エラー)、または Failed (失敗) を報告する |
| 関連付けられた最新のビルドオブジェクトが Complete (完了) フェーズを報告する | 関連付けられた最新のビルドオブジェクトが Canceled (キャンセル)、Error (エラー)、または Failed (失敗) を報告する |
| オブジェクトは、新しいレプリカセットとデプロイメントが利用可能であると報告する。これにより、オブジェクトで定義される readiness プローブが有効になります。 | オブジェクトで、Progressing (進捗中) の状態が false であると報告される |
| オブジェクトは新規レプリケーションコントローラーおよびデプロイメントが利用可能であると報告する。これにより、オブジェクトで定義される readiness プローブが有効になります。 | オブジェクトで、Progressing (進捗中) の状態が false であると報告される |
| オブジェクトが完了 (completion) を報告する | オブジェクトが 1 つ以上の失敗が発生したことを報告する |
| オブジェクトはすべてのレプリカが Ready (準備状態) であることを報告するこれにより、オブジェクトで定義される readiness プローブが有効になります。 | 該当なし |
以下は、テンプレートサンプルを一部抜粋したものです。この例では、wait-for-ready
アノテーションが使用されています。他のサンプルは、OpenShift Container Platform クイックスタートテンプレートにあります。
kind: Template apiVersion: v1 metadata: name: my-template objects: - kind: BuildConfig apiVersion: v1 metadata: name: ... annotations: # wait-for-ready used on BuildConfig ensures that template instantiation # will fail immediately if build fails template.alpha.openshift.io/wait-for-ready: "true" spec: ... - kind: DeploymentConfig apiVersion: v1 metadata: name: ... annotations: template.alpha.openshift.io/wait-for-ready: "true" spec: ... - kind: Service apiVersion: v1 metadata: name: ... spec: ...
その他の推奨事項
- アプリケーションにスムーズに実行するのに十分なリソースが提供されるようにメモリー、CPU、およびストレージのデフォルトサイズを設定します。
-
latest
タグが複数のメジャーバージョンで使用されている場合には、イメージからこのタグを参照しないようにします。新規イメージがそのタグにプッシュされると、実行中のアプリケーションが破損してしまう可能性があります。 - 適切なテンプレートの場合、テンプレートのデプロイ後に変更する必要なしに、ビルドおよびデプロイが正常に行われます。