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 dicadangkan untuk penggunaan Anda sendiri 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.
  • Hingga tiga subnet AWS untuk tiga replika bidang kontrol. Setiap instance harus berada di Zona Ketersediaan AWS yang berbeda.
  • Peran IAM AWS yang diasumsikan GKE di AWS saat mengelola cluster Anda. Tindakan ini memerlukan serangkaian izin IAM tertentu.
  • Kunci CMK simetris KMS untuk enkripsi saat istirahat data (etcd) dan konfigurasi cluster.
  • Profil instance IAM AWS untuk setiap replika bidang kontrol. Tindakan 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 tercakup dalam 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 pada instance khusus
  • HOST: meluncurkan instance di host khusus

Sebelum membuat cluster atau node pool, tentukan opsi mana 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 masa sewa dalam cluster

Anda dapat mengonfigurasi setelan tenancy secara terpisah untuk setiap bidang kontrol dan kumpulan node. Misalnya, Anda dapat membuat cluster dengan bidang kontrol di host bersama, node pool di host khusus, dan node pool lain di host bersama.

Mengalokasikan host khusus

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

  • Gunakan keluarga instance yang sama dengan yang dibutuhkan 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 memperbarui setelan tenancy node pool. Untuk memindahkan workload ke instance dengan setelan kepemilikan lain, buat node pool baru dengan kepemilikan yang diinginkan, lalu hapus node pool yang ada.

Jenis instance yang didukung

GKE di AWS mendukung host khusus dari keluarga instance berikut.

  • t3
  • m5
  • m5d
  • c5
  • c5d
  • r5
  • r5d
  • i3en

Keluarga instance lainnya tidak didukung.

Jenis node

Hanya node pool 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 yang didukung Google Cloud yang mengelola cluster Anda—misalnya, us-west1
    • AWS_REGION: region AWS tempat membuat cluster
    • API_ROLE_ARN: ARN peran API Multi-Cloud GKE
    • 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: A 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: Google Cloud endpoint layanan
  • PROJECT_ID: project Google Cloud Anda
  • USERNAME: pengguna yang dapat melakukan operasi sebagai admin cluster
    • CLUSTER_NAME: nama cluster yang Anda pilih
    • GOOGLE_CLOUD_LOCATION: region yang didukung Google Cloud yang mengelola cluster Anda—misalnya, us-west1
    • AWS_REGION: region AWS tempat membuat cluster
    • API_ROLE_ARN: ARN peran API Multi-Cloud GKE
    • 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: A 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 menandakan proses berhasil (2xx), dan sebuah respons kosong.

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

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 Google Cloud yang didukung
    • 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) dari 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: A 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: Google Cloud endpoint layanan
  • PROJECT_ID: project Google Cloud Anda
  • USERNAME: pengguna yang dapat melakukan operasi sebagai admin cluster
    • GOOGLE_CLOUD_LOCATION: region Google Cloud yang didukung
    • 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) dari 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: A 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 menandakan proses berhasil (2xx), dan sebuah respons kosong.

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

Pembersihan

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

  1. Menghapus node pool
  2. Hapus cluster.
  3. Setelah menghapus node pool dan cluster, Anda dapat Melepaskan host khusus.

Langkah berikutnya