Compatibilidad con proxy para clústeres adjuntos que cumplan con las especificaciones de CNCF

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

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

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

Para configurar la compatibilidad con proxy para clústeres adjuntos 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: La URL del servidor proxy, que consta de un nombre de host y 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: 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: 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 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 asterix (*). Con un solo asterisco (*) en el campo noProxy indica a los clústeres conectados a GKE que omitan el proxy para todo el tráfico.
      • Un dominio que empieza con un punto, como .google.com, se orienta a todas 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, cumple con 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 dominios, direcciones IP o CIDR adicionales a la lista noProxy. Te recomendamos incluir el rango de IP de VPC.
  2. Ejecuta el siguiente comando para crear un secreto 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 configuración del proxy que creaste en el paso 1.
  3. Para marcar el Secret de Kubernetes como inmutable, configura 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 antes 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 necesario si los detalles del servidor proxy cambiaron o si un registro inicial del clúster omitió los requisitos del proxy.

    Para obtener 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 seguir estos pasos, los clústeres adjuntos de GKE procesan el tráfico saliente de Internet con el servidor proxy especificado en el archivo de configuración.