Instalar detrás de un proxy

En esta página, se muestra cómo configurar reglas de proxy y firewall para GKE en Bare Metal.

Configura tu servidor proxy

Si las máquinas que usas para los nodos de arranque y de clúster utilizan un servidor proxy a fin de acceder a Internet, debes hacer lo siguiente:

  • Configura el envío mediante proxy para el administrador de paquetes en los nodos del clúster
  • Configura los detalles del proxy en el archivo de configuración del clúster.

Requisitos previos

Tu servidor proxy debe permitir conexiones a las siguientes direcciones:

Dirección Objetivo
*.gcr.io Extrae imágenes de Container Registry.
accounts.google.com Procesa las solicitudes de autorización para OpenID y descubre claves públicas para los tokens de verificación.
binaryauthorization.googleapis.com Es obligatorio si se usa la Autorización Binaria. Autoriza (o rechaza) solicitudes de clústeres para ejecutar imágenes de contenedor.
cloudresourcemanager.googleapis.com Resuelve los metadatos del proyecto de Google Cloud al que se conecta el clúster.
compute.googleapis.com Verifica la región de recursos de Cloud Logging y Cloud Monitoring.
connectgateway.googleapis.com Habilita la capacidad de otorgar a la Atención al cliente de Cloud acceso de solo lectura a tu clúster para diagnosticar problemas.
dl.google.com Descarga y, luego, instala el SDK de Google Cloud.
gkeconnect.googleapis.com Establece el canal que se usa para recibir las solicitudes de Google Cloud y envía respuestas. Si tu clúster se registró en la flota con una región de Google Cloud, debes incluir en la lista de entidades permitidas REGION-gkeconnect.googleapis.com (por ejemplo, us-central1-gkeconnect.googleapis.com). Si no especificaste una región, el clúster usará la instancia de servicio global de Connect y debes incluir en la lista de entidades permitidas gkeconnect.googleapis.com. Si necesitas encontrar la ubicación de la membresía de la flota del clúster, ejecuta gcloud container fleet memberships list. Para obtener más información, consulta gkeConnect.location.
gkehub.googleapis.com Crea recursos de membresía de la flota de Google Cloud que corresponden al clúster que conectas con Google Cloud.
gkeonprem.googleapis.com Crea y administra el ciclo de vida del clúster en la infraestructura de los equipos físicos y de VMware.
gkeonprem.mtls.googleapis.com Crea y administra el ciclo de vida del clúster en la infraestructura de los equipos físicos y de VMware. Esta versión de la API se usa de forma automática con mTLS.
iam.googleapis.com Crea cuentas de servicio que puedas usar para autenticar en Google Cloud y realizar llamadas a la API.
iamcredentials.googleapis.com Proporciona controles de admisión y informes de telemetría para el registro de auditoría.
logging.googleapis.com Escribe entradas de registro y administra la configuración de Cloud Logging.
monitoring.googleapis.com Administra tus datos y parámetros de configuración de Cloud Monitoring.
oauth2.googleapis.com Realiza la autenticación a través del intercambio de tokens de OAuth para acceder a la cuenta.
opsconfigmonitoring.googleapis.com Recopila metadatos para los recursos de Kubernetes, como Pods, implementaciones o nodos, a fin de enriquecer las consultas de métricas.
releases.hashicorp.com Opcional. Usa el cliente de Terraform en la estación de trabajo de administrador para ejecutar comandos, como terraform apply.
securetoken.googleapis.com Recupera tokens de actualización para la autorización de identidad de cargas de trabajo.
servicecontrol.googleapis.com Escribe entradas de registro de auditoría en los registros de auditoría de Cloud.
serviceusage.googleapis.com Habilita y valida los servicios y las API.
stackdriver.googleapis.com Administrar los metadatos de observabilidad de Google Cloud, como las cuentas de Stackdriver
storage.googleapis.com Administra el almacenamiento y los buckets de objetos, como los objetos de Container Registry.
sts.googleapis.com Intercambia credenciales de Google o de terceros por un token de acceso de corta duración a recursos de Google Cloud.
www.googleapis.com Autentica los tokens de servicio de las solicitudes de servicio entrantes de Google Cloud.

Además de estas URL, el servidor proxy también debe permitir cualquier la duplicación de paquetes que requiera el administrador de paquetes de tu sistema operativo. Puedes actualizar la configuración del administrador de paquetes para usar una lista más determinista, que es más fácil de administrar.

