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 |
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 |