Usa un proxy HTTP

En este documento, se muestra cómo enrutar el tráfico desde GKE en Azure a través de un proxy HTTP/HTTPS. Debes especificar la configuración del proxy cuando creas un clúster.

Descripción general

GKE en Azure puede enrutar el tráfico saliente de Internet a través de un proxy por los siguientes motivos:

  • Para registrar clústeres con Google Cloud a través de Connect
  • Para ejecutar el agente de Connect
  • Para descargar imágenes desde Container Registry, sigue estos pasos:

Limitaciones

  • Los campos httpProxy y httpsProxy no admiten URL que comiencen con https://. Debes usar http://. Las solicitudes al puerto 443 usan HTTPS.
  • Debes configurar los valores para httpProxy, httpsProxy y noProxy.
  • La configuración del proxy de un clúster (el ID del grupo de recursos y el ID secreto) es inmutable. Debes crear un clúster nuevo y un grupo de nodos para actualizar estos valores.
  • Es posible que debas agregar dominios, IP o CIDR adicionales al campo noProxy. Recomendamos agregar los CIDR de subred de los planos de control de tu clúster. El CIDR de la dirección del Pod y el CIDR de la dirección del servicio se agregan de forma predeterminada.

Requisitos previos

En esta sección, se describen los requisitos previos que debes aplicar antes de usar un proxy.

Configuración de Azure Key Vault

GKE en Azure almacena información sobre la configuración del proxy en Azure Key Vault. Si quieres configurar un proxy con GKE en Azure, debes tener permisos para crear un Secret en un Key Vault. Se debe poder acceder a Key Vault desde la VNet de tu clúster.

Lista de entidades permitidas del proxy

Para que los clústeres de GKE en Azure se conecten a los servicios de Google Cloud, el servidor proxy debe permitir el tráfico a dominios específicos de Google y Microsoft.

.azure.com
.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 el clúster de GKE Enterprise. Especifica us-west1 o alguna otra región compatible.

Requisito del grupo de seguridad de red de la subred

Si usas grupos de seguridad de red (NSG) para administrar el tráfico a tus subredes, tus reglas de NSG deben permitir el tráfico de TCP saliente a los siguientes destinos:

  • AzureCloud: TCP, puertos 80 y 443

Consulta Etiquetas de servicio de Azure para obtener más información sobre el uso de etiquetas de servicio con NSG.

Crea un archivo de configuración de proxy

La configuración del proxy se almacena en un Secret de Azure Key Vault como una string JSON. Puedes pasar esta configuración a la herramienta de línea de comandos de az como un archivo. En esta sección, se describe cómo crear ese archivo.

En la siguiente tabla, se describe el contenido de este archivo.

Campo Descripción Ejemplos Obligatorio
httpProxy Una URL del servidor proxy. El valor debe incluir un nombre de host y una dirección IP, y de forma opcional un puerto, un nombre de usuario y una contraseña. "http://user:password@10.184.37.42:80"
"10.184.37.42"
httpsProxy Una URL del proxy para el tráfico encriptado y HTTPS. La URL httpProxy se usará si httpsProxy tiene un valor vacío. "http://10.101.16.31:80"
noProxy Una lista de URL separadas por comas que se debe excluir del proxy. Cada valor puede ser una dirección IP, un rango de CIDR, un nombre de dominio o el carácter asterisco (*). Los dominios especificados con un punto al principio (por ejemplo, “.google.com”) indican que se requiere un subdominio. Un solo asterisco * ignora toda la configuración de proxy. "1.2.3.4,10.0.0.0/16,example.com,.site.com"
  1. A fin de crear el archivo de configuración, crea un archivo JSON que contenga valores para httpProxy, noProxy y claves httpsProxy opcionales.

    {
      "httpProxy": "AUTHENTICATION_URL",
      "httpsProxy": "AUTHENTICATION_URL",
      "noProxy": "NO_PROXY_ADDRESSES"
    }
    

    Reemplaza lo siguiente:

    • AUTHENTICATION_URL: URL codificada que contiene el nombre de usuario del proxy y la contraseña
    • NO_PROXY_ADDRESSES: Lista separada por comas de bloques CIDR y URL, por ejemplo 10.0.0.0/16,http://example.com

    Guarda el archivo para usarlo en la siguiente sección.

  2. Crea un secreto con estos datos de JSON como un secreto en Azure Key Vault con la herramienta de línea de comandos de az.

    az keyvault secret set --name SECRET_NAME \
    --vault-name KEY_VAULT_NAME \
    --file PROXY_CONFIGURATION_FILE
    

    Reemplaza lo siguiente:

    • SECRET_NAME: El nombre del Secret nuevo
    • KEY_VAULT_NAME: El nombre de tu Key Vault
    • PROXY_CONFIGURATION_FILE: La ruta de acceso a tu archivo de configuración del proxy.

      El resultado incluye el nombre y el contenido del Secret. Ahora puedes hacer referencia a este Secret cuando creas un clúster.

Crea un clúster que use un proxy

Si deseas configurar GKE en Azure a fin de usar un proxy HTTP para la conectividad saliente, sigue estos pasos:

Sigue los pasos de la página Crea un clúster y un grupo de nodos y pasa las marcas --proxy-resource-group-id y --proxy-secret-id.

gcloud container azure clusters create CLUSTER_NAME \
  --proxy-resource-group-id=PROXY_RESOURCE_GROUP_ID \
  --proxy-secret-id=PROXY_SECRET_ID
    ...

Reemplaza lo siguiente:

  • CLUSTER_NAME: Es el nombre del clúster
  • PROXY_RESOURCE_GROUP_ID: Es el grupo de recursos que aloja el clúster
  • PROXY_SECRET_ID: Es el ID del Secret que contiene la configuración del proxy, por ejemplo, https://VAULT_NAME.vault.azure.net/secrets/SECRET_NAME/SECRET_VERSION

¿Qué sigue?