Aplikasi Kf dapat di-deploy di node khusus dalam cluster. Fitur ini diperlukan jika Anda memiliki situasi saat Anda mungkin menginginkan kontrol lebih besar pada node tempat Pod Aplikasi di-deploy. Contoh:
- Jika Anda berbagi cluster yang sama untuk Aplikasi yang berbeda, tetapi menginginkan node khusus untuk Aplikasi tertentu.
- Jika Anda menginginkan node khusus untuk organisasi tertentu (Ruang Kf).
- Jika Anda ingin menargetkan sistem operasi tertentu seperti Windows.
- Jika Anda ingin menempatkan Pod secara bersama-sama dari dua layanan berbeda yang sering berkomunikasi.
Untuk mengaktifkan isolasi komputasi, Kf menggunakan nodeSelector Kubernetes. Untuk menggunakan fitur ini, tambahkan label terlebih dahulu di node atau kumpulan node tempat Anda ingin Pod Aplikasi di-deploy, lalu tambahkan label penentu yang sama di Ruang Kf. Semua Aplikasi yang diinstal di Ruang ini kemudian akan berada di node dengan label yang cocok.
Kf membuat pod Kubernetes untuk menjalankan setiap Build Kf, fitur buildNodeSelector dapat digunakan untuk mengisolasi resource komputasi agar hanya menjalankan pod Build. Salah satu kasus penggunaannya adalah mengisolasi pod Build untuk dijalankan di node dengan SSD, sambil menjalankan pod Aplikasi di node lain. Fitur BuildNodeSelectors memberikan pengoptimalan dan fleksibilitas resource komputasi di cluster. Silakan baca bab 'Mengonfigurasi BuildNodeSelectors dan kumpulan node build' di halaman ini.
Mengonfigurasi nodeSelector di cluster Kf
Secara default, isolasi komputasi dinonaktifkan. Gunakan prosedur berikut untuk mengonfigurasi label dan nodeSelector.
Tambahkan label (
distype=ssd
) di node tempat Anda ingin pod aplikasi ditempatkan.kubectl label nodes nodeid disktype=ssd
Tambahkan label yang sama di Ruang Kf. Semua Aplikasi yang di-deploy di Ruang ini akan diarahkan ke node yang memenuhi syarat.
kf configure-space set-nodeselector space-name disktype ssd
Anda dapat menambahkan beberapa label dengan menjalankan perintah yang sama lagi.
Periksa apakah label telah dikonfigurasi.
kf configure-space get-nodeselector space-name
Hapus label dari ruang.
kf configure-space unset-nodeselector space-name disktype
Mengganti nodeSelector untuk stack Kf
Deployment Aplikasi Kf dapat ditargetkan lebih lanjut berdasarkan
stack (buildpack) yang digunakan untuk mem-build dan memaketkan Aplikasi. Misalnya, jika Anda ingin aplikasi yang di-build dengan spaceStacksV2
di-deploy ke
node dengan kernel Linux 4.4.1., Nilai nodeSelector
di stack akan menggantikan
nilai yang dikonfigurasi di Ruang.
Untuk mengonfigurasi nodeSelector
di stack:
Edit
config-defaults
cluster Kf Anda dan tambahkan label.$ kubectl -n kf edit configmaps config-defaults
Tambahkan
nodeSelector
ke definisi stack...... ..... spaceStacksV2: | - name: cflinuxfs3 image: cloudfoundry/cflinuxfs3 nodeSelector: OS_KERNEL: LINUX_4.4.1 ..... .....
Mengonfigurasi BuildNodeSelectors dan node pool Build
Pemilih node build hanya efektif untuk mengganti pemilih node untuk pod Build, dan tidak memengaruhi pod Aplikasi. Misalnya, jika Anda menentukan pemilih node di pemilih node Ruang dan Build di Kfsystem, pod Aplikasi akan memiliki pemilih node Ruang, sedangkan pod Build akan memiliki pemilih node Build dari Kfsystem; jika pemilih node hanya ditentukan di Ruang, pod Aplikasi dan Build akan memiliki pemilih node dari Ruang.
Tambahkan label (misalnya
disktype:ssd
) pada node tempat Anda ingin menetapkan pod Build.kubectl label nodes nodeid disktype=ssd
Menambahkan/memperbarui pemilih node Build (dalam format pasangan
key:value
) dengan mem-patch KfSystem CR.kubectl patch kfsystem kfsystem --type='json' -p='[{'op': 'replace', 'path': '/spec/kf/config/buildNodeSelectors', 'value': {<key>:<value>}}]'
Misalnya, untuk menambahkan
disktype=ssd
sebagai pemilih node Build:kubectl patch kfsystem kfsystem --type='json' -p='[{'op': 'replace', 'path': '/spec/kf/config/buildNodeSelectors', 'value': {"disktype":"ssd"}}]'