Membuat cluster dengan host khusus

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 Anda
  • DEDICATED: meluncurkan instance di instance khusus
  • HOST: 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:

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

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, atau HOST.
    • 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, atau HOST.
    • 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:

  1. Hapus node pool apa pun
  2. Hapus cluster.
  3. Setelah menghapus node pool dan cluster, Anda dapat Merilis host khusus.

Langkah berikutnya