En esta página, se proporciona una descripción general de Private Service Connect en los clústeres de Google Kubernetes Engine (GKE).
En esta página, se supone que conoces lo siguiente:
- Conceptos básicos de redes, como el direccionamiento IP
- Redes de VPC
Descripción general
Private Service Connect (PSC) forma parte de Google Cloud's infraestructura de redes que permite que tus clústeres de GKE consuman de forma segura y privada servicios alojados en Google Cloud o en entornos locales, sin necesidad de exponer esos servicios de forma pública. Con PSC, Google Cloud asigna una dirección IP interna al plano de control para reenviar solicitudes a la API de administración de clúster de GKE, lo que te permite administrar tus clústeres sin que el tráfico pase por Internet pública. PSC proporciona un framework coherente que ayuda a conectar diferentes redes a través de un enfoque de redes de servicios y permite que los productores y consumidores de servicios se comuniquen mediante direcciones IP internas a una VPC.
En un clúster de GKE que usa la infraestructura de PSC, toda la comunicación entre el plano de control y los nodos del clúster se realiza de forma privada. También puedes aislar tu clúster en los niveles del plano de control y del grupo de nodos sin necesidad de administrar configuraciones complejas de intercambio de tráfico entre VPC.
Beneficios de los clústeres habilitados con Private Service Connect
Seguridad: PSC establece conexiones privadas entre el plano de control y los nodos de tu clúster de GKE, lo que mantiene el tráfico por completo dentro de la red de Google y lejos de Internet pública. Esto minimiza el riesgo de acceso no autorizado.
Conectividad simplificada: Para los clústeres de PSC, no tienes que administrar subredes específicas para el extremo del plano de control. El extremo de PSC se encuentra por completo dentro de la red del clúster, lo que elimina la necesidad de configuraciones de red complejas.
Escalabilidad: Puedes crear hasta 1,000 clústeres habilitados con PSC para satisfacer los requisitos de recursos altos. Por el contrario, solo puedes crear hasta 75 clústeres por zona o región para los clústeres que usan el intercambio de tráfico entre redes de VPC.
Configuración personalizable: PSC te permite controlar de forma independiente el aislamiento del plano de control, los grupos de nodos o las cargas de trabajo de tu clúster, lo que hace que tus clústeres sean más escalables y seguros. Puedes configurar una combinación de grupos de nodos privados y públicos en tu clúster.
Flexibilidad: Después de crear el clúster, puedes cambiar la configuración de aislamiento en cualquier momento. Puedes alternar entre el acceso público y privado al plano de control y cambiar la accesibilidad del grupo de nodos y la carga de trabajo desde Internet sin tener que crear un clúster nuevo.
Limitaciones
El plano de control tiene un extremo interno y un extremo externo. El extremo interno del plano de control no admite direcciones IP internas en las URLs de los webhooks que configures. Si tienes un webhook con una dirección IP interna en la URL, puedes mitigar esta incompatibilidad con los siguientes pasos:
Crea un servicio sin interfaz gráfica sin un selector para administrar de forma manual los extremos a los que este servicio dirige el tráfico. En el siguiente ejemplo, se muestra un servicio con un webhook que escucha en el puerto 3000:
apiVersion: v1 kind: Service metadata: name: <service-name> spec: clusterIP: None ports: - port: 3000 targetPort: 3000Crea un extremo correspondiente para el destino requerido. Por ejemplo, si tu webhook usa la dirección IP interna
10.0.0.1en la URL, puedes crear el siguiente extremo:apiVersion: v1 kind: Endpoints metadata: name: <service-name> subsets: - addresses: - ip: 10.0.0.1 ports: - port: 3000Actualiza la configuración del webhook: En la configuración del webhook, borra la URL con la dirección IP interna y agrega el servicio que creaste en el primer paso. Por ejemplo:
... kind: ValidatingWebhookConfiguration ... webhooks: - name: <webhook-name> ... clientConfig: service: name: <service-name> namespace: <namespace> path: "/validate" port: 3000En el ejemplo anterior, el webhook tiene una ruta de acceso de
/validatey escucha en el puerto 3000.Verifica tu webhook: Confirma que tu webhook pueda seguir recibiendo solicitudes del servidor de la API y que pueda aprobar, rechazar o modificar la solicitud según la lógica personalizada. Si recibes un error cuando verificas el webhook, es posible que debas crear un certificado nuevo y, luego, actualizar la configuración del webhook con los detalles del certificado nuevo. Por ejemplo:
... kind: ValidatingWebhookConfiguration ... webhooks: - name: <webhook-name> ... clientConfig: ... caBundle: <new-certificate> ...
Arquitectura
En el siguiente diagrama, se proporciona una descripción general de la arquitectura de un clúster que usa PSC:
Los siguientes son los componentes principales de un clúster habilitado con PSC:
Plano de control: Cada clúster de GKE tiene un servidor de la API de Kubernetes que administra el plano de control. El plano de control se ejecuta en una máquina virtual (VM) que está en una red de VPC en un proyecto propiedad de Google. Un clúster regional tiene varias réplicas del plano de control, cada una de las cuales se ejecuta en su propia VM.
El plano de control tiene un extremo interno (extremo de Private Service Connect) para la comunicación interna del clúster y un extremo externo. Puedes inhabilitar el extremo externo. El tráfico entre los nodos y el plano de control se enruta por completo mediante direcciones IP internas. Para obtener información sobre la configuración de tu clúster, consulta Verifica la configuración del plano de control.
Red de VPC: Es una red virtual en la que creas subredes con rangos de direcciones IP internas específicamente para los nodos y los Pods del clúster.
Extremo de Private Service Connect: Es el extremo interno del plano de control del clúster que reside en la red de VPC de tu proyecto. El extremo de PSC actúa como el punto de entrada para acceder al plano de control del clúster.
Adjunto de servicio: El adjunto de servicio es un recurso que establece una conexión segura y privada entre tu red de VPC y la red de VPC del productor. Como se muestra en el diagrama anterior, el extremo de PSC accede al adjunto de servicio a través de una conexión privada y permite que el tráfico fluya entre los nodos y el plano de control.
Configura el acceso al clúster
Tienes varias opciones para configurar el acceso al plano de control y el acceso a los nodos en los clústeres habilitados para PSC. Puedes cambiar estas configuraciones en cualquier momento después de la creación del clúster. Para configurar el acceso al clúster, consulta Personaliza el aislamiento de tu red.
Acceso al plano de control
Accede al plano de control solo con el extremo basado en DNS (recomendado). Puedes autorizar solicitudes para acceder al plano de control mediante la creación de políticas de permiso de IAM.
Accede al plano de control solo con extremos basados en IP. Puedes usar los extremos externos e internos del plano de control o inhabilitar el extremo externo para permitir solo el acceso desde las direcciones IP reservadas por Google (para fines de administración de clústeres) y las direcciones IP internas del clúster de GKE.
Si usas direcciones IP, te recomendamos que uses redes autorizadas para restringir el acceso al plano de control de tu clúster. Con las redes autorizadas, también puedes bloquear el acceso a tu plano de control desde Google Cloud VMs, Cloud Run o Cloud Run Functions con Google Cloud IPs externas.
Accede al plano de control con el extremo basado en DNS y los extremos basados en IP.
Acceso a los nodos del clúster
Con los clústeres habilitados para PSC, puedes configurar clústeres de modo mixto. Puedes configurar tu clúster para que tenga nodos con acceso interno o externo. También puedes cambiar la configuración de la red de nodos según el tipo de clúster que uses:
Para los clústeres de Autopilot, puedes configurar algunas cargas de trabajo para que se ejecuten en nodos privados y otras cargas de trabajo para que se ejecuten en nodos públicos. Por ejemplo, es posible que ejecutes una combinación de cargas de trabajo en tu clúster en la que algunas requieran acceso a Internet y otras no. Puedes implementar una carga de trabajo en un nodo con direccionamiento IP externo para garantizar que solo esas cargas de trabajo sean accesibles de forma pública.
Para los clústeres estándar, puedes aprovisionar algunos de tus nodos con direcciones IP internas, mientras que otros nodos pueden usar direcciones IP externas.
Clústeres con Private Service Connect
Para verificar si tu clúster usa Private Service Connect, ejecuta el
gcloud container clusters
describe comando. Si tu clúster usa Private Service Connect, el recurso privateClusterConfig tiene los siguientes valores:
- El campo
peeringNameestá vacío o no existe. - El campo
privateEndpointtiene un valor asignado.
Para habilitar tu clúster con PSC, crea el clúster en la versión 1.29 o posterior. De lo contrario, para las versiones 1.28 y anteriores, crea tu clúster sin habilitar nodos privados. Puedes actualizar este parámetro y habilitar nodos privados después de la creación del clúster.
¿Qué sigue?
- Obtén información para personalizar el aislamiento de la red en GKE.