Membuat node pool

Untuk membuat node pool di GKE pada AWS, Anda harus menyediakan resource berikut:

  • Nama cluster AWS yang sudah ada untuk membuat node pool di
  • Profil instance IAM untuk VM kumpulan node
  • Subnet tempat VM kumpulan node akan menjalankan

Jika ingin mendapatkan akses SSH ke node, Anda dapat Membuat pasangan kunci EC2.

Membuat kumpulan node standar

Setelah resource ini tersedia, Anda dapat membuat kumpulan node dengan perintah ini:

gcloud container aws node-pools create NODE_POOL_NAME \
    --cluster CLUSTER_NAME \
    --instance-type INSTANCE_TYPE \
    --root-volume-size ROOT_VOLUME_SIZE \
    --iam-instance-profile NODEPOOL_PROFILE \
    --node-version NODE_VERSION \
    --min-nodes MIN_NODES \
    --max-nodes MAX_NODES \
    --max-pods-per-node MAX_PODS_PER_NODE \
    --location GOOGLE_CLOUD_LOCATION \
    --subnet-id NODEPOOL_SUBNET \
    --ssh-ec2-key-pair SSH_KEY_PAIR_NAME \
    --config-encryption-kms-key-arn CONFIG_KMS_KEY_ARN \
    --tags "Name=CLUSTER_NAME-NODE_POOL_NAME"

Ganti kode berikut:

  • NODE_POOL_NAME: nama yang Anda pilih untuk kumpulan node
  • CLUSTER_NAME: nama cluster untuk memasang kumpulan node ke
  • INSTANCE_TYPE: jenis instance mesin AWS yang diinginkan untuk kumpulan node ini— misalnya, m5.large
  • ROOT_VOLUME_SIZE: ukuran yang diinginkan untuk volume root setiap node, dalam Gb
  • NODEPOOL_PROFILE: profil instance IAM untuk VM kumpulan node. Untuk mengetahui detail tentang cara memperbarui profil instance IAM, lihat Memperbarui profil instance IAM AWS.
  • NODE_VERSION: versi Kubernetes yang akan diinstal pada setiap node dalam kumpulan node (mis., "1.29.4-gke.200")
  • MIN_NODES: jumlah minimum node yang dapat dimuat oleh kumpulan node
  • MAX_NODES: jumlah maksimum node yang dapat dimuat oleh kumpulan node
  • MAX_PODS_PER_NODE: jumlah maksimum pod yang dapat dibuat pada satu node dalam kumpulan
  • GOOGLE_CLOUD_LOCATION: nama lokasi Google Cloud tempat kumpulan node ini akan dikelola
  • NODEPOOL_SUBNET: ID subnet tempat kumpulan node akan dijalankan.
    • Tidak boleh ada tumpang-tindih antara rentang IP Pod/Layanan cluster dan jaringan subnet kumpulan node. Untuk mengetahui informasi lebih lanjut tentang cara memilih rentang IP Service dan Pod untuk cluster, baca artikel Memilih rentang CIDR untuk cluster Anda
    • Jika subnet ini berada di luar blok CIDR utama VPC, beberapa langkah tambahan diperlukan. Untuk mengetahui informasi selengkapnya, lihat grup keamanan.
  • SSH_KEY_PAIR_NAME: nama pasangan kunci AWS SSH yang dibuat untuk akses SSH (opsional)
  • CONFIG_KMS_KEY_ARN: Amazon Resource Name (ARN) dari kunci AWS KMS yang mengenkripsi data pengguna

Jika ada, parameter --tags akan menerapkan tag yang diberikan ke semua node di kumpulan node Anda. Contoh ini memberi tag pada semua node dalam kumpulan dengan nama cluster dan kumpulan node yang memiliki node.

Kumpulan node Instance Spot

GKE di AWS mendukung kumpulan node instance spot AWS sebagai fitur Pratinjau. Kumpulan node instance Spot adalah kumpulan Instance Spot Amazon EC2 yang tersedia di AWS dengan biaya lebih rendah.

Instance Spot dapat menghemat biaya untuk aplikasi stateless, fault-tolerant, dan fleksibel. Namun, node ini tidak cocok untuk workload yang tidak fleksibel, stateful, tidak toleran, atau dikaitkan secara erat antar-node instance. Instance Spot dapat diganggu oleh Amazon EC2 saat EC2 memerlukan kapasitas kembali, sehingga bergantung pada fluktuasi di pasar Spot. Jika workload Anda memerlukan kapasitas terjamin dan tidak dapat menoleransi periode ketidaktersediaan sesekali, pilih kumpulan node standar, bukan kumpulan node instance tempat.