Configura el envío mediante proxy para el administrador de paquetes en los nodos del clúster

GKE en Bare Metal usa el administrador de paquetes APT en Ubuntu y el administrador de paquetes DNF en Red Hat Enterprise Linux. Asegúrate de que el administrador de paquetes del SO tenga la configuración de proxy correcta.

Consulta la documentación de tu distribución de SO para obtener detalles sobre la configuración del proxy. En los siguientes ejemplos, se muestra una forma de establecer la configuración del proxy:

APT

Con estos comandos, se demuestra cómo configurar el proxy para APT:

sudo touch /etc/apt/apt.conf.d/proxy.conf

echo 'Acquire::http::Proxy "http://USERNAME:PASSWORD@DOMAIN";' \
    >> /etc/apt/apt.conf.d/proxy.conf

echo 'Acquire::https::Proxy "http://USERNAME:PASSWORD@DOMAIN";' \
    >> /etc/apt/apt.conf.d/proxy.conf

Reemplaza USERNAME:PASSWORD@DOMAIN con los detalles específicos de tu configuración. Por ejemplo, si tu proxy no requiere acceso, no incluyas USERNAME:PASSWORD@ con DOMAIN.

DNF

Con este comando, se muestra cómo configurar el proxy para DNF:

echo "proxy=http://USERNAME:PASSWORD@DOMAIN" >> /etc/dnf/dnf.conf

Reemplaza USERNAME:PASSWORD@DOMAIN con los detalles específicos de tu configuración. Por ejemplo, si tu proxy no requiere acceso, no incluyas USERNAME:PASSWORD@ con DOMAIN.

Configura los detalles del proxy en el archivo de configuración del clúster

En el archivo de configuración del clúster, establece los siguientes valores a fin de configurar el clúster para que use el proxy:

proxy.url

Una string que especifica la URL del proxy. Las máquinas de nodo y de arranque usan este proxy para acceder a Internet. La string de URL del proxy debe comenzar con su esquema, por ejemplo, http:// o https://.

proxy.noProxy

Una lista de direcciones IP, nombres de host y nombres de dominio que no deben pasar por el servidor proxy.

En la mayoría de los casos, no es necesario agregar ningún elemento a esta lista.

Casos de uso de noProxy:

  • Usa una duplicación de paquete privada, que se encuentra en la misma red privada (no necesitas proxy para acceder)

  • Usa una duplicación de registro privada, que se encuentra en la misma red privada (no necesitas un proxy para acceder)

Ejemplo

El siguiente es un ejemplo de la configuración de proxy en un archivo de configuración de clúster:

  proxy:
     url: http://USERNAME:PASSWORD@DOMAIN
     noProxy:
     - example1.com
     - example2.com

Parámetros de configuración de proxy para GKE Identity Service

Si usas GKE Identity Service para la autenticación en GKE en clústeres de Bare Metal, se requieren los siguientes pasos adicionales a fin de garantizar que GKE Identity Service funcione cuando esté detrás de un proxy.

  1. En el archivo de configuración del clúster, establece los detalles del proxy en la sección authentication de OIDC para la configuración de GKE Identity Service.

      authentication:
        oidc:
          proxy: http://USERNAME:PASSWORD@DOMAIN
    
  2. Actualiza la configuración del servidor proxy para permitir conexiones a las URLs de autenticación del proveedor de OIDC.

Cómo se usa el proxy dentro del clúster

Como regla general, los comandos de bmctl y los procesos que generan usan la configuración del proxy que definen las variables de entorno HTTPS_PROXY y NO_PROXY, if están definidas. De lo contrario, bmctl usa la configuración del proxy del archivo de configuración del clúster. Otros comandos que se ejecutan en la estación de trabajo de administrador, en las máquinas de nodo del clúster o que son ejecutados por el clúster de arranque usan la configuración del proxy del archivo de configuración del clúster.

El administrador de paquetes del SO en cada nodo usa sus propios archivos de configuración para la configuración del proxy.

Anula la configuración del proxy en tu máquina de arranque

Puedes ejecutar la estación de trabajo de administrador detrás de un proxy diferente al que usan las máquinas de nodo mediante la anulación de la configuración del proxy en el archivo de configuración del clúster. Para anular la configuración del proxy, configura las siguientes variables de entorno en la máquina de arranque:

