Manifes aplikasi menyediakan cara bagi developer untuk merekam lingkungan eksekusi Aplikasi mereka dengan cara deklaratif. Hal ini memungkinkan Aplikasi di-deploy secara konsisten dan dapat direproduksi.
Format
Manifes adalah file YAML di direktori utama Aplikasi. Manifes harus diberi nama manifest.yml
atau manifest.yaml
.
Manifes Aplikasi Kf diizinkan untuk memiliki satu elemen tingkat teratas: applications
.
Elemen applications
dapat berisi satu atau beberapa entri aplikasi.
Kolom aplikasi
Kolom berikut valid untuk objek di bagian applications
:
Kolom | Jenis | Deskripsi |
---|---|---|
name |
string |
Nama aplikasi. Nama aplikasi harus berupa karakter alfanumerik huruf kecil dan tanda hubung. Nama ini tidak boleh diawali dengan tanda hubung. |
path |
string |
Jalur ke sumber aplikasi. Secara default ditetapkan ke direktori manifes. |
buildpacks |
string[] |
Daftar buildpack yang akan diterapkan ke aplikasi. |
stack |
string |
Image dasar yang akan digunakan untuk aplikasi yang dibuat dengan buildpack. |
docker |
object |
Objek docker. Lihat bagian Kolom Docker untuk mengetahui informasi selengkapnya. |
env |
map |
Pasangan nilai kunci/nilai yang akan digunakan sebagai variabel lingkungan untuk aplikasi dan build. |
services |
string[] |
Daftar nama instance layanan yang akan otomatis terikat ke aplikasi. |
disk_quota |
quantity |
Jumlah disk yang harus diperoleh aplikasi. Default-nya adalah 1 GiB. |
memory |
quantity |
Jumlah RAM untuk menyediakan aplikasi. Secara default, 1 GiB. |
cpu † |
quantity |
Jumlah CPU untuk menyediakan aplikasi. Setelan defaultnya adalah 0,1 (1/10 CPU). |
instances |
int |
Jumlah instance aplikasi yang akan dijalankan. Default-nya adalah 1. |
routes |
object |
Daftar rute yang harus diproses aplikasi. Lihat bagian Kolom Rute untuk mengetahui informasi selengkapnya. |
no-route |
boolean |
Jika disetel ke benar (true), aplikasi tidak akan dapat dirutekan. |
random-route |
boolean |
Jika disetel ke benar (true), aplikasi akan diberi rute acak. |
timeout |
int |
Jumlah detik untuk menunggu aplikasi menjadi responsif. |
health-check-type |
string |
Jenis pemeriksaan kesehatan yang akan menggunakan port , process , none , atau http . Default: port |
health-check-http-endpoint |
string |
Endpoint yang akan ditargetkan sebagai bagian dari health check. Hanya berlaku jika health-check-type adalah http . |
command |
string |
Perintah yang memulai aplikasi. Jika disediakan, perintah ini akan diteruskan ke titik entri penampung. |
entrypoint † |
string |
Mengganti titik entri penampung aplikasi. |
args † |
string[] |
Mengganti argumen penampung aplikasi. |
ports † |
object |
Daftar port yang akan diekspos di penampung. Jika diberikan, entri pertama dalam daftar ini akan digunakan sebagai port default. |
† Unik untuk Kf
Kolom Docker
Kolom berikut valid untuk objek application.docker
:
Kolom | Jenis | Deskripsi |
---|---|---|
image |
string |
Image docker yang akan digunakan. |
Kolom rute
Kolom berikut valid untuk objek application.routes
:
Kolom | Jenis | Deskripsi |
---|---|---|
route |
string |
Rute ke aplikasi termasuk nama host, domain, dan jalur. |
appPort |
int |
(Opsional) Port kustom di Aplikasi tempat rute akan mengirim traffic. |
Kolom port
Kolom berikut valid untuk objek application.ports
:
Kolom | Jenis | Deskripsi |
---|---|---|
port |
int |
Port yang akan diekspos di penampung Aplikasi. |
protocol |
string |
Protokol port yang akan diekspos. Harus berupa tcp , http , atau http2 . Default: tcp |
Contoh
Aplikasi Minimal
Ini adalah manifes dasar yang akan mem-build Aplikasi dengan mendeteksi buildpack secara otomatis berdasarkan sumber yang diupload, dan men-deploy satu instance-nya.
---
applications:
- name: my-minimal-application
Aplikasi Sederhana
Ini adalah manifes lengkap untuk Aplikasi Java yang lebih tradisional.
---
applications:
- name: account-manager
# only upload src/ on push
path: src
# use the Java buildpack
buildpacks:
- java
env:
# manually configure the buildpack's Java version
BP_JAVA_VERSION: 8
ENVIRONMENT: PRODUCTION
# use less disk and memory than default
disk_quota: 512M
memory: 512M
# bump up the CPU
cpu: 0.2
instances: 3
# make the app listen on three routes
routes:
- route: accounts.mycompany.com
- route: accounts.datacenter.mycompany.internal
- route: mycompany.com/accounts
# set up a longer timeout and custom endpoint to validate
# when the app comes up
timeout: 300
health-check-type: http
health-check-http-endpoint: /healthz
# attach two services by name
services:
- customer-database
- web-cache
Aplikasi Docker
Kf dapat men-deploy container Docker serta Aplikasi yang di-deploy manifes.
Aplikasi Docker ini HARUS memproses variabel lingkungan PORT
.
---
applications:
- name: white-label-app
# use a pre-built docker image (must listen on $PORT)
docker:
image: gcr.io/my-company/white-label-app:123
env:
# add additional environment variables
ENVIRONMENT: PRODUCTION
disk_quota: 1G
memory: 1G
cpu: 2
instances: 1
routes:
- route: white-label-app.mycompany.com
Aplikasi dengan beberapa port
Aplikasi ini memiliki beberapa port untuk mengekspos konsol admin, situs, dan server SMTP.
---
applications:
- name: b2b-server
ports:
- port: 8080
protocol: http
- port: 9090
protocol: http
- port: 2525
protocol: tcp
routes:
- route: b2b-admin.mycompany.com
appPort: 9090
- route: b2b.mycompany.com
# gets the default (first) port
Jenis health check
Kf mendukung tiga jenis pemeriksaan kesehatan yang berbeda:
port
(default)http
process
(ataunone
)
port
dan http
menetapkan pemeriksaan kesiapan dan keaktifan Kubernetes yang memastikan aplikasi siap sebelum mengirim traffic ke aplikasi tersebut.
Health check port
akan memastikan port yang ditemukan di $PORT
sedang
diproses. Di balik layar, Kf menggunakan probe TCP.
Health check http
akan menggunakan nilai yang dikonfigurasi di
health-check-http-endpoint
untuk memeriksa kondisi aplikasi. Di balik layar,
Kf menggunakan probe HTTP.
Pemeriksaan kesehatan process
hanya memeriksa apakah proses yang berjalan di
penampung masih aktif. Perintah ini TIDAK menetapkan pemeriksaan kesiapan atau keaktifan Kubernetes.
Perbedaan yang diketahui
Berikut adalah perbedaan yang diketahui antara manifes Kf dan manifes CF:
- Kf tidak mendukung kolom manifes CF yang tidak digunakan lagi. Hal ini mencakup semua kolom di tingkat root manifes (selain aplikasi) dan kolom pemilihan rute.
- Kf tidak memiliki dukungan untuk kolom manifes v2 berikut:
docker.username
- Kf tidak mendukung port deteksi otomatis untuk penampung Docker.