AWSCluster

Topik ini menjelaskan opsi konfigurasi Definisi Resource Kustom AWSCluster.

Menentukan AWSCluster

AWSCluster adalah resource kustom Kubernetes yang ditentukan oleh GKE di AWS. Resource ini merepresentasikan bidang kontrol GKE di AWS.

Untuk membuat cluster dari template ini, salin YAML berikut dan selesaikan nilai yang ditandai yang ditentukan dalam definisi kolom spec.networking dan spec.controlPlane. Kemudian, terapkan manifes resource ke layanan pengelolaan Anda.

apiVersion: multicloud.cluster.gke.io/v1
kind: AWSCluster
metadata:
  name: CLUSTER_NAME
spec:
  region: AWS_REGION
  networking:
    vpcID: VPC_ID
    podAddressCIDRBlocks: POD_ADDRESS_CIDR_BLOCKS
    serviceAddressCIDRBlocks: SERVICE_ADDRESS_CIDR_BLOCKS
    serviceLoadBalancerSubnetIDs: SERVICE_LOAD_BALANCER_SUBNETS
  controlPlane:
    version: GKE_VERSION # Latest version is 1.25.5-gke.2100
    instanceType: AWS_INSTANCE_TYPE
    keyName: SSH_KEY_NAME
    subnetIDs:
    - CONTROL_PLANE_SUBNET_IDS
    securityGroupIDs:
    - CONTROL_PLANE_SECURITY_GROUPS
    iamInstanceProfile: CONTROL_PLANE_IAM_ROLE
    databaseEncryption:
      kmsKeyARN: ARN_OF_KMS_KEY
    hub:
      membershipName: ANTHOS_CONNECT_NAME
    cloudOperations: # Optional
      projectID: YOUR_PROJECT
      location: GCP_LOCATION
      enableLogging: ENABLE_LOGGING
      enableMonitoring: ENABLE_MONITORING
    tags:
      TAG_KEY: TAG_VALUE
    proxySecretName: PROXY_SECRET_NAME
    workloadIdentity:
      oidcDiscoveryGCSBucket: WORKLOAD_IDENTITY_BUCKET
    rootVolume:  # Optional
      sizeGiB: ROOT_VOLUME_SIZE
      volumeType: ROOT_VOLUME_TYPE
      iops: ROOT_VOLUME_IOPS
      kmsKeyARN: ROOT_VOLUME_KEY
    etcd:  # Optional
      mainVolume:
        sizeGiB: ETCD_VOLUME_SIZE
        volumeType: ETCD_VOLUME_TYPE
        iops: ETCD_VOLUME_IOPS
        kmsKeyARN: ETCD_VOLUME_KEY
  authentication:
    awsIAM:
      adminIdentityARNs: ADMIN_IAM_ARN
    oidc: # Optional
    - certificateAuthorityData: CERTIFICATE_STRING
      clientID: CLIENT_ID
      clientSecret: CLIENT_SECRET
      extraParams:  EXTRA_PARAMS
      groupsClaim:  GROUPS_CLAIM
      groupPrefix:  GROUP_PREFIX
      issuerURI:  ISSUER_URL
      kubectlRedirectURI:  KUBECTL_REDIRECT_URL
      scopes:  SCOPES
      userClaim:  USER_CLAIM
      userPrefix:  USER_PREFIX

Sub-bidang di bagian spec dijelaskan di bagian berikut.

spec.networking

Objek ini menentukan konfigurasi jaringan di seluruh cluster.

