Compatibilidad con proxy para clústeres adjuntos de EKS

Si en tu organización usan un Proxy HTTP para el tráfico de Internet, debes configurar los clústeres de GKE conectados según corresponda. En este documento, se describe cómo llevar a cabo esta configuración.

Antes de empezar

Los clústeres de GKE conectados requieren conectividad a varios servicios de Google Cloud . Asegúrate de que el servidor proxy permita 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

Reemplaza GCP_LOCATION por la región Google Cloud en la que reside el clúster. Especifica us-west1 o alguna otra región compatible.

Configura la compatibilidad con el proxy para clústeres de GKE conectados

Para configurar la compatibilidad con el proxy de los clústeres de GKE conectados, sigue los pasos siguientes:

  1. Crea un archivo de configuración de proxy que contenga valores para las claves httpProxy, noProxy y httpsProxy:

    {
    "httpProxy": HTTP_PROXY_AUTHENTICATION_URL,
    "httpsProxy": HTTPS_PROXY_AUTH_URL,
    "noProxy": NO_PROXY_ADDRESSES
    }
    

    Reemplaza lo siguiente:

    • HTTP_PROXY_AUTHENTICATION_URL: es la URL del servidor proxy, que consta de un nombre de host y una dirección IP y, de manera opcional, un puerto, un nombre de usuario y una contraseña. Por ejemplo, http://user:password@192.0.2.0:80 o solo 198.51.100.255.
    • HTTPS_PROXY_AUTH_URL: es la URL del proxy para el tráfico HTTPS encriptado, que consta de un nombre de host o una dirección IP y, de manera opcional, un puerto, un nombre de usuario y una contraseña.
    • NO_PROXY_ADDRESSES: es una lista separada por comas de URLs, bloques CIDR y nombres de DNS de recursos que pueden omitir el proxy. Esto indica a los clústeres de GKE conectados que eviten usar el proxy para los recursos especificados. Ten en cuenta lo siguiente:
      • Los valores pueden ser direcciones IP individuales, rangos CIDR, nombres de dominio o incluso el carácter asterisco (*). Usar un solo asterisco (*) en el campo noProxy permite indicar a los clústeres de GKE conectados que omitan el proxy para todo el tráfico.
      • Un dominio que empieza con un punto, como .google.com, se orienta a todos sus subdominios. Por ejemplo, .google.com incluye direcciones como mail.google.com y drive.google.com, pero excluye google.com.
      • Asegúrate de incluir los dominios kubernetes.default.svc.cluster.local y kubernetes.default.svc para un registro adecuado. Veamos un ejemplo: 198.51.100.0,192.0.2.0/16,examplepetstore.com,.altostrat.com,kubernetes.default.svc.cluster.local, kubernetes.default.svc.

    Cuando crees el archivo de configuración del proxy, deberás cumplir los siguientes lineamientos:

    • Los campos httpProxy y httpsProxy no aceptan prefijos https://. Usa http:// incluso si la dirección real del servidor proxy empieza con https://. Por ejemplo, representa https://proxy.example.com:3128 como http://proxy.example.com:3128.
    • Es obligatorio proporcionar valores para los tres campos: httpProxy, httpsProxy y noProxy.
    • Considera agregar más dominios, direcciones IP o CIDR a la lista noProxy. Te recomendamos incluir el rango de IP de la VPC.
  2. Ejecuta el siguiente comando para crear un Secret de Kubernetes que contenga la configuración del proxy:

    kubectl create secret generic SECRET_NAME \
    --from-file=PROXY_CONFIGURATION_FILE
    

    Reemplaza lo siguiente:

    • SECRET_NAME: es el nombre del Secret de Kubernetes.
    • PROXY_CONFIGURATION_FILE: es la ruta de acceso a la configuración del proxy que creaste en el paso 1.
  3. Para marcar el Secret de Kubernetes como inmutable, establece su campo immutable como true:

    kubectl edit secret SECRET_NAME
    

    Reemplaza SECRET_NAME por el nombre del Secret de Kubernetes.

  4. Configura un clúster nuevo o existente para usar el proxy:

    Clúster nuevo

    Para registrar un clúster nuevo y aplicar la configuración del proxy, usa el comando gcloud container attached clusters register. Asegúrate de proporcionar los argumentos opcionales --proxy-secret-name y --proxy-secret-namespace:

    gcloud container attached clusters register CLUSTER_NAME \
      --proxy-secret-name=SECRET_NAME \
      --proxy-secret-namespace=SECRET_NAMESPACE
    

    Reemplaza lo siguiente:

    • CLUSTER_NAME: es el nombre del clúster.
    • SECRET_NAME: es el nombre del Secret de Kubernetes que contiene la configuración del proxy.
    • SECRET_NAMESPACE: es el espacio de nombres de Kubernetes en el que se almacena el Secret.

    Para obtener información sobre todos los argumentos que puedes usar cuando registras un clúster, consulta el comando gcloud container attached clusters register.

    Clúster existente

    Para actualizar un clúster registrado con anterioridad con un nuevo parámetro de configuración de proxy, usa el comando gcloud container attached clusters update. Asegúrate de proporcionar los argumentos opcionales --proxy-secret-name y --proxy-secret-namespace:

    gcloud container attached clusters update CLUSTER_NAME \
      --proxy-secret-name=SECRET_NAME \
      --proxy-secret-namespace=SECRET_NAMESPACE
    

    Reemplaza lo siguiente:

    • CLUSTER_NAME: es el nombre del clúster.
    • SECRET_NAME: es el nombre del Secret de Kubernetes que contiene la configuración del proxy.
    • SECRET_NAMESPACE: es el espacio de nombres de Kubernetes en el que se almacena el Secret.

    Este paso es obligatorio si los detalles del servidor proxy cambiaron o si el registro inicial del clúster omitió los requisitos del proxy.

    Para obtener información sobre todos los argumentos que puedes usar a la hora actualizar un clúster, consulta el comando gcloud container attached clusters update.

Luego de seguir estos pasos, los clústeres de GKE conectados procesan el tráfico de Internet saliente con el servidor proxy especificado en el archivo de configuración.