Mengisolasi workload GKE Anda menggunakan sole-tenant node


Halaman ini menunjukkan cara mengisolasi workload Anda yang berjalan di cluster Google Kubernetes Engine (GKE) Standard menggunakan sole-tenant node Compute Engine, yang merupakan server fisik khusus yang hanya menjalankan VM project tertentu. Anda dapat menggunakan sole-tenant node agar VM Anda tetap terpisah secara fisik dari VM di project lain, atau untuk mengelompokkan VM di hardware host yang sama.

Fitur ini tidak didukung di GKE Autopilot. Untuk mempelajari batasan keamanan Autopilot lebih lanjut, lihat Batasan keamanan di Autopilot.

Untuk menggunakan sole-tenant node di GKE, buat grup sole-tenant node di Compute Engine dan gunakan grup node tersebut untuk membuat node pool GKE. Anda dapat membuat node pool menggunakan sole-tenant node dari project cluster GKE atau sole-tenant node bersama menggunakan resource di seluruh project dalam organisasi Anda. Misalnya, Anda dapat menetapkan project pemilik di organisasi tempat Anda membuat grup sole-tenant node, dan project konsumen tempat Anda memiliki cluster dengan node pool menggunakan grup node tersebut dari project pemilik.

Sebelum memulai

Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:

  • Aktifkan Google Kubernetes Engine API.
  • Aktifkan Google Kubernetes Engine API
  • Jika ingin menggunakan Google Cloud CLI untuk tugas ini, instal lalu lakukan inisialisasi gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan gcloud components update.

Meminta kuota tambahan

Sole-tenant node berukuran besar (misalnya, 96 vCPU dan memori 624 GB), dan kuota project default terlalu rendah untuk menanganinya.

Anda harus meminta penambahan kuota untuk CPU Compute Engine API di halaman kuota untuk membuat sole-tenant node. Untuk informasi selengkapnya tentang cara meminta penambahan kuota, lihat Kuota.

Jumlah CPU yang Anda perlukan bergantung pada hal berikut:

  • Penggunaan kuota CPU Anda saat ini.
  • Ukuran grup node.
  • Template node.

Periksa jumlah core dari jenis sole-tenant node Anda, dan minta batas CPU setidaknya sebesar jumlah tersebut, sebaiknya dengan 10 CPU tambahan untuk memastikan bahwa project Anda memiliki kapasitas yang memadai.

Membuat template sole-tenant node

Template sole-tenant node adalah resource regional yang menentukan dan menerapkan properti ke setiap node saat membuat grup node. Untuk informasi selengkapnya, lihat jenis node.

Jika menggunakan sole-tenant node bersama, pastikan Anda menyelesaikan petunjuk ini dalam project pemilik untuk grup node, bukan project konsumen cluster.

Konsol

  1. Buka halaman Sole-tenant node di konsol Google Cloud.

    Buka Sole-tenant node

  2. Klik Buat template node.

  3. Tentukan Nama dan Region untuk template node Anda.

  4. Pilih Jenis node.

  5. Jika ingin, tambahkan satu atau beberapa label afinitas Node.

  6. Klik Buat untuk membuat template node.

gcloud

Gunakan perintah gcloud compute sole-tenancy node-templates create untuk membuat template node:

gcloud compute sole-tenancy node-templates create TEMPLATE_NAME \
    --node-type=NODE_TYPE \
    --node-affinity-labels=AFFINITY_LABELS \
    --region=COMPUTE_REGION

Ganti kode berikut:

  • TEMPLATE_NAME: nama untuk template node baru.
  • NODE_TYPE: jenis node untuk sole-tenant node yang dibuat berdasarkan template ini. Gunakan perintah gcloud compute sole-tenancy node-types list untuk mendapatkan daftar jenis node yang tersedia di setiap zona.
  • AFFINITY_LABELS: kunci dan nilai, [KEY=VALUE,...], untuk label afinitas. Dengan label minat, Anda dapat mengelompokkan node dan grup node secara logis. Kemudian, saat menyediakan VM, Anda dapat menentukan label afinitas pada VM untuk menjadwalkan VM di node pool atau grup node tertentu. Untuk mengetahui informasi selengkapnya, lihat Afinitas dan anti-afinitas node.
  • COMPUTE_REGION: region untuk membuat template node. Anda dapat menggunakan template ini untuk membuat grup node di zona mana pun dari region ini.

