En este tema, se muestra cómo enrutar el tráfico desde el servicio administrado de GKE en AWS y conectarse a través de un proxy HTTP/HTTPS.
GKE en AWS requiere acceso a Internet por los siguientes motivos:
- El servicio administrado registra clústeres de usuario con Connect.
- Los clústeres de usuario ejecutan el agente de Connect.
- Todos los nodos de servicio de administración y clúster de clústeres de usuarios descargan imágenes de Container Registry.
Puedes enrutar este tráfico a través de un proxy HTTP o HTTPS. A partir de GKE en AWS 1.8, puedes configurar ajustes de proxy individuales para tu servicio de administración y cada uno de tus clústeres. Para obtener más información acerca de cómo cambiar la configuración de proxy, consulta Cambia la configuración de proxy del clúster.
Debes declarar la configuración del proxy en un archivo JSON al que se hace referencia en anthos-gke.yaml
.
Requisitos previos
Antes de configurar GKE en AWS a fin de usar un proxy, debes habilitar los extremos de VPC de AWS, definir un grupo de seguridad para el proxy y permitir las conexiones salientes a determinados servicios de Google Cloud.
Para usar un proxy HTTP, los clústeres de usuario deben ejecutar Kubernetes 1.17 o una versión superior.
Habilita extremos de VPC
Antes de configurar un proxy, debes crear extremos de VPC para tu instalación de GKE en AWS. Los extremos de VPC permiten que los recursos de las subredes privadas accedan a los servicios de AWS sin acceso a la Internet pública.
En la siguiente tabla, se enumeran los servicios de AWS para los que GKE en AWS requiere extremos de VPC, junto con el tipo de extremo y los grupos de seguridad para cada GKE en el componente de AWS que necesita acceso al extremo.
Servicio | Tipo de extremo | Grupos de seguridad |
---|---|---|
Ajuste de escala automático | Interfaz | Administración, plano de control, grupos de nodos |
EC2 | Interfaz | Administración, plano de control, grupos de nodos |
Balanceo de cargas | Interfaz | Administración, plano de control, grupos de nodos |
Servicio de administración de claves | Interfaz | Administración, plano de control, grupos de nodos |
S3 | Puerta de enlace | Administración, plano de control, grupos de nodos |
Servicio de tokens de seguridad (STS) | Interfaz | Administración, plano de control, grupos de nodos |
Puedes crear extremos desde la consola de VPC de AWS. Las opciones que estableces cuando creas extremos de VPC dependen de tu configuración de VPC.
Define un grupo de seguridad
Tus componentes de GKE en AWS deben poder conectarse al servidor proxy. Crea o ubica un
grupo de seguridad
de AWS que permita conexiones salientes a tu servidor proxy. El grupo de seguridad debe permitir el acceso saliente desde los grupos de seguridad de la administración, el plano de control y los grupos de seguridad del 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 | Del puerto | Al puerto | Dirección |
---|---|---|---|---|
Salida | TCP | Puerto proxy: | Puerto proxy: | Grupo de seguridad del proxy |
Permite conexiones salientes a los 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
Reemplaza EC2-REGION por la región EC2 de AWS en la que
se ejecuta la instalación de GKE en AWS. Por ejemplo, us-west-1.ec2.archive.ubuntu.com/
Si usas Anthos Service Mesh con Prometheus y Kiali, debes permitir el acceso saliente desde los siguientes dominios:
docker.io
quay.io
Crea el archivo de configuración JSON del proxy
El archivo JSON de configuración del proxy contiene un objeto que tiene tres pares clave-valor, con los nombres de clave httpProxy
, httpsProxy
y noProxy
.
Los nombres de usuario y las contraseñas se encriptan en sobre con tu clave de KMS de AWS antes de aplicarlas al servidor.
{
"httpProxy": "HTTP_PROXY",
"httpsProxy": "HTTPS_PROXY",
"noProxy": "NO_PROXY"
}
Reemplaza lo siguiente:
- HTTP_PROXY por la dirección del servidor proxy para enrutar las solicitudes HTTP.
- HTTPS_PROXY por el servidor proxy para enrutar las solicitudes HTTPS.
- NO_PROXY por una lista opcional de IP, rangos CIDR y dominios en los que no se usa el proxy.
Consulta Referencia de la configuración para obtener más informació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"
}
Agrega el proxy a anthos-gke.yaml
Para configurar AWSManagementService, realiza los siguientes pasos:
Cambia al directorio con la configuración de GKE en AWS. Creaste este directorio cuando instalaste el servicio de administración.
cd anthos-aws
Abre
anthos-gke.yaml
en un editor de texto. Agrega un valor paraspec.proxy
como en el siguiente ejemplo.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 ...
Reemplaza lo siguiente:
- PROXY_JSON_FILE por la ruta de acceso relativa de la configuración JSON del proxy.
- SECURITY_GROUP_ID por 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 configuración adicional. El comandoinit
también valida el objetoAWSManagementService
en tu archivoanthos-gke.yaml
.anthos-gke aws management init
Ejecuta
anthos-gke aws management apply
para actualizar el servicio administrado en AWS.anthos-gke aws management apply
A continuación, Crea un clúster de usuario. Incluye el grupo de seguridad del proxy en los
spec.controlPlane.securityGroupIDs
yspec.securityGroupIDs
deAWSCluster
, yAWSNodePool
, respectivamente. Luego, el clúster tiene acceso al proxy.
Referencia de la configuración
Campo | Descripción | Ejemplo | Obligatorio |
---|---|---|---|
httpProxy |
Una URL del servidor proxy. El valor debe incluir un nombre de host y una dirección IP, y de forma opcional un puerto, un nombre de usuario y una contraseña. | "http://user:password@10.184.37.42:80" |
Sí |
httpsProxy |
Una URL del proxy para el tráfico encriptado y HTTPS. Se usará la URL httpProxy si no se proporciona httpsProxy . |
"http://user:password@10.101.16.31:80" |
No |
noProxy |
Una lista de URL separadas por comas que se debe excluir del proxy. Cada valor puede ser una dirección IP, un rango de CIDR, un nombre de dominio o el carácter asterisco (* ). Los dominios especificados con un punto al principio (p. ej., “.google.com”) indican que se requiere un subdominio. Un asterisco * único indica que no se debe realizar ningún proxy. |
"1.2.3.4,10.0.0.0/16,example.com,.site.com" |
No |
¿Qué sigue?
Si deseas obtener más información para completar una instalación de GKE en AWS, consulta los vínculos siguientes:
Si necesitas crear una VPC de AWS dedicada, consulta Instala un servicio de administración.
Si ya tienes una VPC de AWS, consulta Integra en la infraestructura existente.
Para obtener información sobre cómo cambiar la configuración de proxy del clúster, consulta los siguientes vínculos: