Halaman ini menunjukkan cara membuat cluster dan node pool yang menggunakan instance khusus AWS atau host khusus. Host dan instance khusus hanya disediakan untuk penggunaan Anda dan tidak dibagikan kepada pelanggan AWS lainnya. Setelan untuk host dan instance khusus dikenal sebagai tenancy.
Sebelum memulai
Untuk menggunakan instance atau host khusus dengan GKE di AWS, Anda harus membuat cluster baru versi 1.22.8-gke.200 atau yang lebih tinggi. Anda tidak dapat mengupgrade cluster yang ada dan menambahkan host khusus.
Persyaratan cluster
Sebelum membuat cluster, Anda harus menyelesaikan prasyarat. Secara khusus, Anda harus menyediakan resource berikut:
- AWS VPC tempat cluster akan berjalan.
- Maksimal tiga subnet AWS untuk tiga replika bidang kontrol. Setiap subnet harus berada di AWS Availability Zone yang berbeda.
- Peran IAM AWS yang diasumsikan GKE di AWS saat mengelola cluster Anda. Hal ini memerlukan serangkaian izin IAM tertentu. izin IAM.
- Kunci CMK simetris KMS untuk enkripsi data cluster (etcd) dan konfigurasi dalam penyimpanan.
- Profil instance IAM AWS untuk setiap replika bidang kontrol. Hal ini memerlukan serangkaian izin IAM tertentu.
- Pasangan kunci SSH EC2 (opsional) jika Anda memerlukan akses SSH ke instance EC2 yang menjalankan setiap replika bidang kontrol.
Anda bertanggung jawab untuk membuat dan mengelola resource ini, yang dapat dibagikan di antara semua cluster Anthos Anda. Semua resource AWS yang mendasarinya dan memiliki cakupan cluster dikelola oleh GKE di AWS.
Petunjuk ini menggunakan GKE Multi-Cloud API untuk membuat cluster dan node pool. Sebelum menggunakan GKE Multi-Cloud API, pastikan Anda memahami Google Cloud API.
Host khusus dan instance khusus
Saat membuat cluster atau node pool, Anda dapat memilih salah satu opsi berikut:
DEFAULT: meluncurkan instance dengan tenancy default VPC AndaDEDICATED: meluncurkan instance di instance khususHOST: meluncurkan instance di host khusus
Sebelum membuat cluster atau node pool, tentukan opsi yang tepat untuk Anda.
Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi tenancy instance dengan konfigurasi peluncuran, instance khusus, dan host khusus dalam dokumentasi AWS.
Mencampur setelan tenancy dalam cluster
Anda dapat mengonfigurasi setelan tenancy secara terpisah untuk setiap bidang kontrol dan node pool. Misalnya, Anda dapat membuat cluster dengan bidang kontrol di host bersama, node pool di host khusus, dan node pool lainnya di host bersama.
Mengalokasikan host khusus
Sebelum membuat cluster dengan host khusus, Anda harus mengalokasikan host untuk semua instance yang diperlukan cluster Anda. Host harus memiliki atribut berikut:
- Menggunakan family instance yang sama dengan yang diperlukan resource cluster Anda
- Dialokasikan di zona yang sama dengan tempat Anda berencana membuat cluster
- Mengaktifkan penempatan otomatis
- Anda memiliki kuota yang cukup untuk meluncurkan host khusus
Untuk mengetahui informasi selengkapnya tentang cara mengalokasikan host khusus, lihat Mulai menggunakan host khusus.
Batasan
Bagian ini mencantumkan batasan dukungan host khusus di GKE di AWS.
Kumpulan node
Anda tidak dapat mengupdate setelan tenancy node pool. Untuk memindahkan workload ke instance dengan setelan tenancy lain, buat node pool baru dengan tenancy yang Anda inginkan dan hapus node pool yang ada.
Family instance yang didukung
GKE di AWS mendukung host khusus dari family instance berikut.
- t3
- m5
- m5d
- c5
- c5d
- r5
- r5d
- i3en
Family instance lainnya tidak didukung.
Jenis node
Hanya node pool Linux yang didukung.
Membuat cluster
Anda dapat membuat cluster yang mendukung host khusus dengan Metode: projects.locations.awsClusters.create dengan GKE Multi-Cloud API. Untuk membuat cluster, lakukan langkah-langkah berikut:
gcloud
Contoh berikut membuat cluster dengan host khusus.Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- CLUSTER_NAME: nama cluster yang Anda pilih
- GOOGLE_CLOUD_LOCATION: region yang didukung yang mengelola cluster Anda—misalnya,
us-west1Google Cloud - AWS_REGION: region AWS tempat cluster akan dibuat
- API_ROLE_ARN: ARN peran GKE Multi-Cloud API
- CONFIG_KMS_KEY_ARN: Amazon Resource Name (ARN) dari kunci AWS KMS untuk mengenkripsi data pengguna
- DB_KMS_KEY_ARN: Amazon Resource Name (ARN) kunci AWS KMS untuk mengenkripsi secret cluster
- CONTROL_PLANE_PROFILE: profil instance IAM yang terkait dengan cluster
- CONTROL_PLANE_SUBNET_1, CONTROL_PLANE_SUBNET_2, CONTROL_PLANE_SUBNET_3 dengan ID subnet untuk tiga instance bidang kontrol cluster Anda
- TENANCY_TYPE: Setelan untuk tenancy bidang kontrol.
Dapat berupa
DEFAULT,DEDICATED, atauHOST. - CLUSTER_VERSION: Versi cluster yang didukung
- FLEET_PROJECT: project host Fleet tempat cluster akan didaftarkan. Jika Anda ingin mengelola cluster ini dari Project lain, lihat Pendaftaran lintas project
- POD_ADDRESS_CIDR_BLOCKS: rentang alamat CIDR untuk pod cluster Anda
- SERVICE_ADDRESS_CIDR_BLOCKS: rentang alamat CIDR untuk layanan cluster Anda
- VPC_ID: ID AWS VPC untuk cluster ini
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud alpha container aws clusters create CLUSTER_NAME \ --location GOOGLE_CLOUD_LOCATION \ --aws-region AWS_REGION \ --role-arn API_ROLE_ARN \ --config-encryption-kms-key-arn CONFIG_KMS_KEY_ARN \ --database-encryption-kms-key-arn DB_KMS_KEY_ARN \ --iam-instance-profile CONTROL_PLANE_PROFILE \ --subnet-ids CONTROL_PLANE_SUBNET_1,CONTROL_PLANE_SUBNET_2,CONTROL_PLANE_SUBNET_3 \ --instance-placement TENANCY_TYPE --cluster-version CLUSTER_VERSION \ --fleet-project FLEET_PROJECT \ --pod-address-cidr-blocks POD_ADDRESS_CIDR_BLOCKS \ --service-address-cidr-blocks SERVICE_ADDRESS_CIDR_BLOCKS \ --vpc-id VPC_ID \ --tags="control-plane=CLUSTER_NAME"
Windows (PowerShell)
gcloud alpha container aws clusters create CLUSTER_NAME ` --location GOOGLE_CLOUD_LOCATION ` --aws-region AWS_REGION ` --role-arn API_ROLE_ARN ` --config-encryption-kms-key-arn CONFIG_KMS_KEY_ARN ` --database-encryption-kms-key-arn DB_KMS_KEY_ARN ` --iam-instance-profile CONTROL_PLANE_PROFILE ` --subnet-ids CONTROL_PLANE_SUBNET_1,CONTROL_PLANE_SUBNET_2,CONTROL_PLANE_SUBNET_3 ` --instance-placement TENANCY_TYPE --cluster-version CLUSTER_VERSION ` --fleet-project FLEET_PROJECT ` --pod-address-cidr-blocks POD_ADDRESS_CIDR_BLOCKS ` --service-address-cidr-blocks SERVICE_ADDRESS_CIDR_BLOCKS ` --vpc-id VPC_ID ` --tags="control-plane=CLUSTER_NAME"
Windows (cmd.exe)
gcloud alpha container aws clusters create CLUSTER_NAME ^ --location GOOGLE_CLOUD_LOCATION ^ --aws-region AWS_REGION ^ --role-arn API_ROLE_ARN ^ --config-encryption-kms-key-arn CONFIG_KMS_KEY_ARN ^ --database-encryption-kms-key-arn DB_KMS_KEY_ARN ^ --iam-instance-profile CONTROL_PLANE_PROFILE ^ --subnet-ids CONTROL_PLANE_SUBNET_1,CONTROL_PLANE_SUBNET_2,CONTROL_PLANE_SUBNET_3 ^ --instance-placement TENANCY_TYPE --cluster-version CLUSTER_VERSION ^ --fleet-project FLEET_PROJECT ^ --pod-address-cidr-blocks POD_ADDRESS_CIDR_BLOCKS ^ --service-address-cidr-blocks SERVICE_ADDRESS_CIDR_BLOCKS ^ --vpc-id VPC_ID ^ --tags="control-plane=CLUSTER_NAME"
REST
Contoh berikut membuat cluster dengan host khusus.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- ENDPOINT: endpoint layanan Anda Google Cloud
- PROJECT_ID: projectAnda Google Cloud
- USERNAME: pengguna yang dapat melakukan operasi sebagai admin cluster
- CLUSTER_NAME: nama cluster yang Anda pilih
- GOOGLE_CLOUD_LOCATION: region yang didukung yang mengelola cluster Anda—misalnya,
us-west1Google Cloud - AWS_REGION: region AWS tempat cluster akan dibuat
- API_ROLE_ARN: ARN peran GKE Multi-Cloud API
- CONFIG_KMS_KEY_ARN: Amazon Resource Name (ARN) dari kunci AWS KMS untuk mengenkripsi data pengguna
- DB_KMS_KEY_ARN: Amazon Resource Name (ARN) kunci AWS KMS untuk mengenkripsi secret cluster
- CONTROL_PLANE_PROFILE: profil instance IAM yang terkait dengan cluster
- CONTROL_PLANE_SUBNET_1, CONTROL_PLANE_SUBNET_2, CONTROL_PLANE_SUBNET_3 dengan ID subnet untuk tiga instance bidang kontrol cluster Anda
- TENANCY_TYPE: Setelan untuk tenancy bidang kontrol.
Dapat berupa
DEFAULT,DEDICATED, atauHOST. - CLUSTER_VERSION: Versi cluster yang didukung
- FLEET_PROJECT: project host Fleet tempat cluster akan didaftarkan. Jika Anda ingin mengelola cluster ini dari Project lain, lihat Pendaftaran lintas project
- POD_ADDRESS_CIDR_BLOCKS: rentang alamat CIDR untuk pod cluster Anda
- SERVICE_ADDRESS_CIDR_BLOCKS: rentang alamat CIDR untuk layanan cluster Anda
- VPC_ID: ID AWS VPC untuk cluster ini
Metode HTTP dan URL:
POST ENDPOINT/projects/PROJECT_ID/locations/GOOGLE_CLOUD_LOCATION/awsClusters
Meminta isi JSON:
{
"name": "CLUSTER_NAME",
"authorization": {
"adminUsers": [
{
"username": "USERNAME"
}
]
},
"awsRegion": "AWS_REGION",
"controlPlane": {
"awsServicesAuthentication": {
"roleArn": "API_ROLE_ARN"
},
"configEncryption": {
"kmsKeyArn": "CONFIG_KMS_KEY_ARN"
},
"databaseEncryption": {
"kmsKeyArn": "DB_KMS_KEY_ARN"
},
"iamInstanceProfile": "CONTROL_PLANE_PROFILE",
"mainVolume": {},
"rootVolume": {},
"sshConfig": {},
"subnetIds": [
"CONTROL_PLANE_SUBNET_1",
"CONTROL_PLANE_SUBNET_2",
"CONTROL_PLANE_SUBNET_3"
],
"tags": {
"google:gkemulticloud:cluster": "CLUSTER_NAME"
},
"instancePlacement": {
"tenancy": "TENANCY_TYPE"
},
"version": "CLUSTER_VERSION"
},
"fleet": {
"project": "FLEET_PROJECT"
},
"networking": {
"podAddressCidrBlocks": [
"POD_ADDRESS_CIDR_BLOCKS"
],
"serviceAddressCidrBlocks": [
"SERVICE_ADDRESS_CIDR_BLOCKS"
],
"vpcId": "VPC_ID"
}
}
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima kode status berhasil (2xx) dan respons kosong.
Untuk opsi tambahan, lihat dokumentasi referensi Metode: projects.locations.awsClusters.create.
Membuat node pool
gcloud
Contoh berikut membuat node pool dengan host khusus. Saat Anda membuat node pool, semua instance dalam pool memiliki jenis instance dan setelan tenancy yang sama.Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- GOOGLE_CLOUD_LOCATION: region yang didukung Google Cloud
- CLUSTER_NAME: nama cluster Anda
- NODE_POOL_NAME: nama node pool
yang mengelola cluster Anda—misalnya,
us-west1 - MIN_NODES: jumlah minimum node yang dapat dimuat node pool
- MAX_NODES: jumlah maksimum node yang dapat dimuat node pool
- CONFIG_KMS_KEY_ARN: Amazon Resource Name (ARN) kunci AWS KMS yang mengenkripsi data pengguna
- NODEPOOL_PROFILE: profil instance IAM untuk VM node pool
- ROOT_VOLUME_SIZE: ukuran yang diinginkan untuk volume root setiap node, dalam Gb
- TENANCY_TYPE: Setelan untuk tenancy bidang kontrol
.
Dapat berupa
DEFAULT,DEDICATED, atauHOST. - INSTANCE_TYPE: jenis instance mesin AWS yang diinginkan untuk node pool ini
- NODEPOOL_SUBNET: ID subnet tempat node pool akan berjalan. Jika subnet ini berada di luar blok CIDR utama VPC, beberapa langkah tambahan diperlukan. Untuk mengetahui informasi selengkapnya, lihat grup keamanan.
- CLUSTER_VERSION: Versi cluster yang didukung
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud alpha container aws node-pools create NODE_POOL_NAME \ --cluster CLUSTER_NAME \ --location GOOGLE_CLOUD_LOCATION \ --min-nodes MIN_NODES \ --max-nodes MAX_NODES \ --config-encryption-kms-key-arn CONFIG_KMS_KEY_ARN \ --iam-instance-profile NODEPOOL_PROFILE \ --root-volume-size ROOT_VOLUME_SIZE \ --instance-placement TENANCY_TYPE --instance-type INSTANCE_TYPE \ --subnet-id NODEPOOL_SUBNET \ --ssh-ec2-key-pair SSH_KEY_PAIR_NAME \ --node-version CLUSTER_VERSION \ --max-pods-per-node 110 \ --tags "Name=CLUSTER_NAME-NODE_POOL_NAME"
Windows (PowerShell)
gcloud alpha container aws node-pools create NODE_POOL_NAME ` --cluster CLUSTER_NAME ` --location GOOGLE_CLOUD_LOCATION ` --min-nodes MIN_NODES ` --max-nodes MAX_NODES ` --config-encryption-kms-key-arn CONFIG_KMS_KEY_ARN ` --iam-instance-profile NODEPOOL_PROFILE ` --root-volume-size ROOT_VOLUME_SIZE ` --instance-placement TENANCY_TYPE --instance-type INSTANCE_TYPE ` --subnet-id NODEPOOL_SUBNET ` --ssh-ec2-key-pair SSH_KEY_PAIR_NAME ` --node-version CLUSTER_VERSION ` --max-pods-per-node 110 ` --tags "Name=CLUSTER_NAME-NODE_POOL_NAME"
Windows (cmd.exe)
gcloud alpha container aws node-pools create NODE_POOL_NAME ^ --cluster CLUSTER_NAME ^ --location GOOGLE_CLOUD_LOCATION ^ --min-nodes MIN_NODES ^ --max-nodes MAX_NODES ^ --config-encryption-kms-key-arn CONFIG_KMS_KEY_ARN ^ --iam-instance-profile NODEPOOL_PROFILE ^ --root-volume-size ROOT_VOLUME_SIZE ^ --instance-placement TENANCY_TYPE --instance-type INSTANCE_TYPE ^ --subnet-id NODEPOOL_SUBNET ^ --ssh-ec2-key-pair SSH_KEY_PAIR_NAME ^ --node-version CLUSTER_VERSION ^ --max-pods-per-node 110 ^ --tags "Name=CLUSTER_NAME-NODE_POOL_NAME"
REST
Contoh berikut membuat node pool dengan host khusus. Saat Anda membuat node pool, semua instance dalam pool memiliki jenis instance dan setelan tenancy yang sama.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- ENDPOINT: endpoint layanan Anda Google Cloud
- PROJECT_ID: projectAnda Google Cloud
- USERNAME: pengguna yang dapat melakukan operasi sebagai admin cluster
- GOOGLE_CLOUD_LOCATION: region yang didukung Google Cloud
- CLUSTER_NAME: nama cluster Anda
- NODE_POOL_NAME: nama node pool
yang mengelola cluster Anda—misalnya,
us-west1 - MIN_NODES: jumlah minimum node yang dapat dimuat node pool
- MAX_NODES: jumlah maksimum node yang dapat dimuat node pool
- CONFIG_KMS_KEY_ARN: Amazon Resource Name (ARN) kunci AWS KMS yang mengenkripsi data pengguna
- NODEPOOL_PROFILE: profil instance IAM untuk VM node pool
- ROOT_VOLUME_SIZE: ukuran yang diinginkan untuk volume root setiap node, dalam Gb
- TENANCY_TYPE: Setelan untuk tenancy bidang kontrol
.
Dapat berupa
DEFAULT,DEDICATED, atauHOST. - INSTANCE_TYPE: jenis instance mesin AWS yang diinginkan untuk node pool ini
- NODEPOOL_SUBNET: ID subnet tempat node pool akan berjalan. Jika subnet ini berada di luar blok CIDR utama VPC, beberapa langkah tambahan diperlukan. Untuk mengetahui informasi selengkapnya, lihat grup keamanan.
- CLUSTER_VERSION: Versi cluster yang didukung
Metode HTTP dan URL:
POST ENDPOINT/projects/PROJECT_ID/locations/GOOGLE_CLOUD_LOCATION/CLUSTER_NAME/awsNodePools
Meminta isi JSON:
{
"name": "NODE_POOL_NAME",
"autoscaling": {
"minNodeCount": MIN_NODES,
"maxNodeCount": MAX_NODES
},
"config": {
"configEncryption": {
"kmsKeyArn": "CONFIG_KMS_KEY_ARN"
},
"iamInstanceProfile": "NODEPOOL_PROFILE",
"rootVolume": {
"sizeGib": ROOT_VOLUME_SIZE
},
"instancePlacement": {
"tenancy": "TENANCY_TYPE"
},
"instanceType" : "INSTANCE_TYPE"
"tags": {
"google:gkemulticloud:cluster": "NODE_POOL_NAME"
}
},
"maxPodsConstraint": {
"maxPodsPerNode": "110"
},
"subnetId": "NODEPOOL_SUBNET",
"version": "CLUSTER_VERSION"
}
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima kode status berhasil (2xx) dan respons kosong.
Untuk opsi tambahan, lihat dokumentasi referensi Metode: projects.locations.awsClusters.awsNodePools.create.
Pembersihan
Untuk menghapus cluster menggunakan host khusus, lakukan langkah-langkah berikut:
- Hapus node pool apa pun
- Hapus cluster.
- Setelah menghapus node pool dan cluster, Anda dapat Merilis host khusus.
Langkah berikutnya
- Baca dokumentasi referensi AWSInstancePlacement API.