Outputnya mirip dengan berikut ini:

Created [https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/nodeTemplates/template-name].

Membuat grup sole-tenant node

Grup node adalah kumpulan sole-tenant node di zona tertentu dari template sole-tenant node yang sama. Untuk cluster regional dan node pool yang tersedia di beberapa zona, Anda harus membuat grup node dengan nama yang sama di setiap zona. Pastikan Anda memiliki kuota yang cukup sebelum menyelesaikan langkah ini.

Jika menggunakan sole-tenant node bersama, pastikan Anda menyelesaikan petunjuk ini dalam project pemilik untuk grup node, bukan project konsumen cluster.

Konsol

Untuk membuat grup sole-tenant node, lakukan langkah-langkah berikut:

  1. Buka halaman Sole-tenant node di konsol Google Cloud.

    Buka Sole-tenant node

  2. Klik Buat grup node.

  3. Tentukan Nama untuk template node Anda.

  4. Pilih Region yang sama dengan tempat Anda membuat template node, lalu pilih Zona di Region tersebut.

  5. Pilih Template node Anda.

  6. Jika ingin, aktifkan Mode penskalaan otomatis.

  7. Tentukan Jumlah node yang Anda inginkan dalam grup.

  8. Jika ingin, Anda dapat mengubah Kebijakan Pemeliharaan.

  9. Jika ingin, untuk membagikan grup sole-tenant node, konfigurasikan setelan berbagi dengan menentukan salah satu hal berikut di bagian Konfigurasikan setelan berbagi:

    • Bagikan grup node ini ke semua project dalam organisasi.
    • Bagikan grup node ini ke project yang dipilih dalam organisasi.
  10. Klik Buat untuk membuat grup node.

gcloud

Buat grup node dari template:

gcloud compute sole-tenancy node-groups create GROUP_NAME \
    --zone COMPUTE_ZONE \
    --node-template TEMPLATE_NAME --target-size TARGET_SIZE \
    --share-settings=SHARE_SETTING \
    --share-with=PROJECTS

Ganti kode berikut:

  • GROUP_NAME: nama yang Anda inginkan untuk grup node baru.
  • COMPUTE_ZONE: zona tempat grup node ini berada. Zona ini harus berada di region yang sama dengan template node yang Anda gunakan.
  • TEMPLATE_NAME: nama template node yang Anda gunakan.
  • TARGET_SIZE: jumlah node yang ingin Anda buat dalam grup.
  • SHARE_SETTING: setelan berbagi untuk grup node. Tetapkan ke projects untuk berbagi dengan project tertentu, atau tetapkan ke organization untuk berbagi dengan seluruh organisasi.
  • PROJECTS: daftar project ID atau nomor project yang akan diajak berbagi grup node. Hanya diperlukan jika Anda menetapkan SHARE_SETTING ke projects.

Membuat sole-tenant node pool GKE

Setelah grup sole-tenant node dibuat di Compute Engine, Anda dapat membuat sole-tenant node pool.

Jika sudah memiliki cluster GKE, Anda dapat menambahkan sole-tenant node pool ke cluster tersebut. Jika belum, buat cluster dengan gcloud container clusters create.

Jika menggunakan cluster regional atau jika node pool tersedia di beberapa zona, Anda harus membuat grup node dengan nama yang sama di setiap zona tersebut. Jika Anda tidak dapat menggunakan kembali nama di setiap zona, buat node pool terpisah untuk setiap zona.

Membuat node pool dengan grup sole-tenant node dari project cluster

Untuk membuat node pool menggunakan grup node dari project cluster, teruskan nama grup sole-tenant node. Jika Anda ingin menggunakan grup sole-tenant node bersama, atau ingin menggunakan label afinitas node kustom yang dikonfigurasi saat Andamembuat template sole-tenant node, lihat petunjuk untuk membuat node pool dengan sole-tenant node bersama menggunakan file afinitas node.

Membuat node pool baru dengan grup node yang ditentukan:

Untuk node pool zona:

  gcloud container node-pools create NODE_POOL_NAME \
      --node-group GROUP_NAME --cluster CLUSTER_NAME \
      --zone COMPUTE_ZONE --machine-type=MACHINE_TYPE \
      --node-locations=COMPUTE_ZONE