export HTTPS_PROXY=http://USERNAME:PASSWORD@DOMAIN

Reemplaza USERNAME:PASSWORD@DOMAIN con los detalles específicos de tu configuración.

export NO_PROXY=example1.com,example2.com

Reemplaza example1.com,example2.com por direcciones IP, nombres de host y nombres de dominio que no deben pasar por el servidor proxy.

Efectos secundarios

Cuando se ejecuta como raíz, bmctl actualiza la configuración del proxy de Docker en la máquina de arranque. Si no ejecutas bmctl como raíz, configura el proxy de Docker de forma manual.

Reglas de firewall

Configura las reglas de firewall como se describe en las siguientes secciones para permitir el tráfico descrito necesario para GKE en Bare Metal.

Para conocer los requisitos de puerto de GKE en Bare Metal, consulta Uso de puertos.

Reglas de firewall para las direcciones IP del nodo del clúster

En la siguiente tabla, se describen las reglas de firewall para las direcciones IP disponibles en tus clústeres.

Desde

Puerto de origen

Hasta

Puerto

Protocolo

Descripción

Nodo del clúster 1024 - 65535 cloudresourcemanager.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
443 TCP/HTTPS Se requiere acceso para el registro de la flota.
Recopilador de Cloud Logging, que se ejecuta en un nodo del clúster 1024 - 65535 oauth2.googleapis.com
logging.googleapis.com
stackdriver.googleapis.com
servicecontrol.googleapis.com
storage.googleapis.com
www.googleapis.com
443 TCP/HTTPS
Recopilador de metadatos de Cloud, que se ejecuta en el nodo del clúster 1024 - 65535 opsconfigmonitoring.googleapis.com 443 TCP/HTTPS
Recopilador de Cloud Monitoring, que se ejecuta en el nodo del clúster 1024 - 65535 oauth2.googleapis.com
monitoring.googleapis.com
stackdriver.googleapis.com
servicecontrol.googleapis.com
443 TCP/HTTPS
Nodo del clúster 1024 - 65535 Registro local de Docker Depende del registro TCP/HTTPS Es obligatorio si GKE en Bare Metal está configurado para usar un registro local de Docker privado en lugar de gcr.io.
Nodo del clúster 1024 - 65535 gcr.io
oauth2.googleapis.com
storage.googleapis.com
Cualquier URL de la API de Google con el formato *.googleapis.com necesario para los servicios habilitados para el clúster de administrador
443 TCP/HTTPS Descarga imágenes de registros públicos de Docker. No es necesario si se usa un registro privado de Docker.
Agente de Connect, que se ejecuta en un nodo del clúster 1024 - 65535 cloudresourcemanager.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
www.googleapis.com
iam.googleapis.com
iamcredentials.googleapis.com
oauth2.googleapis.com
securetoken.googleapis.com
sts.googleapis.com
accounts.google.com
443 TCP/HTTPS Para obtener más información sobre el tráfico administrado por el agente de Connect, consulta Descripción general del agente de Connect.
Nodo del clúster 1024 - 65535 gkeonprem.googleapis.com
gkeonprem.mtls.googleapis.com
443 TCP/HTTPS Crea y administra el ciclo de vida del clúster en la infraestructura de los equipos físicos y de VMware.

Reglas de firewall para los componentes restantes

Las reglas que se describen en la siguiente tabla se aplican a todos los demás componentes que no se mencionaron en la sección anterior.

Desde

Puerto de origen

Hasta

Puerto

Protocolo

Descripción

Clientes y usuarios finales de la aplicación All VIP de entrada de Istio 80, 443 TCP Tráfico del usuario final al servicio de entrada de un clúster de usuarios
Estación de trabajo de administrador 32768 - 60999 gcr.io
cloudresourcemanager.googleapis.com
oauth2.googleapis.com
storage.googleapis.com
Cualquier URL *.googleapis.com necesaria para los servicios habilitados en este clúster
443 TCP/HTTPS Descarga imágenes de Docker de registros públicos de Docker.
Estación de trabajo de administrador 32768 - 60999 gcr.io
cloudresourcemanager.googleapis.com
iam.googleapis.com
oauth2.googleapis.com
serviceusage.googleapis.com
storage.googleapis.com
Cualquier URL de *.googleapis.com necesaria para los servicios habilitados en los clústeres de administrador o usuario
443 TCP/HTTPS Comprobaciones previas (validación).