Nama Deskripsi Jenis Contoh Wajib
vpcID ID VPC tempat cluster Anda berjalan. Bidang kontrol dan node pool cluster pengguna berjalan di satu VPC. string vpc-0814934042d983118 ya
podAddressCIDRBlocks Rentang alamat IPv4 yang digunakan oleh pod cluster. Saat ini, hanya satu rentang yang didukung. Rentang tidak boleh tumpang tindih dengan subnet yang dapat dijangkau dari jaringan Anda. Rentang yang sama dapat digunakan dengan aman di beberapa objek AWSCluster yang berbeda. list(string) [10.1.0.0/16] ya
serviceAddressCIDRBlocks Rentang alamat IPv4 yang digunakan oleh layanan cluster. Saat ini, hanya satu rentang yang didukung. Rentang tidak boleh tumpang tindih dengan subnet yang dapat dijangkau dari jaringan Anda. Rentang yang sama dapat digunakan dengan aman di beberapa objek AWSCluster yang berbeda. list(string) [10.2.0.0/16] ya
serviceLoadBalancerSubnetIDs ID subnet tempat GKE di AWS dapat membuat load balancer publik atau pribadi. GKE on AWS menerapkan tag ke setiap subnet ini untuk mendukung load balancing. Dukungan ALB memerlukan lebih dari satu subnet yang ditentukan. list(string) [subnet-abcdefg, subnet-12345678]

spec.controlPlane

Objek ini mencakup parameter umum untuk bidang kontrol cluster.

Nama Deskripsi Jenis Contoh Wajib
versi Versi GKE bidang kontrol. Lihat Pembuatan versi dan upgrade serta mengupgrade cluster pengguna untuk mengetahui informasi selengkapnya. string 1.25.5-gke.2100 ya
instanceType Jenis instance AWS EC2 untuk setiap replika bidang kontrol. Lihat Jenis instance yang didukung. string m5.large ya
keyName Pasangan kunci AWS EC2 yang ditetapkan ke setiap replika bidang kontrol. string my-key-pair ya
subnetIDs Daftar Subnet VPC untuk replika bidang kontrol. list(string) [subnet-06a004869a1eae947] ya
securityGroupIDs GKE di AWS secara otomatis membuat grup keamanan dengan aturan minimum yang diperlukan agar cluster berfungsi. Jika Anda ingin menambahkan grup keamanan tambahan dengan akses ke replika bidang kontrol, tambahkan ID-nya ke securityGroupIDs. list(string) [sg-0ec06559d997a796f] tidak
iamInstanceProfile Nama profil instance EC2 AWS yang ditetapkan ke replika bidang kontrol. string my-control-plane-profile ya
databaseEncryption.kmsKeyARN Amazon Resource Name (ARN) kunci AWS KMS yang digunakan GKE di AWS untuk mengenkripsi rahasia lapisan aplikasi dalam cluster. string arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
hub.membershipName Nama keanggotaan Connect yang digunakan untuk mendaftarkan cluster Anda. string projects/YOUR_PROJECT/locations/global/memberships/CLUSTER_NAME
cloudOperations Konfigurasi Cloud Logging dan Cloud Monitoring untuk node bidang kontrol. object {projectID: YOUR_PROJECT, location: us-central1, enableLogging: true, enableMonitoring: true} tidak
tags Metadata key/value yang ditetapkan ke setiap resource AWS yang mendukung AWSCluster. Untuk mengetahui informasi selengkapnya, lihat Praktik terbaik pemberian tag map(string) {Environment: Production, Team: Analytics} tidak
proxySecretName Nama Secret pilihan pengguna yang digunakan untuk menentukan proxy jaringan khusus cluster string proxy-secret-0 tidak
workloadIdentity Bucket Cloud Storage untuk konfigurasi workload identity. Berisi satu kolom: oidcDiscoveryGCSBucket. object {oidcDiscoveryGCSBucket: my-bucket} tidak
rootVolume Parameter untuk volume root replika bidang kontrol. Berisi objek yang ditentukan di bagian berikut. object {sizeGiB: 10} ya
etcd Parameter untuk volume etcd. Berisi objek yang ditentukan di bagian berikut. object {sizeGiB: 10} ya

spec.controlPlane.rootVolume dan spec.etcd.rootVolume

Kolom ini berlaku untuk spec.controlPlane.rootVolume dan spec.etcd.mainVolume.

