アプリ ランタイムとは、アプリが実行される環境です。
Buildpack アプリ | コンテナ イメージ アプリ | |
---|---|---|
システム ライブラリ | スタックにより提供 | コンテナで提供 |
ネットワーク アクセス | Envoy サイドカーによる完全アクセス権 | Envoy サイドカーによる完全アクセス権 |
ファイル システム | エフェメラル ストレージ | エフェメラル ストレージ |
言語ランタイム | スタックまたは Buildpack により提供 | コンテナに組み込み |
ユーザー | スタックにより指定 | コンテナで指定 |
分離メカニズム | Kubernetes Pod | Kubernetes Pod |
DNS | Kubernetes による提供 | Kubernetes による提供 |
環境変数
環境変数は、Kubernetes によってランタイム時にアプリに挿入されます。変数は次の順序で追加されます。ここで、後の値は同じ名前を持つ以前の値をオーバーライドします。
- スペース(管理者が設定)
- アプリ(デベロッパーが設定)
- システム(Kf が設定)
Kf には、次のシステム環境変数が用意されています。
変数 | 目的 |
---|---|
CF_INSTANCE_ADDR |
アプリ インスタンスのクラスタ可視 IP:PORT。 |
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_id
organization_name
space_id
start
(started_at
と同一)started_at_timestamp
(state_timestamp
と同一)