Compatibilidad de proxy para clústeres conectados de AKS

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

Antes de comenzar

Los clústeres conectados de GKE 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 de Google Cloud en la que reside tu clúster. Especifica us-west1 o alguna otra región compatible.

Configura la compatibilidad del proxy para los clústeres conectados a GKE

Si deseas configurar la compatibilidad de proxy para clústeres conectados de GKE, 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
    }
    

    Reemplaza lo siguiente:

    • HTTP_PROXY_AUTHENTICATION_URL: Es la URL del servidor proxy, que consta de un nombre de host o una dirección IP y, de forma 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 forma opcional, un puerto, un nombre de usuario y una contraseña.
    • NO_PROXY_ADDRESSES: Es una lista separada por comas de URL, bloques CIDR y nombres de DNS de recursos que pueden omitir el proxy. Esto indica a los clústeres conectados de GKE que eviten usar el proxy para los recursos especificados. Ten en cuenta lo siguiente:
      • Los valores pueden ser direcciones IP individuales, rangos de CIDR, nombres de dominio o incluso el carácter asterisco (*). Usar un solo asterisco (*) en el campo noProxy les indica a los clústeres conectados a GKE que omitan el proxy para todo el tráfico.
      • Un dominio que comienza 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. A continuación, se muestra 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 estos lineamientos:

    • Los campos httpProxy y httpsProxy no aceptan prefijos https://. Usa http://, incluso si la dirección real del servidor proxy comienza 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 dominios adicionales, direcciones IP o CIDR a la lista noProxy. Te recomendamos que incluyas el rango de IP de VPC.
  2. Para crear un secreto de Kubernetes que contenga la configuración del proxy, ejecuta el siguiente comando:

    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 de proxy que creaste en el paso 1.
  3. Marca el secreto de Kubernetes como inmutable mediante la configuración del campo immutable en 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 previamente con una configuración de proxy nueva, 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 de tu servidor proxy cambiaron o si un registro inicial de clúster pasó por alto los requisitos del proxy.

    Para obtener más información sobre todos los argumentos que puedes usar cuando actualizas un clúster, consulta el comando gcloud container attached clusters update.

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