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