Uso de un proxy con GKE en AWS

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:

  1. 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

  2. Abra anthos-gke.yaml en un editor de texto. Añada un valor a spec.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.

  3. Ejecute anthos-gke aws management init para generar un archivo anthos-gke.status.yaml con configuración adicional. El comando init también valida el objeto AWSManagementService en el archivo anthos-gke.yaml .

    anthos-gke aws management init
    
  4. Ejecute anthos-gke aws management apply para actualizar su servicio de administración en AWS.

    anthos-gke aws management apply
    
  5. A continuación, cree un clúster de usuarios . Incluya el grupo de seguridad del proxy en los spec.controlPlane.securityGroupIDs y spec.securityGroupIDs de AWSCluster y AWSNodePool , 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"
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:

Para obtener información sobre cómo cambiar la configuración de proxy de su clúster, consulte: