アプリ ランタイムとは、アプリが実行される環境です。
| Buildpack アプリ | コンテナ イメージ アプリ | |
|---|---|---|
| システム ライブラリ | スタックにより提供 | コンテナで提供 | 
| ネットワーク アクセス | Envoy サイドカーによる完全アクセス権 | Envoy サイドカーによる完全アクセス権 | 
| ファイル システム | エフェメラル ストレージ | エフェメラル ストレージ | 
| 言語ランタイム | スタックまたは Buildpack により提供 | コンテナに組み込み | 
| ユーザー | スタックにより指定 | コンテナで指定 | 
| 分離メカニズム | Kubernetes Pod | Kubernetes Pod | 
| DNS | Kubernetes により提供 | Kubernetes により提供 | 
環境変数
環境変数は、Kubernetes によってランタイム時にアプリに挿入されます。変数は次の順序で追加されます。ここで、後の値は同じ名前を持つ以前の値をオーバーライドします。
- スペース(管理者が設定)
 - アプリ(デベロッパーが設定)
 - システム(Kf が設定)
 
Kf には、次のシステム環境変数が用意されています。
| 変数 | 目的 | 
|---|---|
CF_INSTANCE_ADDR | 
アプリ インスタンスのクラスタ可視 IP:ポート。 | 
CF_INSTANCE_GUID | 
アプリ インスタンスの UUID。 | 
INSTANCE_GUID | 
CF_INSTANCE_GUID の別名。 | 
CF_INSTANCE_INDEX | 
アプリ インスタンスのインデックス番号。これは常に 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 | 
アプリがデプロイされている Space の、人が読める形式の名前。 | 
uris | 
string[] | 
application_uris と同一。 | 
欠落しているフィールド
現在、Kf では、Cloud Foundry にある VCAP_APPLICATION の一部のフィールドはサポートされていません。
CF 固有の非推奨フィールド(cf_api、host、users)を除き、Kf でサポートされていないフィールドは次のとおりです。
application_version(versionと同一)organization_idorganization_namespace_idstart(started_atと同一)started_at_timestamp(state_timestampと同一)