バージョン 2.3

アプリ ランタイム

アプリ ランタイムとは、アプリが実行される環境です。

ビルドパック アプリ コンテナ イメージ アプリ
システム ライブラリ スタックが提供 コンテナで提供
ネットワーク アクセス Envoy サイドカーによる完全アクセス Envoy サイドカーによる完全アクセス
ファイル システム 一時ストレージ 一時ストレージ
言語ランタイム スタックまたはビルドパックにより提供される コンテナに組み込み
ユーザー スタックにより指定される コンテナで指定される
分離メカニズム Kubernetes ポッド Kubernetes ポッド
DNS Kubernetes が提供 Kubernetes が提供

環境変数

環境変数は、Kubernetes によってランタイム時にアプリに挿入されます。変数は次の順序で追加されます。ここで、後の値は同じ名前を持つ以前の値をオーバーライドします。

  1. スペース(管理者が設定)
  2. アプリ(開発者が設定)
  3. システム(Kf が設定)

Kf では、次のシステム環境変数が用意されています。

変数 目的
CF_INSTANCE_ADDR アプリ インスタンスのクラスタ可視 IP:PORT。
CF_INSTANCE_GUID アプリ インスタンスの UUID。
INSTANCE_GUID CF_INSTANCE_GUID の別名。
CF_INSTANCE_INDEX App インスタンスのインデックス番号。常に 0 です。
INSTANCE_INDEX CF_INSTANCE_INDEX の別名。
CF_INSTANCE_IP アプリ インスタンスのクラスタ可視 IP。
CF_INSTANCE_INTERNAL_IP CF_INSTANCE_IP の別名。
VCAP_APP_HOST CF_INSTANCE_IP の別名。
CF_INSTANCE_PORT アプリ インスタンスのクラスタ可視ポート。Kf では、PORT と同じです。
DATABASE_URL VCAP_SERVICES 認証情報で最初に見つかった URI。
LANG Buildpack に必要。スクリプトのロード順序の一貫性を確保します。
MEMORY_LIMIT アプリが使用できる最大メモリ量(MB)。
PORT アプリがリクエストをリッスンするポート。
VCAP_APP_PORT PORT の別名。
VCAP_APPLICATION アプリのメタデータを含む JSON 構造体。
VCAP_SERVICES バインドされたサービスを指定する JSON 構造体。

バインドされたサービスのサービス認証情報は、VCAP_SERVICES 環境変数を介してアプリに送り込まれます。環境変数は、次の構造の有効な JSON オブジェクトです。

VCAPServices

キーが Service ラベルで、値がVCAPService の配列の JSON オブジェクト。配列は、そのラベルを持つすべてのバインドされたサービスを表します。ユーザー指定のサービスは、user-provided ラベルの下に表示されます。

{
  "mysql": [...],
  "postgresql": [...],
  "user-provided": [...]
}

VCAPService

この型は、単一のバインドされたサービス インスタンスを表します。

{
  "binding_name": string,
  "instance_name": string,
  "name": string,
  "label": string,
  "tags": string[],
  "plan": string,
  "credentials": object
}

フィールド

項目 説明
binding_name string ユーザーがサービス バインディングに割り当てた名前。
instance_name string ユーザーがサービス インスタンスに割り当てた名前。
name string 存在する場合は binding_name。存在しない場合は instance_name
label string 提供サービスの名前。
tags string[] アプリがサービス インスタンスを識別するために使用できる文字列の配列。
plan string[] サービス インスタンスの作成時に選択されたサービスプラン。
credentials object サービス インスタンスにアクセスするために必要なサービス固有の認証情報。

VCAP_APPLICATION

VCAP_APPLICATION 環境変数は、アプリに関するメタデータを含む JSON オブジェクトです。

{
  "application_id": "12345",
  "application_name": "my-app",
  "application_uris": ["my-app.example.com"],
  "limits": {
    "disk": 1024,
    "mem": 256
  },
  "name": "my-app",
  "process_id": "12345",
  "process_type": "web",
  "space_name": "my-ns",
  "uris": ["my-app.example.com"]
}

フィールド

項目 説明
application_id string アプリを識別する GUID。
application_name string push されたときにアプリに割り当てられた名前。
application_uris string[] アプリに割り当てられた URI。
limits object ディスク容量とアプリに許可されるメモリの上限。メモリとディスクの上限は、アプリがデプロイされたときに、コマンドラインまたはアプリ マニフェストで指定します。ディスクとメモリの上限は整数で表され、単位は MB です。
name string application_name と同一。
process_id string プロセスを識別する UID。実行中のアプリコンテナにのみ存在します。
process_type string プロセスのタイプ。実行中のアプリコンテナにのみ存在します。
space_name string アプリがデプロイされているスペースの、人が読める形式の名前。
uris string[] application_uris と同一。

欠落している項目

現在、Kf では、Cloud Foundry にある VCAP_APPLICATION の一部の項目はサポートされていません。

CF 固有の非推奨項目(cf_apihostusers)を除き、Kf でサポートされていない項目は次のとおりです。

  • application_versionversion と同一)
  • organization_id
  • organization_name
  • space_id
  • startstarted_at と同一)
  • started_at_timestampstate_timestamp と同一)