GKE di AWS memungkinkan Anda menjalankan workload Arm yang dibuat untuk prosesor AWS Graviton berbasis Arm.
Batasan
Kumpulan node Arm yang menjalankan versi Kubernetes yang lebih lama dari 1.24.8-gke.1300 akan otomatis menambahkan taint selama pembuatan kumpulan node untuk mencegah workload Arm dijadwalkan pada node non-Arm. Arm pool node dalam cluster pada versi 1.24.8-gke.1300 atau yang lebih tinggi tidak lagi menambahkan taint ini. Jika mengupgrade dari cluster yang lebih lama dari 1.24.8-gke.1300, Anda harus membuat taint ini sendiri atau mempertimbangkannya saat melakukan upgrade.
Kumpulan node Arm di GKE di AWS tidak mendukung Cloud Service Mesh, Config Sync, atau Pengontrol Kebijakan. Anda harus menjalankan produk-produk ini pada kumpulan node x86.
Cluster yang menjalankan Kubernetes versi 1.24 memerlukan kumpulan node x86 untuk menjalankan Agen Connect. Jika cluster Anda menjalankan Kubernetes versi 1.25 atau yang lebih baru, Anda tidak memerlukan kumpulan node x86.
Halaman ini menjelaskan cara membuat kumpulan node Arm, alasan gambar multi-arsitektur adalah cara yang direkomendasikan untuk men-deploy workload Arm, dan cara menjadwalkan workload Arm.
Sebelum memulai
Sebelum membuat kumpulan node untuk workload Arm, Anda memerlukan resource berikut:
- Cluster AWS yang sudah ada untuk membuat node pool. Cluster ini harus menjalankan Kubernetes versi 1.24 atau yang lebih baru.
- Profil instance IAM untuk VM kumpulan node.
- Subnet tempat VM kumpulan node akan berjalan.
Jika cluster Anda menjalankan Kubernetes versi 1.24, kumpulan node x86 untuk menjalankan Agen Connect.
Untuk mengetahui detail tentang cara membuat node pool di GKE pada AWS, lihat Membuat node pool.
Membuat kumpulan node Arm
GKE di AWS mendukung kumpulan node yang dibangun di image node minimal ARM64 canonical Ubuntu dan runtime containerd
.
Untuk membuat kumpulan node Arm dan menambahkannya ke cluster yang sudah ada, jalankan perintah berikut:
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
Ganti kode berikut:
NODE_POOL_NAME
: nama yang Anda pilih untuk kumpulan nodeCLUSTER_NAME
: nama cluster untuk memasang kumpulan nodeINSTANCE_TYPE
: salah satu jenis instance berikut:m6g
m6gd
t4g
r6g
r6gd
c6g
c6gd
c6gn
x2gd
c7g
im4gn
g5g
Jenis instance ini didukung oleh prosesor AWS Graviton berbasis Arm. Anda juga harus menentukan ukuran instance yang diinginkan. Misalnya,
m6g.medium
. Untuk mengetahui daftar lengkap, baca Jenis instance AWS yang didukung.
ROOT_VOLUME_SIZE
: ukuran yang diinginkan untuk setiap volume root node, dalam GbNODEPOOL_PROFILE
: profil instance IAM untuk VM kumpulan nodeNODE_VERSION
: versi Kubernetes yang akan diinstal pada setiap node di kumpulan node, yang harus berupa versi 1.24 atau yang lebih baru. Misalnya,1.24.3-gke.200
.MIN_NODES
: jumlah minimum node yang dapat menampung kumpulan nodeMAX_NODES
: jumlah maksimum node yang dapat dimuat oleh kumpulan nodeMAX_PODS_PER_NODE
: jumlah maksimum Pod yang dapat dibuat pada satu node dalam kumpulanGOOGLE_CLOUD_LOCATION
: nama layanan Google Cloudlokasi tempat kumpulan node ini akan dikelola
NODEPOOL_SUBNET
: ID subnet tempat kumpulan node akan dijalankan. Jika subnet ini berada di luar blok CIDR utama VPC, Anda perlu melakukan langkah tambahan. 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
Memahami gambar multi-arsitektur
Image container harus kompatibel dengan arsitektur node tempat Anda ingin menjalankan workload Arm. Untuk memastikan image container Anda kompatibel dengan Arm, sebaiknya gunakan image multi-arsitektur ("multi-arch").
Gambar multi-lengkungan adalah gambar yang dapat mendukung beberapa arsitektur. File ini terlihat seperti satu gambar dengan satu tag, tetapi berisi kumpulan gambar untuk dijalankan di arsitektur mesin yang berbeda. Image multi-arch kompatibel dengan Spesifikasi Docker Image Manifest V2 Scheme 2 atau OCI Image Index.
Saat Anda men-deploy image multi-lengkungan ke cluster, runtime container akan otomatis memilih image yang kompatibel dengan arsitektur node yang menjadi tujuan deployment. Setelah memiliki image multi-arch untuk suatu workload, Anda dapat men-deploy workload ini di beberapa arsitektur. Menjadwalkan image arsitektur tunggal ke node yang tidak kompatibel akan menyebabkan error pada waktu pemuatan.
Untuk mempelajari lebih lanjut cara menggunakan image multi-arch dengan workload Arm, lihat Membangun image multi-arsitektur untuk workload Arm dalam dokumentasi Google Kubernetes Engine (GKE).