Crea un clúster y una carga de trabajo de Google Kubernetes Engine (GKE) de alta seguridad optimizados para la producción. En esta guía, se describen las siguientes plantillas que puedes usar para implementar una aplicación web de producción:
Plantilla de clúster de GKE de producción de nivel empresarial: Crea la infraestructura fundamental necesaria para una aplicación de producción. Esta plantilla configura un clúster de GKE privado y seguro optimizado para la integridad, las herramientas de redes avanzadas y la recuperación ante desastres.
Carga de trabajo de GKE de producción de nivel empresarial (vista previa): Implementa un gráfico de Helm que incluye la configuración para una aplicación web sin estado de alta disponibilidad. La carga de trabajo está configurada para mejorar la seguridad, la confiabilidad y la continuidad del servicio.
Por ejemplo, puedes implementar las plantillas de clúster y carga de trabajo para satisfacer las siguientes necesidades comerciales:
| Ejemplo | Necesidad empresarial | Implementación |
|---|---|---|
| Plataforma de comercio global | Una institución financiera requiere una plataforma de operaciones bursátiles distribuida a nivel global con baja latencia, tiempo de actividad máximo, seguridad estricta y cumplimiento auditable para manejar operaciones bursátiles de alta frecuencia. | Utiliza clústeres multirregionales distribuidos a nivel global con redes avanzadas para garantizar una latencia ultrabaja y una gran capacidad de recuperación. Implementa políticas de red sólidas, configuraciones de clústeres privados y funciones de seguridad avanzadas para la protección de datos y el cumplimiento de las reglamentaciones. |
| Plataforma de SaaS multiusuario | Un proveedor de software como servicio (SaaS) necesita alojar una plataforma altamente escalable, segura y optimizada en cuanto a costos para miles de clientes empresariales, lo que requiere un aislamiento estricto de los inquilinos, una asignación dinámica de recursos y una entrega continua de nuevas funciones sin tiempo de inactividad. | Usa clústeres de múltiples usuarios con aislamiento sólido de espacios de nombres, segmentación de redes y administración de cuotas para garantizar el uso compartido equitativo de recursos y la seguridad entre los usuarios. |
| Inferencia en tiempo real para operaciones críticas | Una organización necesita implementar modelos de IA/AA para la inferencia en tiempo real en aplicaciones de detección de fraudes críticas para la misión, lo que exige una latencia extremadamente baja, una alta capacidad de procesamiento y la capacidad de adaptarse rápidamente a nuevas versiones del modelo con una capacidad de auditoría completa. | Configura clústeres con grupos de nodos especializados para la inferencia de IA. Garantiza la conectividad de red con baja latencia y habilita el enrutamiento eficiente del tráfico a los extremos de inferencia. |
Arquitectura
En la siguiente imagen, se muestran los componentes y las conexiones de la plantilla:
A continuación, se describen los parámetros de configuración de los componentes en esta plantilla:
Clúster de GKE Standard: Es un clúster en el que se ejecuta tu carga de trabajo.
En la siguiente tabla, se describe la configuración del clúster en esta plantilla:
Configuración Objetivo location: us-central1Garantiza la localidad y el cumplimiento de los datos dentro de un límite geográfico. Una configuración multizonal dentro de la región proporciona alta disponibilidad. network: projects/PROJECT_ID/global/networks/enterprise-vpcEspecifica una VPC preexistente que suele diseñarse para la segmentación y la conectividad de la red. subnetwork: projects/PROJECT_ID/regions/us-central1/subnetworks/gke-subnetEspecifica una subred para el clúster en la VPC que, por lo general, se diseña con una asignación de IP y un aislamiento de red adecuados. master_authorized_networks_config: [{"cidr_block": "10.0.0.0/8", "display_name": "Internal Network"}]Restringe el acceso al extremo del plano de control a bloques CIDR de IP específicos y de confianza. Esto evita el acceso no autorizado a las APIs de administración de clústeres. private_cluster_config.enable_private_endpoint: trueGarantiza que solo se pueda acceder al plano de control con direcciones IP internas dentro de la VPC o las redes autorizadas. Esto mejora la seguridad, ya que elimina la exposición pública. private_cluster_config.enable_private_nodes: trueGarantiza que todos los nodos de trabajo solo tengan direcciones IP privadas, lo que los aísla de Internet pública y reduce la superficie de ataque. release_channel: STABLELas actualizaciones predecibles y probadas a fondo mantienen la estabilidad en un entorno de producción. network_policy.enabled: trueHabilita la política de red de Kubernetes, que proporciona control sobre la comunicación entre Pods para mejorar la seguridad y la microsegmentación. binary_authorization: trueAplica políticas de implementación, lo que garantiza que solo se puedan ejecutar imágenes de contenedor firmadas y confiables en el clúster. database_encryption: {"state": "ENCRYPTED_WITH_CMEK", "key_name": "projects/PROJECT_ID/locations/us-central1/keyRings/gke-keyring/cryptoKeys/gke-etcd-key"}Las claves de encriptación administradas por el cliente (CMEK) encriptan la base de datos, lo que proporciona seguridad de los datos y cumple con los requisitos de cumplimiento. workload_identity_config: {"enabled": true}Permite que las cuentas de servicio de Kubernetes actúen como cuentas de servicio de Google Cloud , lo que habilita el acceso seguro y detallado a los recursos con IAM. logging_configymonitoring_configse establecen en{"component_config": {"enable_components": ["SYSTEM_COMPONENTS", "WORKLOADS"]}}Se integra con Cloud Logging y Cloud Monitoring, lo que garantiza una observabilidad, auditoría y alertas integrales para las cargas de trabajo de producción. maintenance_policy: {"daily_maintenance_window": {"start_time": "03:00"}, "recurring_window": {"start_time": "00:00", "end_time": "04:00", "recurrence": "FREQ=WEEKLY;BYDAY=SAT,SUN"}}Los períodos de mantenimiento controlan cuándo GKE realiza actualizaciones automáticas, lo que minimiza las interrupciones en las aplicaciones críticas. enable_shielded_nodes: trueLos nodos de GKE protegidos proporcionan funciones de seguridad, como el inicio seguro y la supervisión de integridad, para proteger contra los rootkits y el software malicioso a nivel del inicio. gateway_api_config: {"channel": "CHANNEL_STANDARD"}Administración avanzada del tráfico para el enrutamiento complejo, el balanceo de cargas y la administración de APIs en aplicaciones empresariales. security_posture_config: {"mode": "ENTERPRISE", "vulnerability_mode": "VULNERABILITY_ENTERPRISE"}Administración avanzada de la postura de seguridad, incluido el análisis de vulnerabilidades y la aplicación de políticas Grupo de nodos de GKE: Es un grupo de nodos trabajadores que ejecutan los contenedores de la aplicación.
En la siguiente tabla, se describen los parámetros de configuración del grupo de nodos en esta plantilla:
Configuración Objetivo location: us-central1Especifica la región en la que se crea este grupo de nodos. Al igual que la ubicación del clúster, esto garantiza que los recursos del grupo de nodos se encuentren en una sola área geográfica. autoscaling: {"max_node_count":3, "min_node_count":1}Configura el escalador automático del clúster para este grupo de nodos. Garantiza que el grupo de nodos siempre mantenga al menos un nodo y establece el límite superior en tres nodos para controlar los costos y el consumo de recursos. node_config: {"machine_type":"e2-medium", "oauth_scopes":["https://www.googleapis.com/auth/cloud-platform"], "shielded_instance_config":{"enable_secure_boot":true}}Agrupa las configuraciones de los nodos dentro de este grupo. El tipo de máquina ofrece un equilibrio entre la CPU y la memoria, lo que lo hace adecuado para cargas de trabajo de uso general. Define el acceso otorgado a la cuenta de servicio. Habilita el inicio seguro para las instancias de VM protegida, lo que ayuda a protegerlas contra el software malicioso a nivel de inicio.
Configuración del gráfico de Helm
En la siguiente tabla, se enumeran los parámetros de configuración del gráfico de Helm, que se personalizaron para implementar y escalar una aplicación web básica en GKE.
| Configuración | Objetivo |
|---|---|
replicaCount: 3 |
Crea tres réplicas iniciales para establecer un nivel inicial de redundancia y alta disponibilidad básica para la aplicación. |
image.repository: gcr.io/google-samples/hello-app |
Usa una imagen de Docker de servidor web básica como marcador de posición. |
resources.requests: {"cpu": "100m", "memory": "128Mi"} |
Especifica la cantidad mínima de CPU y memoria que se reservan para cada pod, lo que garantiza recursos disponibles y una programación eficiente. |
resources.limits: {"cpu": "250m", "memory": "256Mi"} |
Especifica la cantidad máxima de CPU y memoria que se reservan para cada pod, lo que evita que un solo pod monopolice los recursos. |
networkPolicy.enabled: true |
Activa las políticas de red de Kubernetes para la aplicación, lo que te permite definir reglas sobre cómo los Pods se comunican entre sí y con otros extremos de la red, lo que impone la segmentación y el aislamiento de la red. |
service: {"type": "ClusterIP", "port": 80} |
Configura el servicio para el acceso interno dentro del clúster en el puerto HTTP estándar. |
pdb: {"enabled": true, "minAvailable": 1} |
Permite que un presupuesto de interrupción de Pods garantice que al menos una réplica permanezca disponible durante las interrupciones voluntarias, lo que mantiene una alta disponibilidad. |
Crea tu aplicación web
Usa las plantillas Clúster y clúster de GKE de producción de nivel empresarial para implementar tu aplicación web.
Implementa tu infraestructura web
Configura e implementa la plantilla de clúster de GKE de producción de nivel empresarial para crear la infraestructura fundamental en la que se ejecuta tu carga de trabajo web.
Duplica y, luego, implementa la plantilla de clúster de GKE de producción de nivel empresarial como una aplicación.
Se crea un clúster de GKE en el proyecto de implementación que elijas.
Configura los componentes. Para obtener más información, consulta lo siguiente:
Haz clic en Implementar. La aplicación se implementará después de varios minutos.
En el panel Detalles de la aplicación, haz clic en la pestaña Salidas.
Identifica el cluster_id de tu aplicación. Usarás esta información cuando implementes tu gráfico de Helm.
Implementa tu carga de trabajo web
Usa la plantilla Carga de trabajo de GKE de producción de nivel empresarial para implementar tu carga de trabajo web en el clúster que creaste. Implementarás un gráfico de Helm que incluye la configuración de tu carga de trabajo web.
En la página Catálogo de Google, en la plantilla Carga de trabajo de GKE de producción de nivel empresarial, haz clic en Crear aplicación nueva.
En el campo Nombre, ingresa un nombre único para tu aplicación.
En el área GKE Deployment Target, haz lo siguiente:
En la lista de proyectos, selecciona el proyecto en el que implementaste el clúster de GKE desde tu aplicación de clúster de GKE de producción de nivel empresarial.
En la lista Región, selecciona la región en la que implementaste el clúster de GKE.
En la lista Clústeres, selecciona el clúster de GKE implementado.
En la lista Espacio de nombres, ingresa el espacio de nombres de tu carga de trabajo. Si no cambiaste el nombre, ingresa
default.Haz clic en Crear aplicación.
Se crea la aplicación y se muestran los archivos de configuración.
En el panel Helm chart, haz lo siguiente:
Revisa los detalles de la configuración.
Opcional: Personaliza la configuración para satisfacer tus necesidades específicas.
Para implementar el gráfico de Helm en tu clúster, haz clic en Implementar.
Para ver los pasos detallados, consulta Implementa aplicaciones.
Después de varios minutos, la configuración del gráfico de Helm se implementará en tu clúster de GKE.
¿Qué sigue?
- Duplica y personaliza esta plantilla aprovechando las plantillas de Google.
- Diseña plantillas de aplicaciones para definir tus propios parámetros de configuración.
- Identifica las prácticas recomendadas generales de arquitectura con el Google Cloud framework de arquitectura.