Questo argomento descrive le opzioni di configurazione della definizione della risorsa personalizzata AWSCluster.
Definizione di un AWSCluster
AWSCluster
è una risorsa personalizzata Kubernetes definita da GKE su AWS. Questa risorsa rappresenta un piano di controllo GKE su AWS.
Per creare un cluster da questo modello, copia il seguente codice YAML e completa i valori evidenziati definiti nelle definizioni dei campi spec.networking
e spec.controlPlane
. Quindi, applica il manifest delle risorse al tuo servizio di gestione.
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
I campi secondari in spec
sono descritti nelle sezioni seguenti.
spec.networking
Questo oggetto definisce la configurazione di rete a livello di cluster.
Nome | Descrizione | Tipo | Esempio | Obbligatorio |
---|---|---|---|---|
vpcID | L'ID del VPC in cui viene eseguito il cluster. Il piano di controllo e i pool di nodi di un cluster utente vengono eseguiti in un'unica VPC. | string |
vpc-0814934042d983118 |
sì |
podAddressCIDRBlocks | Intervallo di indirizzi IPv4 utilizzati dai pod del cluster. Al momento è supportato un solo intervallo. L'intervallo non deve sovrapporsi ad alcuna subnet raggiungibile dalla tua rete. È possibile utilizzare lo stesso intervallo in più oggetti AWSCluster diversi. | list(string) |
[10.1.0.0/16] |
sì |
serviceAddressCIDRBlocks | Intervallo di indirizzi IPv4 utilizzati dai servizi del cluster. Al momento è supportato un solo intervallo. L'intervallo non deve sovrapporsi ad alcuna subnet raggiungibile dalla tua rete. È possibile utilizzare lo stesso intervallo in più oggetti AWSCluster diversi. | list(string) |
[10.2.0.0/16] |
sì |
serviceLoadBalancerSubnetIDs | ID subnet in cui GKE su AWS può creare bilanciatori del carico pubblici o privati. GKE su AWS applica tag a ciascuna di queste sottoreti per supportare il bilanciamento del carico. Il supporto di ALB richiede più di una subnet specificata. | list(string) |
[subnet-abcdefg, subnet-12345678] |
spec.controlPlane
Questo oggetto include i parametri comuni per il piano di controllo del cluster.
Nome | Descrizione | Tipo | Esempio | Obbligatorio |
---|---|---|---|---|
versione | La versione GKE del piano di controllo. Per ulteriori informazioni, consulta Versionamento e upgrade e Upgrade di un cluster di utenti. | string |
1.25.5-gke.2100 |
sì |
instanceType | Un tipo di istanza AWS EC2 per ogni replica del piano di controllo. Consulta la sezione Tipi di istanze supportati. | string |
m5.large |
sì |
keyName | La coppia di chiavi AWS EC2 assegnata a ogni replica del piano di controllo. | string |
my-key-pair |
sì |
subnetIDs | Un elenco di subnet VPC per le repliche del piano di controllo. | list(string) |
[subnet-06a004869a1eae947] |
sì |
securityGroupIDs | GKE su AWS crea automaticamente gruppi di sicurezza con le regole minime necessarie per il funzionamento di un cluster. Se vuoi aggiungere altri gruppi di sicurezza con accesso alle repliche del piano di controllo, aggiungi i relativi ID a securityGroupIDs . |
list(string) |
[sg-0ec06559d997a796f] |
no |
iamInstanceProfile | Il nome del profilo dell'istanza EC2 AWS assegnato alle repliche del piano di controllo. | string |
my-control-plane-profile |
sì |
databaseEncryption.kmsKeyARN | Il nome della risorsa Amazon (ARN) della chiave AWS KMS utilizzata da GKE su AWS per criptare i secret a livello di applicazione nei cluster. | string | arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee |
|
hub.membershipName | Il nome dell'abbonamento a Connect utilizzato per registrare il cluster. | string | projects/YOUR_PROJECT/locations/global/memberships/CLUSTER_NAME | |
cloudOperations | La configurazione di Cloud Logging e Cloud Monitoring per i nodi del piano di controllo. | object |
{projectID: YOUR_PROJECT, location: us-central1, enableLogging: true, enableMonitoring: true} | no |
tags | Metadati chiave/valore assegnati a ogni risorsa AWS che supporta AWSCluster. Per saperne di più, consulta le best practice per il tagging. | map(string) |
{Environment: Production, Team: Analytics} | no |
proxySecretName | Nome scelto dall'utente di un secret utilizzato per definire i proxy di rete specifici del cluster | string | proxy-secret-0 | no |
workloadIdentity | Bucket Cloud Storage per la configurazione di Workload Identity. Contiene un singolo campo: oidcDiscoveryGCSBucket . |
object |
{oidcDiscoveryGCSBucket: my-bucket} | no |
rootVolume | Parametri per i volumi principali delle repliche del control plane. Contiene un oggetto definito nella sezione seguente. | object |
{sizeGiB: 10} |
sì |
etcd | Parametri per i volumi etcd. Contiene un oggetto definito nella sezione seguente. | object |
{sizeGiB: 10} |
sì |
spec.controlPlane.rootVolume e spec.etcd.rootVolume
Questi campi si applicano sia a spec.controlPlane.rootVolume
sia a
spec.etcd.mainVolume
.
Nome | Descrizione | Tipo | Esempio | Obbligatorio |
---|---|---|---|---|
sizeGiB | Dimensioni del volume principale in gigabyte. | integer |
10 |
sì |
volumeType | Il tipo di volume EBS AWS del nodo del control plane. Può essere gp2 (predefinito) o gp3 . |
string |
gp2 |
no |
IOPS | La quantità di operazioni di I/O sottoposte a provisioning al secondo (IOPS) per i volumi. Valido solo quando volumeType è GP3 . Per ulteriori informazioni, consulta Volumi SSD general purpose (gp3). |
integer |
5000 |
no |
kmsKeyARN | L'ARN della chiave AWS KMS utilizzata per criptare il volume EBS. Per saperne di più, consulta Utilizzare una CMK gestita dal cliente per criptare i volumi. | string |
arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee |
no |
spec.authentication.awsIAM
Questo oggetto specifica i ruoli a cui è stato concesso l'accesso come amministratore del cluster con AWS IAM.
Nome | Descrizione | Tipo | Esempio | Obbligatorio |
---|---|---|---|---|
adminIdentityARNs | ARN degli utenti o dei ruoli AWS IAM a cui è stato concesso l'accesso come amministratore del cluster. | string | arn:aws:iam::123456789012:user/admin |
Obbligatorio solo se utilizzi l'autenticazione AWS IAM. |
spec.authentication.oidc
Puoi specificare più di un oggetto oidc
. L'oggetto oidc
è definito di seguito.
Per ulteriori informazioni, consulta la sezione Autenticazione con OIDC.
Campo | Obbligatorio | Descrizione | Formato |
---|---|---|---|
certificateAuthorityData | No | Un
certificato con codifica PEM con codifica Base64 per il provider OIDC. Per creare la stringa, codifica il certificato, incluse le intestazioni, in base64. Includi la stringa risultante in certificateAuthorityData come singola riga. Esempio:
certificateAuthorityData: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT== |
Stringa |
clientID | Sì | ID per l'applicazione client che effettua richieste di autenticazione al provider OpenID. | Stringa |
clientSecret | No | Secret condiviso tra applicazione client OIDC e provider OIDC. | Stringa |
extraParams | No |
Parametri coppia chiave-valore aggiuntivi da inviare al provider OpenID. Se stai
autorizzando un gruppo, passa resource=token-groups-claim .
Se il server di autorizzazione richiede il consenso, per l'autenticazione con
Microsoft Azure e Okta, imposta |
Elenco separato da virgole |
groupsClaim | No | Attestazione JWT utilizzata dal provider per restituire i tuoi gruppi di sicurezza. | Stringa |
groupPrefix | No | Prefisso anteposto alle attestazioni dei gruppi per evitare conflitti con i nomi esistenti. Ad esempio, dato un gruppo foobar e un prefisso gid-, gid-foobar. | Stringa |
issuerURI | Sì | URL a cui vengono inviate le richieste di autorizzazione al tuo OpenID, ad esempio
https://example.com/adfs . Il server API Kubernetes utilizza questo URL
per rilevare le chiavi pubbliche per la verifica dei token. L'URI deve utilizzare HTTPS. |
Stringa URL |
kubectlRedirectURI | Sì | L'URL di reindirizzamento utilizzato da "kubectl" per l'autorizzazione. | Stringa URL |
ambiti | Sì | Ambiti aggiuntivi da inviare al provider OpenID. Microsoft Azure e Okta
richiedono l'ambito offline_access . |
Elenco separato da virgole |
userClaim | No | Attestazione JWT da utilizzare come nome utente. Il valore predefinito è "sub", che dovrebbe essere un identificatore univoco dell'utente finale. Puoi scegliere altre attestazioni, ad esempio email o nome, a seconda del provider OpenID. Tuttavia, alle attestazioni diverse dall'indirizzo email viene aggiunto come prefisso l'URL dell'emittente per evitare conflitti di denominazione. | Stringa |
userPrefix | No | Prefisso anteposto alle attestazioni dei nomi utente per evitare conflitti con i nomi esistenti.
Se non fornisci questo campo e il nome utente è un valore diverso da un indirizzo email, il prefisso predefinito è issuerurl# . Quando imposti userPrefix su - , il prefisso viene disattivato.
| Stringa |