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 nodeCLUSTER_NAME
: nama cluster untuk menambahkan kumpulan node keINSTANCE_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 GbNODEPOOL_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 nodeMAX_NODES
: jumlah maksimum node yang dapat ditampung kumpulan nodeMAX_PODS_PER_NODE
: jumlah maksimum pod yang dapat dibuat pada setiap node dalam kumpulanGOOGLE_CLOUD_LOCATION
: nama lokasi Google Cloud tempat kumpulan node ini akan dikelolaNODEPOOL_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 GbNODEPOOL_PROFILE
: profil instance IAM untuk VM kumpulan nodeNODE_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 nodeMAX_NODES
: jumlah maksimum node yang dapat ditampung kumpulan nodeMAX_PODS_PER_NODE
: jumlah maksimum pod yang dapat dibuat pada setiap node dalam kumpulanGOOGLE_CLOUD_LOCATION
: nama lokasi Google Cloud tempat kumpulan node ini akan dikelolaNODEPOOL_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.