Saya mencoba menjadwalkan pod gey di node master. Berhasil membersihkan simpul

kubectl taint node mymasternode node-role.kubernetes.io/master:NoSchedule-

node/mymasternode tidak ternoda

Tapi kemudian mengubah replika menjadi 4 di deploy.yaml dan menerapkannya semua pod dijadwalkan pada node pekerja yang sudah menjadi pekerja.

Apakah ada langkah tambahan yang diperlukan untuk menjadwalkan pod di node master juga?

0
GCloony 11 Mei 2021, 15:44

1 menjawab

Jawaban Terbaik

Untuk menjadwalkan pod pada node Control plane yang menerapkan taint (yang akan dilakukan sebagian besar distribusi Kubernetes), Anda perlu menambahkan toleransi ke manifes Anda, seperti yang dijelaskan dalam dokumentasinya, daripada mengotori node bidang kontrol. Menghapus node control plane bisa berbahaya karena jika Anda kehabisan sumber daya pada node tersebut, operasi cluster Anda kemungkinan akan terganggu.

Sesuatu seperti berikut ini seharusnya berfungsi

      tolerations:
      - key: node-role.kubernetes.io/master
        effect: NoSchedule

Jika Anda ingin menjadwalkan pod ke setiap node, biasanya pendekatannya adalah membuat daemonset dengan toleransi yang diterapkan.

Jika Anda perlu memiliki pod yang dijadwalkan ke node bidang kontrol, tanpa menggunakan daemonset, dimungkinkan untuk menggabungkan toleransi dengan informasi penjadwalan untuk membuatnya ditugaskan ke node tertentu. Pendekatan paling sederhana untuk ini adalah dengan menentukan target nama node< /a> dalam manifes.

Ini bukan pendekatan yang sangat fleksibel, jadi misalnya jika Anda ingin menetapkan pod ke node bidang kontrol apa pun, Anda dapat menerapkan label ke node tersebut dan menggunakan pemilih node dikombinasikan dengan toleransi untuk menetapkan beban kerja di sana.

4
Rory McCune 12 Mei 2021, 20:15