En este tema se explica cómo enrutar el tráfico del servicio de gestión de GKE en AWS y de Connect a través de un proxy HTTP/HTTPS.
GKE on AWS requiere acceso a Internet por los siguientes motivos:
- El servicio de gestión registra los clústeres de usuario con Connect.
- Los clústeres de usuario ejecutan el agente de Connect.
- Todos los nodos del servicio de gestión y del clúster de usuarios descargan imágenes de Container Registry.
Puedes enrutar este tráfico a través de un proxy HTTP o HTTPS. Desde GKE en AWS 1.8, puedes configurar ajustes de proxy individuales para tu servicio de gestión y para cada uno de tus clústeres. Para obtener más información sobre cómo cambiar la configuración del proxy, consulta Cambiar la configuración del proxy del clúster.
Los ajustes del proxy se declaran en un archivo JSON al que se hace referencia en anthos-gke.yaml
.
Requisitos previos
Antes de configurar GKE en AWS para que use un proxy, debes habilitar los endpoints de VPC de AWS, definir un grupo de seguridad para el proxy y permitir las conexiones salientes a determinados servicios Google Cloud .
Para usar un proxy HTTP, tus clústeres de usuarios deben ejecutar Kubernetes 1.17 o una versión posterior.
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, junto con el tipo de endpoint y los grupos de seguridad de cada componente de GKE en AWS que necesita acceder al endpoint.
Servicio | Tipo de punto final | Grupos de seguridad |
---|---|---|
Escalado automático | Interfaz | Gestión, plano de control y grupos de nodos |
EC2 | Interfaz | Gestión, plano de control y grupos de nodos |
Balanceo de carga | Interfaz | Gestión, plano de control y grupos de nodos |
Key Management Service | Interfaz | Gestión, plano de control y grupos de nodos |
S3 | Pasarela | Gestión, plano de control y grupos de nodos |
Servicio de tokens de seguridad (STS) | Interfaz | Gestión, 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
Tus componentes de GKE en AWS deben poder conectarse al servidor proxy. 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 los grupos de seguridad de gestión, plano de control y grupo 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 |
Permitir conexiones salientes a servicios de Google Cloud
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:
gkeconnect.googleapis.com
gkehub.googleapis.com
oauth2.googleapis.com
storage.googleapis.com
www.googleapis.com
gcr.io
k8s.gcr.io
EC2-REGION.ec2.archive.ubuntu.com
Sustituye EC2-REGION por la región de AWS EC2 en la que se ejecuta tu instalación de GKE en AWS. Por ejemplo, us-west-1.ec2.archive.ubuntu.com/
.
Si usas Cloud Service Mesh con Prometheus y Kiali, permite el acceso saliente desde los siguientes dominios:
docker.io
quay.io
Crear el archivo JSON de configuración del proxy
El archivo JSON de configuración del proxy contiene un objeto con tres pares clave/valor, con los nombres de clave httpProxy
, httpsProxy
y noProxy
.
Los nombres de usuario y las contraseñas se cifran con envoltura con tu clave de KMS de AWS antes de aplicarlos al servidor.
{
"httpProxy": "HTTP_PROXY",
"httpsProxy": "HTTPS_PROXY",
"noProxy": "NO_PROXY"
}
Haz los cambios siguientes:
- HTTP_PROXY con la dirección del servidor proxy para enrutar las solicitudes HTTP.
- HTTPS_PROXY con el servidor proxy para enrutar las solicitudes HTTPS.
- NO_PROXY con una lista opcional de IPs, intervalos CIDR y dominios en los que no se usa el proxy.
Para obtener más información, consulta la referencia de configuración.
Por ejemplo, la siguiente configuración usa un proxy en 10.0.0.254
y excluye varios sitios.
{
"httpProxy": "http://user:password@10.0.0.254:80",
"httpsProxy": "http://user:password@10.0.0.254:443",
"noProxy": "localhost,127.0.0.1,169.254.169.254,10.0.0.0/16,example.com"
}
Añadir el proxy a anthos-gke.yaml
Para configurar tu AWSManagementService, sigue estos pasos:
Cambia al directorio con tu configuración de GKE en AWS. Has creado este directorio al instalar el servicio de gestión.
cd anthos-aws
Abre
anthos-gke.yaml
en un editor de texto. Añade un valor paraspec.proxy
como en el ejemplo siguiente.apiVersion: multicloud.cluster.gke.io/v1 kind: AWSManagementService metadata: name: management spec: version: aws-1.14.1-gke.0 proxy: PROXY_JSON_FILE securityGroupIDs: - SECURITY_GROUP_ID ...
Haz los cambios siguientes:
- PROXY_JSON_FILE con la ruta relativa de la configuración JSON de tu proxy.
- SECURITY_GROUP_ID con el ID de un grupo de seguridad con acceso al servidor proxy.
Guarda el archivo.
Ejecuta
anthos-gke aws management init
para generar un archivoanthos-gke.status.yaml
con una configuración adicional. El comandoinit
también valida el objetoAWSManagementService
en el archivoanthos-gke.yaml
.anthos-gke aws management init
Ejecuta
anthos-gke aws management apply
para actualizar tu servicio de gestión en AWS.anthos-gke aws management apply
A continuación, crea un clúster de usuarios. Incluye el grupo de seguridad del proxy en
AWSCluster
yAWSNodePool
,spec.controlPlane.securityGroupIDs
yspec.securityGroupIDs
, respectivamente. El clúster tendrá acceso al proxy.
Referencia de configuración
Campo | Descripción | Ejemplo | 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" |
Sí |
httpsProxy |
Una URL de proxy para el tráfico HTTPS cifrado. Se usará la URL httpProxy si no se proporciona httpsProxy . |
"http://user:password@10.101.16.31:80" |
No |
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 * indica que no se debe usar ningún proxy. |
"1.2.3.4,10.0.0.0/16,example.com,.site.com" |
No |
Siguientes pasos
Para obtener más información sobre cómo completar una instalación de GKE en AWS, consulta los siguientes artículos:
Si necesitas crear una VPC de AWS específica, consulta Instalar un servicio de gestión.
Si ya tienes una VPC de AWS, consulta la sección Integración con la infraestructura actual.
Para obtener información sobre cómo cambiar la configuración de proxy de tu clúster, consulta los siguientes artículos: