Objetivos

Al finalizar el tutorial el estudiante estará en capacidad de:

Pasos previos

En particular se utilizarán los siguientes recursos:

  1. Repositorio privado con la imagen de contenedor de la aplicación ejemplo publicado en Artifact Registry. Por favor realice ese tutorial antes de continuar con el desarrollo de esta guía.
  2. gcloud SDK para acceder a los servicios del proveedor Google Cloud Platform a partir de la consola. En caso de no tenerla instalada puede consultar el siguiente manual de instalación:https://cloud.google.com/sdk/docs/install
  3. Herramienta de control de Kubernetes, kubectl. En caso de no tenerla instalada puede consultar el siguiente manual de instalación:https://kubernetes.io/es/docs/tasks/tools/install-kubectl/

Para la conexión entre el cluster y la base de datos vamos a utilizar un red virtual de direcciones privadas. Para crear la red utilice el siguiente comando en Cloud Shell.

gcloud compute networks create vpn-tutoriales-misw-s1 --project=<id-proyecto> --subnet-mode=custom --mtu=1460 --bgp-routing-mode=regional

Subred para kubernetes

Cree la subred que se utilizará en el cluster de kubernetes:

gcloud compute networks subnets create red-k8s-tutoriales --range=192.168.32.0/19 --network=vpn-tutoriales-misw-s1 --region=us-central1 --project=<id-proyecto>

Subred para la base de datos

Cree el rango de direcciones que se utilizará para desplegar la instancia de base de datos:

gcloud compute addresses create red-dbs-tutoriales --global --purpose=VPC_PEERING --addresses=192.168.0.0 --prefix-length=24 --network=vpn-tutoriales-misw-s1 --project=<id-proyecto>

Por último, otorgue acceso a los servicios de administración de redes de GCP para que pueda realizar la gestión de la instancia a través de la red virtual creada:

gcloud services vpc-peerings connect --service=servicenetworking.googleapis.com --ranges=red-dbs-tutoriales --network=vpn-tutoriales-misw-s1 --project=<id-proyecto>

Regla de firewall

Finalmente, cree una regla de firewall para permitir el tráfico entre el cluster de kubernetes y la base de datos que vamos a utilizar:

gcloud compute firewall-rules create allow-db-ingress --direction=INGRESS --priority=1000 --network=vpn-tutoriales-misw-s1 --action=ALLOW --rules=tcp:5432 --source-ranges=192.168.1.0/24 --target-tags=basesdedatos --project=<id-proyecto>

La aplicación de ejemplo que vamos a desplegar requiere de una base de datos relacional para almacenar los datos de los pedidos que se realicen. Para ello, despliegue una base de datos relacional PostgreSQL 14 y configure su acceso dentro de la VPN recién creada. Siga los pasos a continuación para lograrlo.

En la consola de GCP, diríjase a la sección de SQL dentro del submenú de Bases de datos:

Una vez dentro, cree una nueva instancia de base de datos Postgres. Utilice los siguientes datos para crear la instancia:

Realice la configuración de la máquina a ser utilizada en la instancia. Utilice la siguiente configuración:

Configure la configuración de red de la instancia según los siguientes datos:

Finalmente agregue la etiqueta de basesdedatos a la instancia.

Por último de click en crear. Al finalizar la creación debe poder ver la dirección asignada a la instancia en la red privada:

Para mayor información puede visitar la documentación oficial de Cloud SQL.

¡Éxitos en el desarrollo del tutorial y nos vemos en una próxima oportunidad!

[1] «Inicio rápido Cloud SQL», [Online]. Disponible en:https://cloud.google.com/sql/docs/postgres/quickstart