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
- Contar con acceso a una cuenta gratuita de IBM Cloud
- Contar con una terminal con el IBM Cloud CLI y GIT instalado, opcionalmente puedes utilizar IBM Cloud shell o WSL sobre Windows.
- Contar con un cluster de Kubernetes, puedes obtener uno gratuito en IBM Cloud, considera la duración y características de tu cluster
- Tener configurado kubectl (opcionalmente oc) para ejecutar comandos en el cluster
- Un editor de texto para editar tus archivos de configuración, por ejemplo nano vi/vim o Emacs.
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
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.