Dependensi dan Arsitektur Kf

Kf memerlukan Kubernetes dan beberapa project OSS lainnya agar dapat berjalan. Beberapa dependensi dipenuhi dengan layanan terkelola Google. Misalnya, Google Kubernetes Engine (GKE) yang menyediakan Kubernetes.

Dependensi

Komponen Kf

Kf menginstal beberapa resource kustom dan pengontrol Kubernetes miliknya sendiri. Resource kustom berfungsi secara efektif sebagai Kf API dan digunakan oleh CLI kf untuk berinteraksi dengan sistem. Pengontrol menggunakan CRD Kf untuk mengorkestrasi komponen lain dalam sistem.

CRD Kf

Anda dapat melihat CRD yang diinstal dan digunakan oleh Kf dengan perintah berikut:

kubectl api-resources --api-group=kf.dev

Output dari perintah tersebut adalah:

NAME                      SHORTNAMES   APIGROUP   NAMESPACED   KIND
apps                                   kf.dev     true         App
builds                                 kf.dev     true         Build
clusterservicebrokers                  kf.dev     false        ClusterServiceBroker
routes                                 kf.dev     true         Route
servicebrokers                         kf.dev     true         ServiceBroker
serviceinstancebindings                kf.dev     true         ServiceInstanceBinding
serviceinstances                       kf.dev     true         ServiceInstance
spaces                                 kf.dev     false        Space

Aplikasi

Aplikasi merepresentasikan aplikasi dua belas faktor yang di-deploy ke Kubernetes. Hal ini mencakup kode sumber, konfigurasi, dan status aplikasi saat ini. Aplikasi bertanggung jawab untuk merekonsiliasi:

  • Build Kf
  • Rute Kf
  • Deployment Kubernetes
  • Layanan Kubernetes
  • Akun Layanan Kubernetes
  • Secret Kubernetes

Anda dapat mencantumkan Aplikasi menggunakan Kf atau kubectl:

kf apps
kubectl get apps -n space-name

Build

Build menggabungkan kode sumber dan konfigurasi build untuk Aplikasi. Alat ini menyediakan TaskRun Tekton dengan langkah-langkah yang benar untuk menjalankan build Buildpack V2, Buildpack V3, atau Dockerfile.

Anda dapat mencantumkan Build menggunakan Kf atau kubectl:

kf builds
kubectl get builds -n space-name

ClusterServiceBrokers

ClusterServiceBrokers menyimpan informasi koneksi yang diperlukan untuk memperluas Kf dengan broker layanan. Mereka bertanggung jawab untuk mengambil katalog layanan yang disediakan oleh broker dan menampilkannya dalam output kf marketplace.

Anda dapat mencantumkan ClusterServiceBrokers menggunakan kubectl:

kubectl get clusterservicebrokers

Rute

Rute adalah struktur tingkat tinggi yang berisi aturan perutean HTTP. Mereka bertanggung jawab untuk merekonsiliasi Istio VirtualServices.

Anda dapat membuat daftar Rute menggunakan Kf atau kubectl:

kf routes
kubectl get routes -n space-name

ServiceBrokers

ServiceBrokers menyimpan informasi koneksi yang diperlukan untuk memperluas Kf dengan broker layanan. Mereka bertanggung jawab untuk mengambil katalog layanan yang disediakan oleh broker dan menampilkannya dalam output kf marketplace.

Anda dapat mencantumkan ServiceBroker menggunakan kubectl:

kubectl get servicebrokers -n space-name

ServiceInstanceBinding

ServiceInstanceBindings menyimpan parameter untuk membuat binding pada broker layanan dan kredensial yang ditampilkan broker untuk binding. Mereka bertanggung jawab memanggil API bind pada broker untuk mengikat layanan.

Anda dapat mencantumkan ServiceInstanceBinding menggunakan Kf atau kubectl:

kf bindings
kubectl get serviceinstancebindings -n space-name

ServiceInstance

ServiceInstances menyimpan parameter untuk membuat layanan pada broker layanan. Mereka bertanggung jawab memanggil API penyediaan pada broker untuk membuat layanan.

Anda dapat mencantumkan ServiceInstances menggunakan Kf atau kubectl:

kf services
kubectl get serviceinstances -n space-name

Ruang

Ruang menyimpan informasi konfigurasi yang mirip dengan ruang dan organisasi Cloud Foundry. Mereka bertanggung jawab untuk:

  • Membuat Namespace Kubernetes tempat resource Kf lain disediakan.
  • Membuat NetworkPolicy Kubernetes untuk menerapkan kebijakan koneksi jaringan.
  • Menyimpan konfigurasi dan kebijakan untuk Build, Aplikasi, dan Rute.

Anda dapat mencantumkan Ruang menggunakan Kf atau kubectl:

kf spaces
kubectl get spaces

Akun Layanan

Kf memerlukan cluster Kubernetes tempatnya berjalan agar memiliki akun layanan. Akun layanan digunakan oleh Tekton untuk mengautentikasi ke registry container untuk menarik dan mengirim image. Jika Anda menginstal Kf dengan template CloudBuild, tindakan ini akan membuat Identity and Access Management Service Account dengan izin roles/storage.admin.

Library Pihak Ketiga

Kode sumber dan lisensi library pihak ketiga dapat ditemukan di direktori /third_party dari image container Kf mana pun.

Anda juga dapat menjalankan kf third-party-licenses untuk melihat lisensi pihak ketiga untuk versi Kf CLI yang telah Anda download.