Aplikasi Kf dapat di-deploy pada node khusus di cluster. Fitur ini diperlukan jika ada situasi di mana Anda ingin memiliki kontrol lebih besar pada node tempat App Pod berada. 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 (Kf Space).
- Jika Anda ingin menargetkan sistem operasi tertentu seperti Windows.
- Jika Anda ingin menempatkan Pod dari dua layanan berbeda yang sering berkomunikasi.
Untuk mengaktifkan isolasi komputasi, Kf menggunakan nodeSelector Kubernetes. Untuk menggunakan fitur ini, pertama-tama tambahkan label pada node atau kumpulan node tempat Anda ingin App Pod ditempatkan, lalu tambahkan label kualifikasi yang sama pada Kf Space. Semua Aplikasi yang diinstal di Ruang ini akan mendarat di node dengan label yang cocok.
Kf membuat pod Kubernetes untuk menjalankan setiap Kf Build, fitur buildNodeSelector dapat digunakan untuk mengisolasi resource komputasi agar hanya menjalankan pod Build. Salah satu kasus penggunaan adalah mengisolasi pod Build agar berjalan pada node dengan SSD, sekaligus menjalankan pod Aplikasi di node lain. Fitur BuildNodeSelectors menyediakan fleksibilitas dan pengoptimalan resource komputasi di cluster. Lihat 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
) pada node tempat Anda ingin menempatkan pod aplikasi.kubectl label nodes nodeid disktype=ssd
Tambahkan label yang sama di Kf Space. Semua Aplikasi yang di-deploy di Ruang ini akan mendarat di node yang memenuhi syarat.
kf configure-space set-nodeselector space-name disktype ssd
Anda dapat menambahkan beberapa label dengan menjalankan kembali perintah yang sama.
Periksa apakah label 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 membangun dan memaketkan Aplikasi. Misalnya, jika Anda ingin aplikasi yang di-build dengan spaceStacksV2
mendarat di
node dengan kernel Linux 4.4.1., Nilai nodeSelector
pada tumpukan menggantikan
nilai yang dikonfigurasi di Ruang.
Untuk mengonfigurasi nodeSelector
pada tumpukan:
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 kumpulan node Build
Pemilih node build hanya efektif mengganti pemilih node untuk pod Build. Pemilih node tersebut tidak memengaruhi Pod aplikasi. Misalnya, jika Anda menentukan pemilih node pada Space dan pemilih node Build di Kfsystem, Pod aplikasi akan memiliki pemilih node Space, sedangkan pod Build akan memiliki pemilih node Build dari Kfsystem; jika pemilih node hanya ditentukan di Space, pod Aplikasi dan Build akan memiliki pemilih node dari Space.
Tambahkan label (misalnya,
disktype:ssd
) pada node tempat pod Build ingin ditetapkan.kubectl label nodes nodeid disktype=ssd
Tambahkan/perbarui pemilih node Build (dalam format pasangan
key:value
) dengan memberikan patch pada 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"}}]'