Runtime Aplikasi

Runtime aplikasi adalah lingkungan tempat aplikasi dijalankan.

Aplikasi Buildpack Aplikasi Image Container
Library sistem Disediakan oleh Stack Disediakan dalam penampung
Akses jaringan Akses penuh melalui sidecar Envoy Akses penuh melalui sidecar Envoy
Sistem file Penyimpanan efemeral Penyimpanan efemeral
Runtime bahasa Disediakan oleh Stack atau Buildpack Di-build ke dalam penampung
Pengguna Ditentukan oleh Stack Ditentukan di 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 instance Aplikasi yang terlihat cluster.
CF_INSTANCE_GUID UUID instance Aplikasi.
INSTANCE_GUID Alias dari CF_INSTANCE_GUID.
CF_INSTANCE_INDEX Nomor indeks instance Aplikasi, ini AKAN SELALU 0.
INSTANCE_INDEX Alias dari CF_INSTANCE_INDEX.
CF_INSTANCE_IP IP instance Aplikasi yang terlihat cluster.
CF_INSTANCE_INTERNAL_IP Alias CF_INSTANCE_IP
VCAP_APP_HOST Alias CF_INSTANCE_IP
CF_INSTANCE_PORT Port instance Aplikasi yang terlihat cluster. Di Kf, ini sama dengan PORT.
DATABASE_URL URI pertama yang ditemukan dalam kredensial VCAP_SERVICES.
LANG Diperlukan oleh Buildpack untuk memastikan urutan pemuatan skrip yang konsisten.
MEMORY_LIMIT Jumlah maksimum memori dalam MB yang dapat digunakan Aplikasi.
PORT Port yang akan diproses oleh Aplikasi untuk 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 ini adalah objek JSON yang valid dengan struktur berikut.

VCAPServices

Objek JSON dengan kunci berupa Label layanan dan nilainya adalah array 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 binding layanan 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 yang dipilih saat instance layanan dibuat.
credentials object Kredensial khusus layanan yang diperlukan untuk mengakses instance layanan.

VCAP_APPLICATION

Variabel lingkunganVCAP_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 di-push.
application_uris string[] URI yang ditetapkan ke Aplikasi.
limits object Batas kapasitas disk dan memori yang diizinkan untuk Aplikasi. Batas memori dan kapasitas disk disediakan saat Aplikasi di-deploy, baik di command line maupun di 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 penampung Aplikasi yang berjalan.
process_type string Jenis proses. Hanya ada di penampung 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 kolom 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)