Skip to content

This is an example of stateful Kubernetes deployment + service + pv

Notifications You must be signed in to change notification settings

razeone/kubernetes-mysql

Repository files navigation

kubernetes-mysql

Este es un ejemplo de cómo ejecutar una base de datos MySQL contenerizada en un cluster de Kubernetes utilizando:

  • Persistent Volumes
  • Persistent Volume Claims
  • Deployments
  • Services

¿Cómo ejecutar este ejemplo?

Pre requisitos

Inicio

1.- Clona el repositorio

git clone https://github.com/razeone/kubernetes-mysql
cd kubernetes-mysql

2.- Ejecuta el archivo generate_random_password.sh para generar una contraseña aleatoria para el usuario root de MySQL

./generate_random_password.sh

Esto creará un archivo llamado password.txt con la contraseña aleatoria generada en base 64, puedes ver el contenido del archivo con el comando cat password.txt y el password original en la salida del script.

3.- Edita el archivo mysql-pass-secret.yml y edita la línea 7 con el contenido del archivo password.txt

          password: '<tu-nueva-contraseña>'

4.- Una vez que hayas cambiado la contraseña; ejecuta:

sh deploy.sh

Deberías ver algo similar como resultado:

persistentvolume/mysql-pv-volume created
persistentvolumeclaim/mysql-pv-claim created
service/mysql created
deployment.apps/mysql created
NAME                     READY   STATUS    RESTARTS   AGE
mysql-7756c67fcc-wbxr5   1/1     Running   0          10s

Pon atención a la salida, has creado algunos objetos de Kubernetes y al final se muestra el pod que contiene tu base de datos.

Opcionalmente puedes conectarte a este pod utilizando el script console.sh

sh console.sh

Conectarte a tu Base de Datos

Para que puedas conectarte a tu base de datos puedes ejecutar el script sql_console.sh

1.- Edita el archivo sql_console.sh y reemplaza el password que se encuentra por defecto con tu nuevo password:

Ejemplo:

kubectl run -it --rm --image=mysql:5.6 --restart=Never mysql-client -- mysql -h mysql -p<tu-nueva-contraseña>

2.- Ejecuta el script:

sh  sql_console.sh

Este script genera un pod temporal que nos servirá para conectarnos a nuestra BD.

El contenido de este repositorio es un ejemplo para fines didácticos y no debe ser utilizado en producción.

About

This is an example of stateful Kubernetes deployment + service + pv

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages