Manifes Aplikasi

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 dan tanda hubung dengan huruf kecil. 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 yang akan diikat secara otomatis ke aplikasi.
disk_quota quantity Jumlah disk yang seharusnya didapatkan oleh aplikasi. Default-nya adalah 1GiB.
memory quantity Jumlah RAM yang disediakan untuk aplikasi. Defaultnya adalah 1 GiB.
cpu quantity Jumlah CPU yang digunakan untuk menyediakan aplikasi. Nilai defaultnya adalah 100 m (1/10 CPU).
instances int Jumlah instance aplikasi yang akan dijalankan. Default-nya adalah 1.
routes object Daftar rute yang harus diproses oleh aplikasi. Lihat bagian Kolom Rute untuk informasi selengkapnya.
no-route boolean Jika kebijakan 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 akan menggunakan port, process, none, atau http. Default: port
health-check-http-endpoint string Endpoint yang akan ditargetkan sebagai bagian dari health check. Hanya valid 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 ditampilkan pada penampung. Jika disediakan, entri pertama dalam daftar ini digunakan sebagai port default.
metadata object Tag tambahan untuk aplikasi dan resource yang mendasarinya.

† 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

Kolom metadata

Kolom berikut valid untuk objek application.metadata:

Kolom Jenis Deskripsi
labels string -> string map Label yang akan ditambahkan ke aplikasi dan Pod aplikasi yang mendasarinya.
annotations string -> string map Anotasi yang akan ditambahkan ke aplikasi dan Pod aplikasi yang mendasarinya.

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
  # Increase default CPU from .1 to .2
  cpu: 200m
  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
  # 2 CPUs
  cpu: 2000m
  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:

  1. port (default)
  2. http
  3. process (atau none)

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.