Compatibilidad de proxy para clústeres adjuntos compatibles con CNCF

Si su organización utiliza un proxy HTTP para el tráfico de internet, deberá configurar los clústeres conectados a GKE según corresponda. Este documento describe cómo realizar esta configuración.

Antes de empezar

Los clústeres conectados a GKE requieren conectividad a varios Google Cloud Servicios. Asegúrese de que su 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

Reemplace GCP_LOCATION con el Google Cloud Región donde reside el clúster. Especifique us-west1 u otra región compatible .

Configurar la compatibilidad de proxy para clústeres conectados a GKE

Para configurar la compatibilidad de proxy para clústeres conectados a GKE, siga estos pasos:

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

    Reemplace lo siguiente:

    • HTTP_PROXY_AUTHENTICATION_URL : la URL del servidor proxy, que consta de un nombre de host/dirección IP y, opcionalmente, un puerto, nombre de usuario y 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/dirección IP y, opcionalmente, un puerto, un nombre de usuario y una contraseña.
    • NO_PROXY_ADDRESSES : una lista separada por comas de URL, bloques CIDR y nombres DNS de recursos que pueden omitir el proxy. Esto indica a los clústeres conectados a GKE que eviten usar el proxy para los recursos especificados. Tenga en cuenta lo siguiente:
      • Los valores pueden ser direcciones IP individuales, rangos CIDR, nombres de dominio o incluso el asterisco (*). Usar 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 dirige a todos sus subdominios. Por ejemplo, .google.com incluye direcciones como mail.google.com y drive.google.com , pero excluye google.com .
      • Asegúrese de incluir los dominios kubernetes.default.svc.cluster.local y kubernetes.default.svc para un registro correcto. Por ejemplo: 198.51.100.0,192.0.2.0/16,examplepetstore.com,.altostrat.com,kubernetes.default.svc.cluster.local, kubernetes.default.svc .

    Al crear el archivo de configuración del proxy, siga las siguientes pautas:

    • Los campos httpProxy y httpsProxy no aceptan el prefijo https:// . Use http:// incluso si la dirección del servidor proxy real empieza por https:// . Por ejemplo, represente https://proxy.example.com:3128 como http://proxy.example.com:3128 .
    • Es obligatorio proporcionar valores para los tres campos: httpProxy , httpsProxy y noProxy .
    • Considere agregar dominios, direcciones IP o CIDR adicionales a la lista noProxy . Le recomendamos incluir el rango de IP de la VPC.
  2. Cree 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
    

    Reemplace lo siguiente:

    • SECRET_NAME : el nombre del secreto de Kubernetes
    • PROXY_CONFIGURATION_FILE : la ruta a la configuración del proxy que creó en el paso 1.
  3. Marque el secreto de Kubernetes como inmutable estableciendo su campo immutable en true :

    kubectl edit secret SECRET_NAME
    

    Reemplace SECRET_NAME con el nombre del secreto de Kubernetes.

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

    Nuevo clúster

    Para registrar un nuevo clúster y aplicar la configuración del proxy, use el comando gcloud container attached clusters register . Asegúrese 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
    

    Reemplace lo siguiente:

    • 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 puede utilizar al registrar un clúster, consulte el comando gcloud container attached clusters register .

    Clúster existente

    Para actualizar un clúster registrado previamente con una nueva configuración de proxy, use el comando gcloud container attached clusters update . Asegúrese 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
    

    Reemplace lo siguiente:

    • 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 necesario si los detalles de su servidor proxy han cambiado o si un registro de clúster inicial pasó por alto los requisitos del proxy.

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

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