Membuat node pool

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

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

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 menambahkan 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 AWS IAM.
  • NODE_VERSION: versi Kubernetes yang akan diinstal pada setiap node di kumpulan node (misalnya, "1.29.3-gke.600")
  • MIN_NODES: jumlah minimum node yang dapat ditampung kumpulan node
  • MAX_NODES: jumlah maksimum node yang dapat ditampung kumpulan node
  • MAX_PODS_PER_NODE: jumlah maksimum pod yang dapat dibuat pada setiap 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 selengkapnya tentang cara memilih Pod dan rentang IP Layanan 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 dalam kumpulan node Anda. Contoh ini memberi tag pada semua node dalam kumpulan dengan nama cluster dan kumpulan node yang mencakup node tersebut.

Kumpulan node Instance Spot

GKE di AWS mendukung kumpulan node AWS spot instance 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, keduanya tidak cocok untuk workload yang tidak fleksibel, stateful, tidak toleran, atau terkait erat di antara node instance. Instance Spot dapat terganggu oleh Amazon EC2 saat EC2 memerlukan kapasitas kembali, sehingga rentan mengalami fluktuasi di pasar Spot. Jika beban kerja Anda memerlukan kapasitas terjamin dan tidak dapat menoleransi periode ketidaktersediaan yang sesekali, pilih kumpulan node standar, bukan kumpulan node instance spot.

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 Instance Spot, 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, dan jumlah memori yang sama. Misalnya: "c6g.large,c6gd.large,c6gn.large,c7g.large,t4g.medium". Anda dapat menggunakan alat Amazon EC2 Instance Selector 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 di kumpulan node (misalnya, "1.29.3-gke.600")
  • MIN_NODES: jumlah minimum node yang dapat ditampung kumpulan node
  • MAX_NODES: jumlah maksimum node yang dapat ditampung kumpulan node
  • MAX_PODS_PER_NODE: jumlah maksimum pod yang dapat dibuat pada setiap 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 selengkapnya tentang cara memilih Pod dan rentang IP Layanan 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, maka kumpulan node tidak dapat menyediakan node baru. Hal ini dapat memengaruhi ketersediaan aplikasi dan dapat menyebabkan gangguan layanan.

Perhatikan bahwa kolom spot-instance-types sama-sama bersifat eksklusif dengan kolom instance-type. Artinya, Anda hanya dapat memberikan salah satu dari kolom tersebut, bukan keduanya.