Dokumen ini menjelaskan manfaat dan batasan isolasi node di cluster Kubernetes Google Distributed Cloud (GDC) yang terisolasi. Isolasi node dengan kumpulan node khusus meningkatkan keamanan cluster dengan memberi Anda kontrol yang tepat atas tempat pod tertentu berjalan dalam cluster.
Isolasi workload memberikan beberapa manfaat, seperti:
- Mengurangi risiko serangan eskalasi hak istimewa di cluster Kubernetes Anda.
- Kontrol yang lebih besar atas pod yang memerlukan resource tambahan.
Untuk kasus ini, pertimbangkan untuk mengisolasi workload container Anda di kumpulan node khusus untuk kontrol dan pengoptimalan yang lebih besar. Pastikan untuk mempertimbangkan batasan sehingga Anda dapat membuat keputusan yang tepat terkait biaya pemeliharaan tambahan yang diperlukan isolasi node.
Dokumen ini ditujukan untuk audiens seperti administrator IT dalam grup administrator platform yang bertanggung jawab mengelola kumpulan node cluster Kubernetes, dan developer aplikasi dalam grup operator aplikasi yang bertanggung jawab mengelola workload container. Untuk mengetahui informasi selengkapnya, lihat Audiens untuk dokumentasi GDC dengan air gap.
Mengapa saya harus mengisolasi workload?
Meskipun tidak wajib, mendedikasikan kumpulan node ke workload container tertentu dapat mencegah potensi masalah. Namun, pendekatan ini memerlukan lebih banyak pengelolaan, dan sering kali tidak penting.
Cluster Kubernetes menggunakan workload khusus yang dikelola GDC untuk mengaktifkan kemampuan dan fitur cluster tertentu, seperti pengumpulan metrik. Workload ini diberi izin khusus untuk berjalan dengan benar di cluster.
Workload yang Anda deploy ke node mungkin berpotensi disusupi oleh entity berbahaya. Dengan menjalankan workload ini bersama workload khusus yang dikelola GDC, penyerang yang keluar dari container yang disusupi dapat menggunakan kredensial workload khusus pada node untuk mengeskalasikan hak istimewa di cluster Anda.
Kumpulan node khusus juga berguna saat Anda harus menjadwalkan pod yang memerlukan lebih banyak resource daripada yang lain, seperti lebih banyak memori atau lebih banyak ruang disk lokal.
Anda dapat menggunakan mekanisme berikut untuk menjadwalkan workload di kumpulan node khusus:
- Taint node: memberi tahu cluster Kubernetes Anda untuk menghindari penjadwalan workload pada node tertentu tanpa toleransi yang sesuai.
- Afinitas node: memberi tahu cluster Kubernetes Anda untuk menjadwalkan pod tertentu di node khusus.
Isolasi node adalah mekanisme pertahanan mendalam lanjutan yang hanya boleh Anda gunakan bersama fitur isolasi lain, seperti container dan akun layanan dengan hak istimewa minimal. Isolasi node mungkin tidak mencakup semua jalur eskalasi, dan tidak boleh digunakan sebagai batasan keamanan utama.
Cara kerja isolasi node
Guna menerapkan isolasi node untuk workload, Anda harus melakukan hal berikut:
Taint dan beri label kumpulan node untuk beban kerja Anda.
Perbarui beban kerja Anda dengan aturan toleransi dan afinitas node yang sesuai.
Panduan ini mengasumsikan bahwa Anda memulai dengan satu kumpulan node di cluster. Penggunaan afinitas node selain taint node tidak wajib, tetapi sebaiknya Anda mendapatkan manfaat dari kontrol yang lebih ketat terhadap penjadwalan.
Rekomendasi dan praktik terbaik
Setelah menyiapkan isolasi node, sebaiknya lakukan hal berikut:
Saat membuat kumpulan node baru, cegah sebagian besar beban kerja yang dikelola GDC agar tidak berjalan pada node tersebut dengan menambahkan taint Anda sendiri ke kumpulan node tersebut.
Setiap kali Anda men-deploy beban kerja baru ke cluster, seperti saat menginstal alat pihak ketiga, audit izin yang diperlukan pod. Jika memungkinkan, hindari men-deploy beban kerja yang menggunakan izin dengan tingkat lebih tinggi ke node bersama.
Batasan
Batasan berikut berlaku untuk pod yang berjalan di node pool terisolasi:
Penyerang masih dapat memulai serangan Denial-of-Service (DoS) dari node yang disusupi.
Jika Anda men-deploy resource
DaemonSetyang memiliki izin yang lebih tinggi dan dapat menoleransi setiap taint, pod tersebut dapat menjadi jalur untuk eskalasi hak istimewa dari node yang disusupi.Node yang disusupi masih dapat membaca banyak resource, termasuk semua pod dan namespace dalam cluster.
Node yang disusupi dapat mengakses rahasia dan kredensial yang digunakan oleh setiap pod yang berjalan pada node tersebut.
Node yang disusupi masih dapat mengabaikan kebijakan jaringan egress.
Menggunakan node pool terpisah untuk mengisolasi beban kerja dapat memengaruhi efisiensi biaya, penskalaan otomatis, dan penggunaan resource.
Beberapa beban kerja yang dikelola GDC harus berjalan pada setiap node di cluster Anda, dan dikonfigurasi untuk menoleransi semua taint.
Langkah berikutnya
- Mengisolasi workload container di kumpulan node khusus
- Ringkasan cluster Kubernetes
- Workload container di GDC