En este documento se explica cómo enrutar el tráfico de GKE en AWS a través de un proxy HTTP o HTTPS. La configuración del proxy se especifica al crear un clúster.
Informació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 Connect
- Para descargar imágenes de Container Registry
Limitaciones
- Los campos
httpProxy
yhttpsProxy
no admiten URLs que empiecen porhttps://
. Debes usarhttp://
. Las solicitudes al puerto 443 usan HTTPS. - Debe definir los valores de
httpProxy
,httpsProxy
ynoProxy
. - Es posible que tengas que añadir más dominios, IPs o CIDRs al campo
noProxy
. Te recomendamos que añadas el intervalo de IPs de la VPC. Desde la versión 1.22 de Google Kubernetes Engine, GKE en AWS añade automáticamente el CIDR de la dirección de los pods y el CIDR de la dirección de los servicios.
Requisitos previos
En esta sección se describen los requisitos previos que debe cumplir antes de usar un proxy.
Habilitar los endpoints de VPC
Antes de configurar un proxy, debes crear endpoints de VPC para tu instalación de GKE en AWS.
Los endpoints de VPC permiten que los recursos de las subredes privadas accedan a los servicios de AWS sin acceso público a Internet.
En la siguiente tabla se indican los servicios de AWS para los que GKE en AWS requiere endpoints de VPC, así como el tipo de endpoint y los grupos de seguridad que necesitan acceder al endpoint.
Servicio | Tipo de punto final | Grupos de seguridad |
---|---|---|
Escalado automático | Interfaz | Plano de control y grupos de nodos |
EC2 | Interfaz | Plano de control y grupos de nodos |
EFS | Interfaz | Plano de control |
Balanceo de carga | Interfaz | Plano de control y grupos de nodos |
Key Management Service | Interfaz | Plano de control y grupos de nodos |
S3 | Pasarela | Plano de control y grupos de nodos |
Secrets Manager | Interfaz | Plano de control y grupos de nodos |
Servicio de tokens de seguridad (STS) | Interfaz | Plano de control y grupos de nodos |
Puedes crear endpoints desde la consola de VPC de AWS. Las opciones que definas al crear los endpoints de VPC dependerán de la configuración de tu VPC.
Definir un grupo de seguridad
GKE en AWS debe poder conectarse al servidor proxy para descargar componentes de software. Crea o busca un grupo de seguridad de AWS
que permita las conexiones salientes a tu servidor proxy. El grupo de seguridad debe permitir el acceso saliente desde el plano de control y los grupos de seguridad del pool de nodos a la dirección y el puerto del proxy. Guarda el ID de este grupo de seguridad (por ejemplo, sg-12345678
).
Tipo | Protocolo | Puerto de origen | A puerto | Dirección |
---|---|---|---|---|
Salida | TCP | Puerto del proxy | Puerto del 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
Sustituye GCP_LOCATION
por la Google Cloud región en la que se encuentra tu clúster de GKE en AWS. Especifica us-west1
u otra región admitida.
Actualizar roles de gestión de identidades y accesos de AWS
Para que GKE en AWS pueda leer la configuración del proxy de AWS Secrets Manager, debes añadir secretsmanager:GetSecretValue
al rol del plano de control y al rol del grupo de nodos de tu clúster.
Para añadir este permiso, inclúyelo en la política de tu plano de control y de tu grupo de nodos. Para obtener más información, consulta Editar 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.
Puedes transferir esta configuración a la herramienta de línea de comandos aws
como archivo. En esta sección se describe cómo crear ese archivo.
En la siguiente tabla se describe el contenido de este archivo.
Campo | Descripción | Ejemplos | Obligatorio |
---|---|---|---|
httpProxy |
URL de un servidor proxy. El valor debe incluir un nombre de host o una 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 el tráfico HTTPS cifrado. La URL httpProxy se usará si httpsProxy tiene un valor vacío. | "http://10.101.16.31:80"
|
Sí |
noProxy |
Lista de URLs separadas por comas que se excluirán del proxy. Cada valor puede ser una dirección IP, un intervalo CIDR, un nombre de dominio o un 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, crea un archivo JSON que contenga valores para las claves
httpProxy
,noProxy
yhttpsProxy
(opcional).{ "httpProxy": "AUTHENTICATION_URL", "httpsProxy": "AUTHENTICATION_URL", "noProxy": "NO_PROXY_ADDRESSES" }
Haz los cambios siguientes:
AUTHENTICATION_URL
: URL codificada que contiene el nombre de usuario y la contraseña del proxy.NO_PROXY_ADDRESSES
: lista de bloques CIDR y URLs separados por comas. Por ejemplo:10.0.0.0/16,http://example.com
Guarda el archivo para usarlo en la siguiente sección.
Crea un secreto con estos datos JSON como secreto en AWS Secrets Manager mediante la herramienta de línea de comandos
aws
.aws secretsmanager create-secret \ --name SECRET_NAME \ --secret-string file://PROXY_CONFIGURATION_FILE
Haz los cambios siguientes:
SECRET_NAME
: el nombre del nuevo secretoPROXY_CONFIGURATION_FILE
: la ruta al archivo de configuración del proxy.
El resultado incluye el nombre de recurso de Amazon (ARN) y el contenido del secreto. Ahora puedes hacer referencia a este secreto al crear un clúster.
Crear un clúster que use un proxy
Para configurar GKE en AWS de forma que use un proxy HTTP para la conectividad saliente, sigue estos pasos:
Sigue los pasos que se indican en Crear un clúster y pasa las marcas 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 \
Haz los cambios siguientes:
CLUSTER_NAME
: el nombre de tu clústerPROXY_SECRET_ARN
: el ARN del secreto que contiene la configuración del proxy (por ejemplo,arn:aws::secretsmanager:us-east-2:111122223333:secret:example/ExampleSecret-jiObOV
)PROXY_SECRET_VERSION
: el ID de la versión del secreto. Por ejemplo,EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE
.
Actualizar la configuración del proxy
Puedes actualizar la configuración del proxy de un plano de control de un clúster o de un grupo de nodos. Para actualizar el ARN de configuración del proxy, primero debes actualizar el rol de gestión de identidades y accesos de AWS del plano de control o del grupo de nodos.
Actualizar roles de gestión de identidades y accesos de AWS
Antes de cambiar el ARN en el que se almacena la configuración del proxy, debes confirmar que el rol del plano de control y el rol del grupo de nodos de tu clúster tienen acceso de lectura al ARN del secreto. Si tu instrucción de IAM con el permiso secretsmanager:GetSecretValue
se limita a ARNs de recursos específicos, añade el nuevo ARN del secreto a esa lista antes de actualizar la configuración del proxy.
Actualizar la configuración de proxy del clúster
Para actualizar la configuración de proxy de tu clúster, usa 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
Haz los cambios siguientes:
CLUSTER_NAME
: el nombre de tu clústerGOOGLE_CLOUD_LOCATION
: la región admitida Google Cloud que gestiona tu clústerPROXY_SECRET_ARN
: el ARN del secreto que contiene la configuración del proxyPROXY_SECRET_VERSION
: el ID de la versión del secreto. Por ejemplo,EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE
.
Actualizar la configuración del proxy del grupo de nodos
Para actualizar la configuración de proxy de tu grupo de nodos, usa 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
Haz los cambios siguientes:
NODE_POOL_NAME
: el nombre de tu grupo de nodosCLUSTER_NAME
: el nombre de tu clústerGOOGLE_CLOUD_LOCATION
: la región admitida Google Cloud que gestiona tu clústerPROXY_SECRET_ARN
: el ARN del secreto que contiene la configuración del proxyPROXY_SECRET_VERSION
: el ID de la versión del secreto. Por ejemplo,EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE
.
Eliminar la configuración de proxy
Puedes quitar la configuración de proxy del plano de control del clúster o de los grupos de nodos. Estas operaciones son independientes. Si quitas la configuración del plano de control, no se eliminará de los grupos de nodos del clúster.
Eliminar la configuración del proxy del plano de control
Para quitar la configuración de proxy del plano de control de tu clúster, usa la CLI de Google Cloud.
gcloud container aws clusters update CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--clear-proxy-config
Haz los cambios siguientes:
CLUSTER_NAME
: el nombre de tu clústerGOOGLE_CLOUD_LOCATION
: la región Google Cloud admitida que gestiona tu clúster. Por ejemplo,us-west1
.
Eliminar la configuración de proxy del grupo de nodos
Para quitar la configuración de proxy de un grupo de nodos, usa la CLI de Google Cloud.
gcloud container aws node-pools update NODE_POOL_NAME
--cluster CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--clear-proxy-config
Haz los cambios siguientes:
NODE_POOL_NAME
: el nombre de tu grupo de nodosCLUSTER_NAME
: el nombre de tu clústerGOOGLE_CLOUD_LOCATION
: la región Google Cloud admitida que gestiona tu clúster. Por ejemplo,us-west1
.
Siguientes pasos
- Consulta más información sobre cómo crear un clúster.