Membuat cluster dengan host khusus

Halaman ini menunjukkan cara membuat cluster dan kumpulan node yang menggunakan instance khusus atau host khusus AWS. Host dan instance khusus dicadangkan untuk Anda gunakan sendiri dan tidak dibagikan kepada pelanggan AWS lainnya. Setelan untuk host dan instance khusus disebut 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 referensi berikut:

  • VPC AWS tempat cluster akan dijalankan.
  • Hingga tiga subnet AWS untuk tiga replika bidang kontrol. Masing-masing harus berada di Zona Ketersediaan AWS yang berbeda.
  • Peran IAM AWS yang diambil GKE di AWS saat mengelola cluster Anda. Tindakan ini memerlukan serangkaian izin IAM spesifik.
  • Kunci CMK simetris KMS untuk enkripsi data cluster (dlld) dan konfigurasi dalam penyimpanan.
  • Profil instance IAM AWS untuk setiap replika bidang kontrol. Tindakan ini memerlukan serangkaian izin IAM spesifik.
  • 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 dengan cakupan cluster dasar lainnya dikelola oleh GKE di AWS.

Petunjuk ini menggunakan GKE Multi-Cloud API untuk membuat cluster dan node pool. Untuk menggunakan GKE Multi-Cloud API, Anda harus memahami Google Cloud API.

Host terdedikasi dan instance khusus

Saat membuat cluster atau kumpulan node, pilih salah satu opsi berikut:

  • DEFAULT: meluncurkan instance dengan tenant default VPC Anda
  • DEDICATED: meluncurkan instance pada instance khusus
  • HOST: meluncurkan instance pada host khusus

Sebelum membuat cluster atau kumpulan node, tentukan opsi yang tepat untuk Anda.

Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi tenancy instance dengan konfigurasi peluncuran, instance khusus, dan host khusus di dokumentasi AWS.

Menggabungkan setelan tenancy dalam cluster

Anda dapat mengonfigurasi setelan tenancy satu per satu untuk setiap bidang kontrol dan kumpulan node. Misalnya, Anda dapat membuat cluster dengan bidang kontrol pada host bersama, satu kumpulan node pada host khusus, dan kumpulan node lain pada host bersama.

Alokasikan host khusus

Sebelum membuat cluster dengan host khusus, Anda harus mengalokasikan host untuk semua instance yang diperlukan cluster. Host harus memiliki atribut berikut:

  • Gunakan kelompok instance yang sama dengan yang dibutuhkan resource cluster Anda
  • Dialokasikan di zona yang sama tempat Anda berencana membuat cluster
  • Aktifkan 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 pada AWS.

Kumpulan node

Anda tidak dapat memperbarui setelan tenancy kumpulan node. Untuk memindahkan workload ke instance dengan setelan tenancy lain, buat kumpulan node baru dengan tenancy yang Anda inginkan, lalu hapus yang sudah ada.

Kelompok instance yang didukung

GKE di AWS mendukung host khusus dari jenis instance berikut.

  • t3
  • m5
  • M5D
  • c5
  • C5D
  • r5
  • R5D
  • i3en

Kelompok instance lainnya tidak didukung.

Jenis node

Hanya kumpulan node Linux yang didukung.

Membuat cluster

Anda membuat cluster yang mendukung host khusus dengan Method: 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 Google Cloud yang didukung yang mengelola cluster Anda—misalnya, us-west1
    • AWS_REGION: region AWS untuk membuat cluster di
    • 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) dari kunci AWS KMS untuk mengenkripsi rahasia 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, atau HOST.
    • 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 VPC AWS 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 Google Cloud Anda
  • PROJECT_ID: proyek Google Cloud Anda
  • USERNAME: pengguna yang dapat menjalankan operasi sebagai admin cluster
    • CLUSTER_NAME: nama cluster yang Anda pilih
    • GOOGLE_CLOUD_LOCATION: region Google Cloud yang didukung yang mengelola cluster Anda—misalnya, us-west1
    • AWS_REGION: region AWS untuk membuat cluster di
    • 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) dari kunci AWS KMS untuk mengenkripsi rahasia 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, atau HOST.
    • 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 VPC AWS 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 yang berhasil (2xx), serta respons yang kosong.

