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 mewakili GKE di bidang kontrol AWS.

Untuk membuat cluster dari template ini, salin YAML berikut dan lengkapi 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

Subkolom pada spec dijelaskan di bagian berikut.

spec.networking

Objek ini menentukan konfigurasi jaringan tingkat cluster.

Nama Deskripsi Jenis Contoh Diperlukan
vpcID ID VPC tempat cluster Anda dijalankan. Bidang kontrol dan kumpulan node cluster pengguna berjalan dalam VPC tunggal. 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 aman digunakan 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 aman digunakan 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 di 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 menyertakan parameter umum untuk bidang kontrol cluster.

Nama Deskripsi Jenis Contoh Diperlukan
version 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 untuk 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 untuk cluster yang berfungsi. Jika Anda ingin menambahkan grup keamanan lain dengan akses ke replika bidang kontrol, tambahkan ID-nya ke securityGroupIDs. list(string) [sg-0ec06559d997a796f] tidak ada
iamInstanceProfile Nama profil instance EC2 AWS yang ditetapkan untuk replika bidang kontrol. string my-control-plane-profile ya
databaseEncryption.kmsKeyARN Nama resource Amazon (ARN) dari 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 register 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 ada
tags Metadata kunci/nilai yang ditetapkan ke setiap resource AWS yang mendukung AWSCluster. Untuk informasi selengkapnya, lihat Praktik terbaik pemberian tag map(string) {Lingkungan: Produksi, Tim: Analisis} tidak ada
proxySecretName Nama Secret yang dipilih pengguna dan digunakan untuk menentukan proxy jaringan khusus cluster string proxy-secret-0 tidak ada
workloadIdentity Bucket Cloud Storage untuk konfigurasi workload identity. Berisi satu kolom: oidcDiscoveryGCSBucket. object {oidcDiscoveryGCSBucket: my-bucket} tidak ada
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 Diperlukan
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 ada
iops Jumlah operasi IO per detik (IOPS) yang disediakan untuk volume. Hanya berlaku jika volumeType adalah GP3. Untuk informasi selengkapnya, lihat Volume SSD Tujuan Umum (gp3). integer 5000 tidak ada
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 ada

spec.authentication.awsIAM

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

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

spec.authentication.oidc

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

Kolom Diperlukan Deskripsi Format
certificateAuthorityData Tidak Sertifikat berenkode PEM yang dienkode base64 untuk penyedia OIDC. Untuk membuat string ini, 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 untuk 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 JWT mengklaim yang digunakan penyedia tersebut untuk menampilkan grup keamanan Anda. String
groupPrefix Tidak Awalan ditambahkan ke klaim grup untuk mencegah bentrokan dengan nama yang ada. Misalnya, dengan 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 guna memverifikasi token. URI harus menggunakan HTTPS. URL String
kubectlRedirectURI Ya URL alihan yang digunakan `kubectl` untuk otorisasi. URL String
cakupan Ya Cakupan tambahan untuk dikirim ke penyedia OpenID. Microsoft Azure dan Okta memerlukan cakupan offline_access. Daftar yang dipisahkan koma
userClaim Tidak JWT mengklaim untuk digunakan sebagai nama pengguna. Nilai defaultnya adalah `sub`, yang diharapkan menjadi ID unik pengguna akhir. Anda dapat memilih klaim lain, seperti email atau nama, tergantung penyedia OpenID. Namun, klaim selain email diawali dengan URL penerbit untuk mencegah konflik penamaan. String
userPrefix Tidak Awalan yang ditambahkan pada klaim nama pengguna untuk mencegah bentrokan dengan nama yang sudah ada. Jika Anda tidak memberikan kolom ini, dan nama pengguna adalah nilai selain alamat email, awalan akan ditetapkan secara default ke issuerurl#. Jika Anda menetapkan userPrefix ke -, awalan akan dinonaktifkan. String