Manifes aplikasi menyediakan cara bagi developer untuk merekam lingkungan eksekusi Aplikasi mereka dengan cara yang deklaratif. Solusi 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 memiliki satu elemen level teratas: applications
.
Elemen applications
dapat berisi satu atau beberapa entri aplikasi.
Kolom aplikasi
Kolom berikut valid untuk objek di bawah applications
:
Kolom | Jenis | Deskripsi |
---|---|---|
name |
string |
Nama aplikasi. Nama aplikasi harus berupa karakter alfanumerik huruf kecil dan tanda pisah. Nama ini tidak boleh diawali dengan tanda hubung. |
path |
string |
Jalur ke sumber aplikasi. Nilai defaultnya adalah 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 informasi selengkapnya. |
env |
map |
Key-value pair untuk digunakan sebagai variabel lingkungan untuk aplikasi dan build. |
services |
string[] |
Daftar nama instance layanan untuk diikat secara otomatis ke aplikasi. |
disk_quota |
quantity |
Jumlah disk yang seharusnya didapatkan aplikasi. Default-nya adalah 1GiB. |
memory |
quantity |
Jumlah RAM yang disediakan untuk aplikasi. Defaultnya adalah 1GiB. |
cpu † |
quantity |
Jumlah CPU yang akan disediakan ke aplikasi. Nilai defaultnya adalah 0,1 (1/10 dari CPU). |
instances |
int |
Jumlah instance aplikasi yang akan dijalankan. Default-nya adalah 1. |
routes |
object |
Daftar rute yang harus dipantau oleh aplikasi. Lihat bagian Kolom Rute untuk 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 health check yang 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 container. |
entrypoint † |
string |
Mengganti titik entri penampung aplikasi. |
args † |
string[] |
Mengganti argumen penampung aplikasi. |
ports † |
object |
Daftar port yang akan diekspos pada container. Jika disediakan, entri pertama dalam daftar ini 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 yang akan dikirimi traffic. |
Kolom port
Kolom berikut valid untuk objek application.ports
:
Kolom | Jenis | Deskripsi |
---|---|---|
port |
int |
Port yang akan ditampilkan di penampung Aplikasi. |
protocol |
string |
Protokol port yang akan diekspos. Harus tcp , http , atau http2 . Default: tcp |
Contoh
Aplikasi Minimal
Ini adalah manifes dasar yang akan mem-build Aplikasi dengan mendeteksi otomatis buildpack 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 manifes Aplikasi yang di-deploy.
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 menampilkan 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 health check yang berbeda:
port
(default)http
process
(ataunone
)
port
dan http
menetapkan pemeriksaan kesiapan dan keaktifan Kubernetes yang memastikan aplikasi sudah siap sebelum mengirim traffic ke aplikasi.
Health check port
akan memastikan port yang ditemukan di $PORT
sedang
diproses. Di balik layar, Kf menggunakan
sebuah probe TCP.
Health check http
akan menggunakan nilai yang dikonfigurasi di
health-check-http-endpoint
untuk memeriksa respons aplikasi. Di balik layar, Kf
menggunakan probe HTTP.
Health check process
hanya memeriksa untuk mengetahui apakah proses yang berjalan pada
penampung masih aktif. Parameter 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. Ini mencakup semua kolom di tingkat root manifes (selain aplikasi) dan kolom perutean.
- Kf tidak memiliki dukungan untuk kolom manifes v2 berikut:
docker.username
- Kf tidak mendukung port deteksi otomatis untuk container Docker.