Compatibilidad con proxy para clústeres vinculados de EKS

Si tu organización usa un proxy HTTP para el tráfico de Internet, debes configurar los clústeres adjuntos de GKE en consecuencia. En este documento se describe cómo realizar esta configuración.

Antes de empezar

Los clústeres de GKE adjuntos requieren conectividad con varios servicios Google Cloud . Asegúrate de que tu 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

Sustituye GCP_LOCATION por la Google Cloud región en la que se encuentra tu clúster. Especifica us-west1 u otra región admitida.

Configurar la compatibilidad con proxies para clústeres de GKE adjuntos

Para configurar la compatibilidad con proxy en clústeres de GKE vinculados, sigue estos pasos:

  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
    }
    

    Haz los cambios siguientes:

    • HTTP_PROXY_AUTHENTICATION_URL: la URL del servidor proxy, que consta de un nombre de host o una dirección IP y, opcionalmente, un puerto, un nombre de usuario y una contraseña. Por ejemplo, http://user:password@192.0.2.0:80 o simplemente 198.51.100.255.
    • HTTPS_PROXY_AUTH_URL: la URL del proxy para el tráfico HTTPS cifrado, que consta de un nombre de host o una dirección IP y, opcionalmente, un puerto, un nombre de usuario y una contraseña.
    • NO_PROXY_ADDRESSES: 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 adjuntos de GKE que eviten usar el proxy para los recursos especificados. Ten en cuenta lo siguiente:
      • Los valores pueden ser direcciones IP individuales, intervalos CIDR, nombres de dominio o incluso el carácter asterisco (*). Si se usa un solo asterisco (*) en el campo noProxy, se indica a los clústeres adjuntos de GKE que omitan el proxy para todo el tráfico.
      • Un dominio que empieza por un punto, como .google.com, se dirige a todos sus subdominios. Por ejemplo, .google.com incluye direcciones como mail.google.com y drive.google.com, pero no google.com.
      • Asegúrate de incluir los dominios kubernetes.default.svc.cluster.local y kubernetes.default.svc para que los registros sean correctos. Aquí tienes 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 de proxy, sigue estas directrices:

    • Los campos httpProxy y httpsProxy no aceptan prefijos https://. Usa http://, aunque la dirección del servidor proxy real empiece por 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.
    • Puedes añadir más dominios, direcciones IP o CIDRs a la lista noProxy. Te recomendamos que incluyas el intervalo de IPs de la VPC.
  2. Crea un secreto de Kubernetes que contenga la configuración del proxy ejecutando el siguiente comando:

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

    Haz los cambios siguientes:

    • SECRET_NAME: el nombre del secreto de Kubernetes
    • PROXY_CONFIGURATION_FILE: la ruta a la configuración del proxy que has creado en el paso 1.
  3. Marca el secreto de Kubernetes como inmutable asignando el valor true al campo immutable:

    kubectl edit secret SECRET_NAME
    

    Sustituye SECRET_NAME por el nombre del secreto de Kubernetes.

  4. Configura un clúster nuevo o uno que ya tengas para usar el proxy:

    Agrupación nueva

    Para registrar un nuevo clúster 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
    

    Haz los cambios siguientes:

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

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

    Clúster disponible

    Para actualizar un clúster registrado anteriormente con una nueva 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
    

    Haz los cambios siguientes:

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

    Este paso es obligatorio si los detalles del servidor proxy han cambiado o si en el registro inicial del clúster no se tuvieron en cuenta los requisitos del proxy.

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

Después de realizar estos pasos, los clústeres adjuntos de GKE procesan el tráfico de Internet saliente mediante el servidor proxy especificado en el archivo de configuración.