Este tema describe las opciones de configuración de la definición de recurso personalizado de AWSCluster.
Definición de un AWSCluster
AWSCluster
es un recurso personalizado de Kubernetes definido por GKE en AWS. Este recurso representa un plano de control de GKE en AWS.
Para crear un clúster a partir de esta plantilla, copie el siguiente YAML y complete los valores resaltados definidos en los campos spec.networking
y spec.controlPlane
. A continuación, aplique el manifiesto de recursos a su servicio de administración.
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
Los subcampos bajo spec
se describen en las siguientes secciones.
redes de especificaciones
Este objeto define la configuración de red de todo el clúster.
Nombre | Descripción | Tipo | Ejemplo | Requerido |
---|---|---|---|---|
vpcID | El ID de la VPC donde se ejecuta el clúster. El plano de control y los grupos de nodos de un clúster de usuario se ejecutan en una sola VPC. | string | vpc-0814934042d983118 | Sí |
podAddressCIDRBlocks | Rango de direcciones IPv4 utilizadas por los pods del clúster. Actualmente, solo se admite un rango. Este rango no debe solaparse con ninguna subred accesible desde su red. Es seguro usar el mismo rango en varios objetos de AWSCluster. | list(string) | [10.1.0.0/16] | Sí |
serviceAddressCIDRBlocks | Rango de direcciones IPv4 utilizadas por los servicios del clúster. Actualmente, solo se admite un rango. Este rango no debe solaparse con ninguna subred accesible desde su red. Es seguro usar el mismo rango en varios objetos de AWSCluster. | list(string) | [10.2.0.0/16] | Sí |
ID de subred del balanceador de carga de servicio | ID de subred donde GKE en AWS puede crear balanceadores de carga públicos o privados. GKE en AWS aplica etiquetas a cada una de estas subredes para facilitar el balanceo de carga. La compatibilidad con ALB requiere más de una subred especificada. | list(string) | [subnet-abcdefg, subnet-12345678] |
plano de control de especificación
Este objeto incluye parámetros comunes para el plano de control del clúster.
Nombre | Descripción | Tipo | Ejemplo | Requerido |
---|---|---|---|---|
versión | La versión de GKE del plano de control. Consulta Control de versiones y actualizaciones y Actualización de un clúster de usuarios para obtener más información. | string | 1.25.5-gke.2100 | Sí |
tipo de instancia | Un tipo de instancia de AWS EC2 para cada réplica del plano de control. Consulte Tipos de instancias compatibles . | string | m5.large | Sí |
nombreclave | El par de claves de AWS EC2 asignado a cada réplica del plano de control. | string | my-key-pair | Sí |
ID de subred | Una lista de subredes de VPC para réplicas del plano de control. | list(string) | [subnet-06a004869a1eae947] | Sí |
ID de grupo de seguridad | GKE en AWS crea automáticamente grupos de seguridad con las reglas mínimas necesarias para un clúster funcional. Si desea agregar grupos de seguridad adicionales con acceso a réplicas del plano de control, agregue sus ID a securityGroupIDs . | list(string) | [sg-0ec06559d997a796f] | No |
iamInstanceProfile | El nombre del perfil de instancia de AWS EC2 asignado a las réplicas del plano de control. | string | my-control-plane-profile | Sí |
cifrado de base de datos.kmsKeyARN | El nombre de recurso de Amazon (ARN) de la clave AWS KMS que GKE en AWS usa para cifrar los secretos de la capa de aplicación en los clústeres. | cadena | arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee | |
hub.nombreMembresía | El nombre de membresía de Connect utilizado para registrar su clúster. | cadena | proyectos/ YOUR_PROJECT /ubicaciones/global/membresías/ CLUSTER_NAME | |
Operaciones en la nube | La configuración de registro en la nube y monitoreo en la nube para los nodos del plano de control. | object | {ID de proyecto: YOUR_PROJECT , ubicación: us-central1, enableLogging: verdadero, enableMonitoring: verdadero} | No |
etiquetas | Metadatos de clave-valor asignados a cada recurso de AWS que respalda el AWSCluster. Para obtener más información, consulte las prácticas recomendadas de etiquetado. | map(string) | {Entorno: Producción, Equipo: Analítica} | No |
nombreSecretoProxy | Nombre elegido por el usuario de un secreto utilizado para definir servidores proxy de red específicos del clúster | cadena | proxy-secreto-0 | No |
Identidad de carga de trabajo | Bucket de Cloud Storage para la configuración de la identidad de la carga de trabajo . Contiene un solo campo: oidcDiscoveryGCSBucket . | object | {oidcDiscoveryGCSBucket: mi-cubo} | No |
volumen raíz | Parámetros para volúmenes raíz de réplicas del plano de control. Contiene un objeto definido en la siguiente sección. | object | {sizeGiB: 10} | Sí |
etcd | Parámetros para volúmenes etcd. Contiene un objeto definido en la siguiente sección. | object | {sizeGiB: 10} | Sí |
spec.controlPlane.rootVolume y spec.etcd.rootVolume
Estos campos se aplican tanto a spec.controlPlane.rootVolume
como spec.etcd.mainVolume
.
Nombre | Descripción | Tipo | Ejemplo | Requerido |
---|---|---|---|---|
tamañoGiB | Tamaño del volumen raíz en Gigabytes. | integer | 10 | Sí |
tipo de volumen | El tipo de volumen de AWS EBS del nodo del plano de control. Puede ser gp2 (predeterminado) o gp3 . | string | gp2 | No |
yops | Cantidad de operaciones de E/S por segundo (IOPS) aprovisionadas para volúmenes. Solo es válido cuando volumeType es GP3 . Para más información, consulte Volúmenes SSD de propósito general (gp3) . | integer | 5000 | No |
kmsKeyARN | El ARN de la clave AWS KMS utilizada para cifrar el volumen EBS. Para obtener más información, consulte "Uso de una CMK administrada por el cliente para cifrar volúmenes" . | string | arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee | No |
especificación.autenticación.awsIAM
Este objeto especifica los roles a los que se les otorga acceso de administrador de clúster con AWS IAM.
Nombre | Descripción | Tipo | Ejemplo | Requerido |
---|---|---|---|---|
ARN de identidad de administrador | ARN de usuarios o roles de AWS IAM a los que se les otorgó acceso de administrador de clúster. | cadena | arn:aws:iam::123456789012:user/admin | Solo es necesario si se utiliza la autenticación de AWS IAM. |
especificación.autenticación.oidc
Puede especificar más de un objeto oidc
. El objeto oidc
se define a continuación. Para obtener más información, consulte Autenticación con OIDC .
Campo | Requerido | Descripción | Formato |
---|---|---|---|
Datos de la autoridad del certificado | No | Un certificado codificado en base64 y con codificación PEM para el proveedor OIDC. Para crear la cadena, codifique el certificado, incluidos los encabezados, en base64. Incluya la cadena resultante en certificateAuthorityData como una sola línea. Ejemplo: certificateAuthorityData: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT== | Cadena |
ID de cliente | Sí | ID de la aplicación cliente que realiza solicitudes de autenticación al proveedor de OpenID. | Cadena |
clienteSecreto | No | Secreto compartido entre la aplicación cliente OIDC y el proveedor OIDC. | Cadena |
parámetros adicionales | No | Parámetros clave-valor adicionales para enviar al proveedor de OpenID. Si autoriza un grupo, pase resource=token-groups-claim . Si su servidor de autorización solicita el consentimiento, para la autenticación con Microsoft Azure y Okta, configure | Lista delimitada por comas |
gruposReclamación | No | Reclamo JWT que el proveedor utiliza para devolver sus grupos de seguridad. | Cadena |
prefijo de grupo | No | Se añade un prefijo a las reclamaciones de grupo para evitar conflictos con nombres existentes. Por ejemplo, dado un grupo foobar y un prefijo gid-, gid-foobar. | Cadena |
emisorURI | Sí | URL donde se envían las solicitudes de autorización a tu OpenID, como https://example.com/adfs . El servidor de la API de Kubernetes utiliza esta URL para descubrir claves públicas y verificar tokens. La URI debe usar HTTPS. | Cadena de URL |
URI de redireccionamiento de kubectl | Sí | La URL de redireccionamiento que `kubectl` utiliza para la autorización. | Cadena de URL |
alcances | Sí | Ámbitos adicionales para enviar al proveedor de OpenID. Microsoft Azure y Okta requieren el ámbito offline_access . | Lista delimitada por comas |
Reclamación del usuario | No | Reclamo JWT que se usa como nombre de usuario. El valor predeterminado es `sub`, que se espera que sea un identificador único del usuario final. Puede elegir otros reclamos, como correo electrónico o nombre, según el proveedor de OpenID. Sin embargo, los reclamos que no sean de correo electrónico se prefijan con la URL del emisor para evitar conflictos de nombres. | Cadena |
prefijo de usuario | No | Se añade un prefijo a las reclamaciones de nombre de usuario para evitar conflictos con nombres existentes. Si no se proporciona este campo y el nombre de usuario es un valor distinto de una dirección de correo electrónico, el prefijo predeterminado es issuerurl# . Al establecer userPrefix en - , se deshabilita el prefijo. | Cadena |