Untuk node pool regional:

  gcloud container node-pools create NODE_POOL_NAME \
      --node-group GROUP_NAME --cluster CLUSTER_NAME \
      --region COMPUTE_REGION --machine-type=MACHINE_TYPE \
      --node-locations=COMPUTE_ZONE1,COMPUTE_ZONE2

Ganti kode berikut:

  • NODE_POOL_NAME: nama untuk node pool baru.
  • GROUP_NAME: nama grup sole-tenant node yang ada yang ingin Anda gunakan.
  • CLUSTER_NAME: nama cluster tempat Anda membuat node pool.
  • COMPUTE_REGION: region yang sama dengan cluster Anda.
  • MACHINE_TYPE: jenis mesin node pool.
  • COMPUTE_ZONE1, COMPUTE_ZONE2,[...]: zona untuk grup sole-tenancy node.

Untuk daftar lengkap flag opsional yang dapat Anda tentukan, lihat dokumentasi gcloud container node-pools create.

Membuat node pool dengan sole-tenant node bersama menggunakan file afinitas node

Untuk membuat node pool menggunakan grup sole-tenant node bersama, Anda harus menggunakan label afinitas node. Anda juga dapat menggunakan afinitas node untuk memilih grup node dari project yang sama.

Untuk mereferensikan label, ikuti petunjuk membuat node pool, dengan mengganti flag --node-group dengan flag --sole-tenant-node-affinity-file. Teruskan file JSON dengan label tersebut. Misalnya, lihat perintah berikut:

  gcloud container node-pools create sole-tenant-node-pool \
      --sole-tenant-node-affinity-file /path/to/affinity/file --cluster my-cluster \
      --region us-central1 --machine-type n1-standard-4  \
      --node-locations=us-central1-a,us-central1-b,us-central1-c

Bagian berikut menjelaskan kasus penggunaan untuk label afinitas node dengan sole-tenant node.

Menentukan nama grup node dari project

Untuk menggunakan grup sole-tenant node dari nama grup node dan project tertentu, tentukan nilai ini dalam file afinitas node. Anda dapat menggunakan afinitas ini jika membuat node pool multi-zona dengan nama grup node dari setiap zona harus cocok. Untuk menggunakan grup node dalam project pemilik yang ditentukan, hapus seluruh blok compute-googleapis.com/node-group-name dari file JSON.

Lihat contoh berikut:

[
  {
    "key" : "compute.googleapis.com/project",
    "operator" : "IN",
    "values" : ["OWNER_PROJECT"]
  },
  {
    "key" : "compute.googleapis.com/node-group-name",
    "operator" : "IN",
    "values" : ["GROUP_NAME"]
  },
]

Menentukan label khusus

Anda juga dapat menggunakan afinitas dan anti-afinitas node untuk membuat node pool menggunakan grup node dengan label khusus. Setiap grup node akan otomatis diberi label afinitas default. Anda dapat mereferensikan label default seperti contoh sebelumnya, atau menggunakan label khusus yang ditetapkan saat membuat template node. Anda dapat menggunakan label khusus untuk mengisolasi atau mengelompokkan workload.

Lihat contoh berikut:

[
  {
    "key" : "compute.googleapis.com/project",
    "operator" : "IN",
    "values" : ["OWNER_PROJECT"]
  },
  {
    "key" : "workload",
    "operator" : "IN",
    "values" : ["frontend"]
  },
]

Batasan

Saat membuat node pool dengan sole-tenant node, Anda bertanggung jawab mengelola kapasitas dasar untuk grup sole-tenant node. Pertimbangkan cara fitur berikut berinteraksi dengan grup sole-tenant node:

  • Anda dapat mengaktifkan penskalaan otomatis cluster, tetapi dibatasi oleh kapasitas grup node yang mendasarinya. Anda dapat mengonfigurasi autoscaler grup node di Compute Engine untuk mengelola ukuran grup sole-tenant node Anda secara otomatis.
  • Anda tidak dapat mengaktifkan penyediaan otomatis node untuk cluster jika menggunakan sole-tenant node.
  • Anda dapat menggunakan strategi upgrade node, tetapi harus memastikan bahwa terdapat kapasitas yang cukup untuk mendukung node pool menggunakan strategi upgrade yang dipilih.

Langkah selanjutnya