Strategi alokasi yang digunakan di GKE pada AWS berfokus pada pemilihan kumpulan Instance Spot dengan ketersediaan kapasitas tertinggi, sehingga meminimalkan risiko gangguan. Pendekatan ini sangat bermanfaat untuk workload dengan biaya gangguan yang lebih tinggi, seperti rendering gambar dan media atau Deep Learning. Secara khusus, strategi alokasi capacityOptimized telah diimplementasikan, seperti yang dijelaskan dalam Strategi alokasi untuk Instance Spot.

Membuat kumpulan node Spot

Untuk membuat kumpulan node Spot Instance, jalankan perintah berikut:

gcloud container aws node-pools create NODE_POOL_NAME \
    --cluster CLUSTER_NAME \
    --spot-instance-types INSTANCE_TYPE_LIST \
    --root-volume-size ROOT_VOLUME_SIZE \
    --iam-instance-profile NODEPOOL_PROFILE \
    --node-version NODE_VERSION \
    --min-nodes MIN_NODES \
    --max-nodes MAX_NODES \
    --max-pods-per-node MAX_PODS_PER_NODE \
    --location GOOGLE_CLOUD_LOCATION \
    --subnet-id NODEPOOL_SUBNET \
    --ssh-ec2-key-pair SSH_KEY_PAIR_NAME \
    --config-encryption-kms-key-arn CONFIG_KMS_KEY_ARN \
    --tags "Name=CLUSTER_NAME-NODE_POOL_NAME"

Ganti kode berikut:

  • NODE_POOL_NAME: nama yang ingin Anda tetapkan ke kumpulan node ini.
  • CLUSTER_NAME: nama cluster tempat Anda ingin menambahkan kumpulan node ini.
  • INSTANCE_TYPE_LIST: daftar yang dipisahkan koma untuk jenis instance AWS EC2. Kumpulan node menyediakan instance Spot dengan jenis instance ini. Jenis instance harus memiliki arsitektur CPU, jumlah CPU yang sama, dan jumlah memori yang sama. Misalnya: "c6g.large,c6gd.large,c6gn.large,c7g.large,t4g.medium". Anda dapat menggunakan alat Pemilih Instance Amazon EC2 untuk menemukan jenis instance yang memiliki konfigurasi CPU dan memori yang identik.
  • ROOT_VOLUME_SIZE: ukuran yang diinginkan untuk volume root setiap node, dalam Gb
  • NODEPOOL_PROFILE: profil instance IAM untuk VM kumpulan node
  • NODE_VERSION: versi Kubernetes yang akan diinstal pada setiap node dalam kumpulan node (mis., "1.29.4-gke.200")
  • MIN_NODES: jumlah minimum node yang dapat dimuat oleh kumpulan node
  • MAX_NODES: jumlah maksimum node yang dapat dimuat oleh kumpulan node
  • MAX_PODS_PER_NODE: jumlah maksimum pod yang dapat dibuat pada satu node dalam kumpulan
  • GOOGLE_CLOUD_LOCATION: nama lokasi Google Cloud tempat kumpulan node ini akan dikelola
  • NODEPOOL_SUBNET: ID subnet tempat kumpulan node akan dijalankan.
    • Tidak boleh ada tumpang-tindih antara rentang IP Pod/Layanan cluster dan jaringan subnet kumpulan node. Untuk mengetahui informasi lebih lanjut tentang cara memilih rentang IP Service dan Pod untuk cluster, baca artikel Memilih rentang CIDR untuk cluster Anda
    • Jika subnet ini berada di luar blok CIDR utama VPC, beberapa langkah tambahan diperlukan. Untuk mengetahui informasi selengkapnya, lihat grup keamanan.
  • SSH_KEY_PAIR_NAME: nama pasangan kunci AWS SSH yang dibuat untuk akses SSH (opsional)
  • CONFIG_KMS_KEY_ARN: Amazon Resource Name (ARN) dari kunci AWS KMS yang mengenkripsi data pengguna

Praktik terbaiknya adalah mencantumkan sejumlah jenis instance di kolom INSTANCE_TYPE_LIST. Praktik terbaik ini penting karena jika kumpulan node dikonfigurasi hanya dengan satu jenis instance, dan jenis instance tersebut tidak tersedia di Zona Ketersediaan yang diinginkan, kumpulan node tidak dapat menyediakan node baru. Hal ini dapat memengaruhi ketersediaan aplikasi dan dapat menyebabkan gangguan layanan.

Perhatikan bahwa kolom spot-instance-types tidak bisa ada pada saat yang sama dengan kolom instance-type. Ini berarti Anda hanya dapat memberikan salah satu dari kolom tersebut, dan tidak keduanya.