Este tema le muestra cómo enrutar el tráfico desde el servicio de administración 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 de administración registra clústeres de usuarios con Connect .
- Los clústeres de usuarios ejecutan el Agente de conexión.
- Todos los nodos del servicio de administración y del clúster de usuarios descargan imágenes de Container Registry.
Puede enrutar este tráfico a través de un proxy HTTP o HTTPS. A partir de GKE en AWS 1.8, puede configurar ajustes de proxy individuales para su servicio de administración y cada uno de sus clústeres. Para obtener más información sobre cómo cambiar la configuración del proxy, consulte Cambiar la configuración del proxy del clúster .
Declara la configuración del proxy en un archivo JSON al que se hace referencia en anthos-gke.yaml
.
Prerrequisitos
Antes de configurar GKE en AWS para usar un proxy, debe habilitar los puntos finales de AWS VPC, definir un grupo de seguridad para el proxy y permitir conexiones salientes a ciertos servidores. Google Cloud servicios.
Para utilizar un proxy HTTP, sus clústeres de usuarios deben ejecutar Kubernetes 1.17 o superior.
Habilitar puntos finales de VPC
Antes de configurar un proxy, debe crear puntos de conexión de VPC para su instalación de GKE en AWS. Los puntos de conexión de VPC permiten que los recursos de 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 para cada componente de GKE en AWS que requiere acceso al punto final.
Servicio | Tipo de punto final | Grupos de seguridad |
---|---|---|
Escalado automático | Interfaz | Gestión, plano de control, grupos de nodos |
EC2 | Interfaz | Gestión, plano de control, grupos de nodos |
Equilibrio de carga | Interfaz | Gestión, plano de control, grupos de nodos |
Servicio de gestión de claves | Interfaz | Gestión, plano de control, grupos de nodos |
S3 | Puerta | Gestión, plano de control, grupos de nodos |
Servicio de token de seguridad (STS) | Interfaz | Gestión, 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
Sus componentes de GKE en AWS deben poder conectarse al servidor proxy. 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 los grupos de seguridad de administración, plano de control y 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 |
Permitir conexiones salientes a Google Cloud servicios
Para que GKE en AWS se conecte a Google Cloud servicios, 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
Reemplace EC2-REGION con la región de AWS EC2 donde se ejecuta su instalación de GKE en AWS. Por ejemplo, us-west-1.ec2.archive.ubuntu.com/
.
Si utiliza Cloud Service Mesh con Prometheus y Kiali , permita el acceso saliente desde los siguientes dominios:
-
docker.io
-
quay.io
Creación del archivo JSON de configuración del proxy
El archivo JSON de configuración del proxy contiene un objeto con tres pares clave-valor, cuyos nombres de clave son httpProxy
, httpsProxy
y noProxy
. Los nombres de usuario y las contraseñas se cifran con su clave de AWS KMS antes de aplicarlos al servidor.
{
"httpProxy": "HTTP_PROXY",
"httpsProxy": "HTTPS_PROXY",
"noProxy": "NO_PROXY"
}
Reemplace lo siguiente:
- HTTP_PROXY con la dirección del servidor proxy para enrutar las solicitudes HTTP.
- HTTPS_PROXY con el servidor proxy para enrutar solicitudes HTTPS.
- NO_PROXY con una lista opcional de IP, rangos CIDR y dominios donde no se utiliza proxy.
Consulte la referencia de configuración para obtener más información. Por ejemplo, la siguiente configuración utiliza 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"
}
Agregar el proxy a anthos-gke.yaml
Configure su AWSManagementService realizando los siguientes pasos:
Vaya al directorio con su configuración de GKE en AWS. Este directorio se creó al instalar el servicio de administración .
cd anthos-aws
Abra
anthos-gke.yaml
en un editor de texto. Añada un valor aspec.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 ...
Reemplace lo siguiente:
- PROXY_JSON_FILE con la ruta relativa de la configuración JSON de su proxy.
- SECURITY_GROUP_ID con el ID de un grupo de seguridad con acceso al servidor proxy .
Guarde el archivo.
Ejecute
anthos-gke aws management init
para generar un archivoanthos-gke.status.yaml
con configuración adicional. El comandoinit
también valida el objetoAWSManagementService
en el archivoanthos-gke.yaml
.anthos-gke aws management init
Ejecute
anthos-gke aws management apply
para actualizar su servicio de administración en AWS.anthos-gke aws management apply
A continuación, cree un clúster de usuarios . Incluya el grupo de seguridad del proxy en los
spec.controlPlane.securityGroupIDs
yspec.securityGroupIDs
deAWSCluster
yAWSNodePool
, respectivamente. El clúster tendrá acceso al proxy.
Referencia de configuración
Campo | Descripción | Ejemplo | 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" | Sí |
httpsProxy | Una URL de proxy para tráfico HTTPS cifrado. Si no se proporciona la URL httpProxy , se usará la URL de httpsProxy . | "http://user:password@10.101.16.31:80" | No |
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 (p. ej., ".google.com") indican que se requiere un subdominio. Un solo asterisco ( * indica que no se debe realizar el proxy. | "1.2.3.4,10.0.0.0/16,example.com,.site.com" | No |
¿Qué sigue?
Para obtener más información sobre cómo completar una instalación de GKE en AWS, consulte lo siguiente:
Si necesita crear una VPC de AWS dedicada, consulte Instalación de un servicio de administración .
Si tiene una VPC de AWS existente, consulte Integración con la infraestructura existente .
Para obtener información sobre cómo cambiar la configuración de proxy de su clúster, consulte: