アプリケーションのデプロイ

アプリを(kf push 経由で)Kf に push するときには、Kf がソースコードを取得してトラフィックを処理するために使用するライフサイクルが 3 つあります。

  1. ソースコードのアップロード
  2. 構築
  3. 実行

ソースコードのアップロード

kf push 時に最初に行う操作は、Kf CLI(kf)がディレクトリ(current または --path/-p)をコンテナにパッケージ化し、スペース用に構成されたコンテナ レジストリに公開することです。これはソースコンテナと呼ばれます。次に、Kf CLI によって、アプリ マニフェストと push フラグからのソースイメージと構成の両方を含む Kubernetes の App タイプが作成されます。

push 中のファイルの無視

多くの場合、kf push の間に特定のファイルをアップロードをすることは望ましくありません(つまり、それらを「無視」します)。そのような場合に、.kfignore(または .cfignore)ファイルを使用できます。.gitignore ファイルと同様に、このファイルは、どのファイルをソースコード コンテナに含めないかを Kf CLI に指示します。

.kfignore ファイルを作成するには、アプリのベース ディレクトリ(マニフェスト ファイルを保存する場所と同様)に .kfignore という名前のテキスト ファイルを作成します。次に、公開したくないファイルやディレクトリを、改行で区切ったリストで入力します。例:

bin
.idea

これにより、bin ディレクトリと .idea ディレクトリからは何も含めないことを Kf CLI に伝えます。

Kf は、gitignore スタイル構文をサポートしています。

構築

ビルド ライフサイクルは、Tekton TaskRun によって処理されます。push 中に指定したフラグに応じて、特定の Tekton Task を選択します。現在、Kf には、次の Tekton Task があります。

  • buildpackv2
  • buildpackv3
  • kaniko

Kf は各 TaskRun をビルドとしてトラックします。ビルドが成功すると、結果のコンテナ イメージが実行ライフサイクルを介してデプロイされます(下記を参照)。

詳細については、Runtime のビルドをご覧ください。

実行

実行ライフサイクルは、コンテナ イメージの取得と Kubernetes Deployment の作成を担当します。

以下も作成されます。

詳細については、Runtime のビルドをご覧ください。

push タイムアウト

Kf では、アプリを push する間、タイムアウトするように CLI に指示する環境変数の設定がサポートされています。設定されると、変数 KF_STARTUP_TIMEOUT または CF_STARTUP_TIMEOUT が Go 言語スタイルの期間として解析されます(例: 15m1h)。値が設定されていない場合、push タイムアウトはデフォルトで 15 分に設定されます。