Runtime Aplikasi

Runtime aplikasi adalah lingkungan tempat aplikasi dijalankan.

Aplikasi Buildpack Aplikasi Image Container
Library sistem Disediakan oleh Tumpukan Disediakan di container
Akses jaringan Akses penuh melalui bantuan Envoy Akses penuh melalui bantuan Envoy
Sistem file Penyimpanan efemeral Penyimpanan efemeral
Runtime bahasa Disediakan oleh Stack atau Buildpack Dibangun ke dalam container
Pengguna Ditentukan oleh Tumpukan Ditentukan pada penampung
Mekanisme isolasi Pod Kubernetes Pod Kubernetes
DNS Disediakan oleh Kubernetes Disediakan oleh Kubernetes

Variabel lingkungan

Variabel lingkungan dimasukkan ke dalam aplikasi saat runtime oleh Kubernetes. Variabel ditambahkan berdasarkan urutan berikut, dengan nilai berikutnya menggantikan nilai sebelumnya dengan nama yang sama:

  1. Ruang (ditetapkan oleh administrator)
  2. Aplikasi (ditetapkan oleh developer)
  3. Sistem (ditetapkan oleh Kf)

Kf menyediakan variabel lingkungan sistem berikut:

Variabel Tujuan
CF_INSTANCE_ADDR IP:PORT yang terlihat oleh cluster dari instance Aplikasi.
CF_INSTANCE_GUID UUID instance Aplikasi.
INSTANCE_GUID Alias dari CF_INSTANCE_GUID.
CF_INSTANCE_INDEX Nomor indeks instance Aplikasi, ini SELALU 0.
INSTANCE_INDEX Alias dari CF_INSTANCE_INDEX.
CF_INSTANCE_IP IP yang terlihat pada cluster dari instance Aplikasi.
CF_INSTANCE_INTERNAL_IP Alias dari CF_INSTANCE_IP
VCAP_APP_HOST Alias dari CF_INSTANCE_IP
CF_INSTANCE_PORT Port instance Aplikasi yang terlihat oleh cluster. Di Kf, ini sama dengan PORT.
DATABASE_URL URI pertama ditemukan dalam kredensial VCAP_SERVICES.
LANG Diperlukan oleh Buildpacks untuk memastikan urutan pemuatan skrip yang konsisten.
MEMORY_LIMIT Jumlah maksimum memori dalam MB yang dapat digunakan oleh Aplikasi.
PORT Port tempat Aplikasi harus memproses permintaan.
VCAP_APP_PORT Alias dari PORT.
VCAP_APPLICATION Struktur JSON yang berisi Metadata aplikasi.
VCAP_SERVICES Struktur JSON yang menentukan layanan terikat.

Kredensial layanan dari layanan terikat dimasukkan ke dalam Aplikasi melalui variabel lingkungan VCAP_SERVICES. Variabel adalah objek JSON yang valid dengan struktur berikut.

VCAPServices

Objek JSON dengan kuncinya adalah label Layanan dan nilainya adalah array dari VCAPService. Array mewakili setiap layanan terikat dengan label tersebut. Layanan yang disediakan pengguna ditempatkan di bawah label user-provided.

Contoh

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

VCAPService

Jenis ini mewakili satu instance layanan terikat.

Contoh

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

Kolom

Kolom Jenis Deskripsi
binding_name string Nama yang ditetapkan ke service binding oleh pengguna.
instance_name string Nama yang ditetapkan ke instance layanan oleh pengguna.
name string binding_name jika ada; jika tidak, instance_name.
label string Nama penawaran layanan.
tags string[] Array string yang dapat digunakan aplikasi untuk mengidentifikasi instance layanan.
plan string[] Paket layanan dipilih saat instance layanan dibuat.
credentials object Kredensial khusus layanan yang diperlukan untuk mengakses instance layanan.

VCAP_APPLICATION

Variabel lingkungan VCAP_APPLICATION adalah objek JSON yang berisi metadata tentang Aplikasi.

Contoh

{
  "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"]
}

Kolom

Kolom Jenis Deskripsi
application_id string GUID yang mengidentifikasi Aplikasi.
application_name string Nama yang ditetapkan ke Aplikasi saat dikirim.
application_uris string[] URI yang ditetapkan untuk Aplikasi.
limits object Batas kapasitas disk dan memori yang diizinkan untuk Aplikasi. Batas ruang disk dan memori diberikan saat Aplikasi di-deploy, baik pada command line atau dalam manifes Aplikasi. Batas disk dan memori direpresentasikan sebagai bilangan bulat, dengan asumsi satuan MB.
name string Sama dengan application_name.
process_id string UID yang mengidentifikasi proses. Hanya ada di container Aplikasi yang berjalan.
process_type string Jenis proses. Hanya ada di container Aplikasi yang berjalan.
space_name string Nama Ruang yang dapat dibaca manusia tempat Aplikasi di-deploy.
uris string[] Sama dengan application_uris.

Kolom Tidak Ada

Beberapa kolom di VCAP_APPLICATION yang ada di Cloud Foundry saat ini tidak didukung di Kf.

Selain kolom khusus CF dan yang tidak digunakan lagi (cf_api, host, users), kolom yang tidak didukung di Kf adalah:

  • application_version (identik dengan version)
  • organization_id
  • organization_name
  • space_id
  • start (identik dengan started_at)
  • started_at_timestamp (identik dengan state_timestamp)