Mengaktifkan isolasi komputasi

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.

  1. Tambahkan label (distype=ssd) di node tempat Anda ingin pod aplikasi ditempatkan.

    kubectl label nodes nodeid disktype=ssd
  2. 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.

  3. Periksa apakah label telah dikonfigurasi.

    kf configure-space get-nodeselector space-name
  4. 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:

  1. Edit config-defaults cluster Kf Anda dan tambahkan label.

    $ kubectl -n kf edit configmaps config-defaults
    
  2. 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.

  1. Tambahkan label (misalnya disktype:ssd) pada node tempat Anda ingin menetapkan pod Build.

    kubectl label nodes nodeid disktype=ssd
  2. 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"}}]'