Untuk opsi tambahan, lihat dokumentasi referensi Metode: projects.locations.awsClusters.create.

Membuat node pool

gcloud

Contoh berikut akan membuat kumpulan node dengan host khusus. Saat Anda membuat kumpulan node, semua instance dalam kumpulan tersebut memiliki jenis instance dan setelan tenancy yang sama.

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

    • GOOGLE_CLOUD_LOCATION: region Google Cloud yang didukung
    • CLUSTER_NAME: nama cluster Anda
    • NODE_POOL_NAME: nama kumpulan node yang mengelola cluster Anda—misalnya, us-west1
    • MIN_NODES: jumlah minimum node yang dapat ditampung kumpulan node
    • MAX_NODES: jumlah maksimum node yang dapat ditampung kumpulan node
    • CONFIG_KMS_KEY_ARN: Amazon Resource Name (ARN) dari kunci AWS KMS yang mengenkripsi data pengguna
    • NODEPOOL_PROFILE: profil instance IAM untuk VM kumpulan node
    • ROOT_VOLUME_SIZE: ukuran yang diinginkan untuk volume root setiap node, dalam Gb
    • TENANCY_TYPE: Setelan untuk tenancy bidang kontrol. Dapat berupa DEFAULT, DEDICATED, atau HOST.
    • INSTANCE_TYPE: jenis instance mesin AWS yang diinginkan untuk kumpulan node ini
    • NODEPOOL_SUBNET: ID subnet tempat kumpulan node akan dijalankan. 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 akan membuat kumpulan node dengan host khusus. Saat Anda membuat kumpulan node, semua instance dalam kumpulan tersebut memiliki jenis instance dan setelan tenancy yang sama.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • ENDPOINT: endpoint layanan Google Cloud Anda
  • PROJECT_ID: proyek Google Cloud Anda
  • USERNAME: pengguna yang dapat menjalankan operasi sebagai admin cluster
    • GOOGLE_CLOUD_LOCATION: region Google Cloud yang didukung
    • CLUSTER_NAME: nama cluster Anda
    • NODE_POOL_NAME: nama kumpulan node yang mengelola cluster Anda—misalnya, us-west1
    • MIN_NODES: jumlah minimum node yang dapat ditampung kumpulan node
    • MAX_NODES: jumlah maksimum node yang dapat ditampung kumpulan node
    • CONFIG_KMS_KEY_ARN: Amazon Resource Name (ARN) dari kunci AWS KMS yang mengenkripsi data pengguna
    • NODEPOOL_PROFILE: profil instance IAM untuk VM kumpulan node
    • ROOT_VOLUME_SIZE: ukuran yang diinginkan untuk volume root setiap node, dalam Gb
    • TENANCY_TYPE: Setelan untuk tenancy bidang kontrol. Dapat berupa DEFAULT, DEDICATED, atau HOST.
    • INSTANCE_TYPE: jenis instance mesin AWS yang diinginkan untuk kumpulan node ini
    • NODEPOOL_SUBNET: ID subnet tempat kumpulan node akan dijalankan. 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 yang berhasil (2xx), serta respons yang kosong.

Untuk opsi tambahan, lihat dokumentasi referensi Metode: projects.locations.awsClusters.awsNodePools.create.

Pembersihan

Untuk menghapus cluster menggunakan host khusus, lakukan langkah-langkah berikut:

  1. Menghapus semua kumpulan node
  2. Hapus cluster.
  3. Setelah menghapus cluster dan kumpulan node, Anda dapat Merilis host khusus.

Langkah selanjutnya