Este documento muestra cómo enrutar el tráfico desde GKE en AWS a través de un proxy HTTP/HTTPS. La configuración del proxy se especifica al crear un clúster.
Descripción general
GKE en AWS puede enrutar el tráfico de Internet saliente a través de un proxy por los siguientes motivos:
- Para registrar clústeres con Google Cloud a través de Connect
- Para ejecutar el Agente de Conexión
- Para descargar imágenes de Container Registry
Limitaciones
- Los campos
httpProxy
yhttpsProxy
no admiten URL que empiecen porhttps://
. Debe usarhttp://
. Las solicitudes al puerto 443 usan HTTPS. - Debe establecer valores para
httpProxy
,httpsProxy
ynoProxy
. - Es posible que necesite agregar dominios, IP o CIDR adicionales al campo
noProxy
. Recomendamos agregar el rango de IP de la VPC. A partir de la versión 1.22 de Google Kubernetes Engine, GKE en AWS agrega automáticamente el CIDR de la dirección del pod y el CIDR de la dirección del servicio.
Prerrequisitos
Esta sección describe los requisitos previos que debes aplicar antes de usar un proxy.
Habilitar puntos finales de VPC
Antes de configurar un proxy, debe crear puntos finales de VPC para su instalación de GKE en AWS.
Los puntos finales de VPC permiten que los recursos en subredes privadas accedan a los servicios de AWS sin acceso público a Internet.
En la siguiente tabla se enumeran los servicios de AWS para los que GKE en AWS requiere puntos finales de VPC, junto con el tipo de punto final y los grupos de seguridad que requieren acceso al punto final.
Servicio | Tipo de punto final | Grupos de seguridad |
---|---|---|
Escalado automático | Interfaz | Plano de control, grupos de nodos |
EC2 | Interfaz | Plano de control, grupos de nodos |
EFS | Interfaz | Plano de control |
Equilibrio de carga | Interfaz | Plano de control, grupos de nodos |
Servicio de gestión de claves | Interfaz | Plano de control, grupos de nodos |
S3 | Puerta | Plano de control, grupos de nodos |
Administrador de secretos | Interfaz | Plano de control, grupos de nodos |
Servicio de token de seguridad (STS) | Interfaz | Plano de control, grupos de nodos |
Puede crear puntos de conexión desde la consola de AWS VPC . Las opciones que configure al crear puntos de conexión de VPC dependerán de su configuración.
Definir un grupo de seguridad
GKE en AWS debe poder conectarse al servidor proxy para descargar componentes de software. Cree o localice un grupo de seguridad de AWS que permita conexiones salientes a su servidor proxy. Este grupo de seguridad debe permitir el acceso saliente desde el plano de control y los grupos de seguridad del grupo de nodos a la dirección y el puerto del proxy. Guarde el ID de este grupo de seguridad; por ejemplo, sg-12345678
.
Tipo | Protocolo | Desde el puerto | A puerto | DIRECCIÓN |
---|---|---|---|---|
Salida | TCP | Puerto proxy | Puerto proxy | Grupo de seguridad de proxy |
Lista de permitidos de proxy
Para que GKE en AWS se conecte a los servicios de Google Cloud, el servidor proxy debe permitir el tráfico a los siguientes dominios.
.gcr.io
cloudresourcemanager.googleapis.com
container.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
oauth2.googleapis.com
securetoken.googleapis.com
storage.googleapis.com
sts.googleapis.com
www.googleapis.com
servicecontrol.googleapis.com
logging.googleapis.com
monitoring.googleapis.com
opsconfigmonitoring.googleapis.com
GCP_LOCATION-gkemulticloud.googleapis.com
Reemplace GCP_LOCATION
con el Google Cloud Región donde reside su clúster de GKE Enterprise. Especifique us-west1
u otra región compatible .
Actualizar roles de AWS IAM
Para que GKE en AWS lea la configuración de proxy de AWS Secrets Manager, debe agregar secretsmanager:GetSecretValue
a la función del plano de control y a la función del grupo de nodos de su clúster.
Para añadir este permiso, agréguelo a su plano de control y a la política del grupo de nodos. Para obtener más información, consulte Edición de políticas de IAM .
Crear un archivo de configuración de proxy
La configuración del proxy se almacena en un secreto de AWS Secrets Manager como una cadena JSON. Puede pasar esta configuración a la herramienta de línea de comandos aws
como un archivo. Esta sección describe cómo crear dicho archivo.
La siguiente tabla describe el contenido de este archivo.
Campo | Descripción | Ejemplos | Requerido |
---|---|---|---|
httpProxy | La URL de un servidor proxy. El valor debe incluir un nombre de host/dirección IP y, opcionalmente, un puerto, un nombre de usuario y una contraseña. | "http://user:password@10.184.37.42:80" "10.184.37.42" | Sí |
httpsProxy | Una URL de proxy para tráfico HTTPS cifrado. La URL httpProxy se usará si el valor de httpsProxy está vacío. | "http://10.101.16.31:80" | Sí |
noProxy | Una lista de URL separadas por comas que se excluirán del proxy. Cada valor puede ser una dirección IP, un rango CIDR, un nombre de dominio o el asterisco (*). Los dominios especificados con un punto inicial (por ejemplo, `.google.com`) indican que se requiere un subdominio. Un solo asterisco * ignora toda la configuración del proxy. | "1.2.3.4,10.0.0.0/16,example.com,.site.com" | Sí |
Para crear el archivo de configuración, cree un archivo JSON que contenga valores para
httpProxy
,noProxy
y claveshttpsProxy
opcionales.{ "httpProxy": "AUTHENTICATION_URL", "httpsProxy": "AUTHENTICATION_URL", "noProxy": "NO_PROXY_ADDRESSES" }
Reemplace lo siguiente:
-
AUTHENTICATION_URL
: URL codificada que contiene el nombre de usuario y la contraseña del proxy -
NO_PROXY_ADDRESSES
: Lista separada por comas de bloques CIDR y URL; por ejemplo,10.0.0.0/16,http://example.com
http://example.com
Guarde el archivo para utilizarlo en la siguiente sección.
-
Cree un secreto con estos datos JSON como secreto en AWS Secrets Manager utilizando la herramienta de línea de comandos
aws
.aws secretsmanager create-secret \ --name SECRET_NAME \ --secret-string file://PROXY_CONFIGURATION_FILE
Reemplace lo siguiente:
-
SECRET_NAME
: el nombre del nuevo secreto -
PROXY_CONFIGURATION_FILE
: la ruta a su archivo de configuración de proxy.
La salida incluye el nombre del recurso de Amazon (ARN) y el contenido del secreto. Ahora puede hacer referencia a este secreto al crear un clúster.
-
Crear un clúster que utilice un proxy
Para configurar GKE en AWS para usar un proxy HTTP para la conectividad saliente, realice los siguientes pasos:
Siga los pasos en Crear un clúster y pase los indicadores proxy-secret-arn
y proxy-secret-version-id
.
gcloud container aws clusters create CLUSTER_NAME \
--proxy-secret-arn=PROXY_SECRET_ARN \
--proxy-secret-version-id=PROXY_SECRET_VERSION \
Reemplace lo siguiente:
-
CLUSTER_NAME
: el nombre de su clúster -
PROXY_SECRET_ARN
: el ARN del secreto que contiene la configuración del proxy; por ejemploarn:aws::secretsmanager:us-east-2:111122223333:secret:example/ExampleSecret-jiObOV
-
PROXY_SECRET_VERSION
: el ID de la versión de los secretos, por ejemplo,EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE
Actualizar la configuración del proxy
Puede actualizar la configuración del proxy de un plano de control de clúster o un grupo de nodos. Para actualizar el ARN de configuración del proxy, primero debe actualizar el rol de IAM de AWS del plano de control o del grupo de nodos.
Actualizar roles de AWS IAM
Antes de cambiar el ARN donde se almacena la configuración del proxy, debe confirmar que los roles de plano de control y de grupo de nodos de su clúster tengan acceso de lectura al ARN secreto. Si su instrucción IAM con el permiso secretsmanager:GetSecretValue
se limita a ARN de recursos específicos, agregue el nuevo ARN secreto a esa lista antes de actualizar la configuración del proxy.
Actualizar la configuración del proxy del clúster
Para actualizar la configuración del proxy de su clúster, utilice la CLI de Google Cloud.
gcloud container aws clusters update CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--proxy-secret-arn=PROXY_SECRET_ARN \
--proxy-secret-version-id=PROXY_SECRET_VERSION
Reemplace lo siguiente:
-
CLUSTER_NAME
: el nombre de su clúster -
GOOGLE_CLOUD_LOCATION
: la ubicación compatible Google Cloud región que administra su clúster -
PROXY_SECRET_ARN
: el ARN del secreto que contiene las configuraciones del proxy -
PROXY_SECRET_VERSION
: el ID de la versión de los secretos, por ejemplo,EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE
Actualizar la configuración del proxy del grupo de nodos
Para actualizar la configuración del proxy de su grupo de nodos, utilice la CLI de Google Cloud.
gcloud container aws node-pools update NODE_POOL_NAME
--cluster CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--proxy-secret-arn=PROXY_SECRET_ARN \
--proxy-secret-version-id=PROXY_SECRET_VERSION
Reemplace lo siguiente:
-
NODE_POOL_NAME
: el nombre de su grupo de nodos -
CLUSTER_NAME
: el nombre de su clúster -
GOOGLE_CLOUD_LOCATION
: la ubicación compatible Google Cloud región que administra su clúster -
PROXY_SECRET_ARN
: el ARN del secreto que contiene las configuraciones del proxy -
PROXY_SECRET_VERSION
: el ID de la versión de los secretos, por ejemplo,EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE
Eliminar la configuración del proxy
Puede eliminar la configuración del proxy del plano de control del clúster o de los grupos de nodos. Estas operaciones son independientes. Eliminar la configuración del plano de control no la elimina de los grupos de nodos del clúster.
Eliminar la configuración del proxy del plano de control
Para eliminar la configuración de proxy del plano de control de su clúster, utilice la CLI de Google Cloud.
gcloud container aws clusters update CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--clear-proxy-config
Reemplace lo siguiente:
-
CLUSTER_NAME
: el nombre de su clúster -
GOOGLE_CLOUD_LOCATION
: la ubicación compatible Google Cloud región que administra su clúster, por ejemplo,us-west1
Eliminar la configuración del proxy del grupo de nodos
Para eliminar la configuración de proxy de un grupo de nodos, utilice la CLI de Google Cloud.
gcloud container aws node-pools update NODE_POOL_NAME
--cluster CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--clear-proxy-config
Reemplace lo siguiente:
-
NODE_POOL_NAME
: el nombre de su grupo de nodos -
CLUSTER_NAME
: el nombre de su clúster -
GOOGLE_CLOUD_LOCATION
: la ubicación compatible Google Cloud región que administra su clúster, por ejemplo,us-west1
¿Qué sigue?
- Lea información adicional sobre cómo crear un clúster .