Nama Deskripsi Jenis Contoh Wajib
sizeGiB Ukuran volume root dalam Gigabyte. integer 10 ya
volumeType Jenis volume EBS AWS node bidang kontrol. Dapat berupa gp2 (default) atau gp3. string gp2 tidak
iops Jumlah operasi input/output per detik (IOPS) yang disediakan untuk volume. Hanya valid jika volumeType adalah GP3. Untuk mengetahui informasi selengkapnya, lihat Volume SSD Tujuan Umum (gp3). integer 5000 tidak
kmsKeyARN ARN kunci AWS KMS yang digunakan untuk mengenkripsi volume EBS. Untuk mengetahui informasi selengkapnya, lihat Menggunakan CMK yang dikelola pelanggan untuk mengenkripsi volume. string arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee tidak

spec.authentication.awsIAM

Objek ini menentukan peran yang diberi akses administrator cluster dengan AWS IAM.

Nama Deskripsi Jenis Contoh Wajib
adminIdentityARNs ARN pengguna atau peran AWS IAM yang diberi akses administrator cluster. string arn:aws:iam::123456789012:user/admin Hanya diperlukan jika menggunakan autentikasi IAM AWS.

spec.authentication.oidc

Anda dapat menentukan lebih dari satu objek oidc. Objek oidc ditentukan di bawah. Untuk mengetahui informasi selengkapnya, lihat Mengautentikasi dengan OIDC.

Kolom Diperlukan Deskripsi Format
certificateAuthorityData Tidak Sertifikat berenkode PEM berenkode base64 untuk penyedia OIDC. Untuk membuat string, enkode sertifikat, termasuk header, ke dalam base64. Sertakan string yang dihasilkan di certificateAuthorityData sebagai satu baris. Contoh: certificateAuthorityData: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT== String
clientID Ya ID untuk aplikasi klien yang membuat permintaan autentikasi ke penyedia OpenID. String
clientSecret Tidak Rahasia bersama antara aplikasi klien OIDC dan penyedia OIDC. String
extraParams Tidak Parameter nilai kunci tambahan yang akan dikirim ke penyedia OpenID. Jika Anda memberikan otorisasi ke grup, teruskan resource=token-groups-claim.

Jika server otorisasi Anda meminta izin, untuk autentikasi dengan Microsoft Azure dan Okta, tetapkan extraParams ke prompt=consent. Untuk Google Cloud Identity, tetapkan extraParams ke prompt=consent,access_type=offline.

Daftar yang dipisahkan koma
groupsClaim Tidak Klaim JWT yang digunakan penyedia untuk menampilkan grup keamanan Anda. String
groupPrefix Tidak Awalan ditambahkan ke klaim grup untuk mencegah konflik dengan nama yang sudah ada. Misalnya, jika ada grup foobar dan awalan gid-, gid-foobar. String
issuerURI Ya URL tempat permintaan otorisasi dikirim ke OpenID Anda, seperti https://example.com/adfs. Server Kubernetes API menggunakan URL ini untuk menemukan kunci publik agar dapat memverifikasi token. URI harus menggunakan HTTPS. URL String
kubectlRedirectURI Ya URL pengalihan yang digunakan `kubectl` untuk otorisasi. URL String
cakupan Ya Cakupan tambahan yang akan dikirim ke penyedia OpenID. Microsoft Azure dan Okta memerlukan cakupan offline_access. Daftar yang dipisahkan koma
userClaim Tidak Klaim JWT yang akan digunakan sebagai nama pengguna. Nilai defaultnya adalah `sub`, yang diharapkan berupa ID unik pengguna akhir. Anda dapat memilih klaim lain, seperti email atau nama, bergantung pada penyedia OpenID. Namun, klaim selain email diberi awalan URL penerbit untuk mencegah bentrokan penamaan. String
userPrefix Tidak Awalan ditambahkan ke klaim nama pengguna untuk mencegah konflik dengan nama yang sudah ada. Jika Anda tidak memberikan kolom ini, dan nama pengguna adalah nilai selain alamat email, awalan defaultnya adalah issuerurl#. Jika Anda menetapkan userPrefix ke -, pemberian awalan akan dinonaktifkan. String