Volver al blog

Configuración de WordPress con MySQL en Kubernetes con Helm

Configuración de WordPress con MySQL en Kubernetes con Helm

Kubernetes es ahora la forma estándar de implementar aplicaciones que son escalables y tienen alta disponibilidad. Kubernetes permite a los desarrolladores levantar y bajar instancias rápidamente según sea necesario para garantizar una entrega fluida de contenido. Para obtener más información sobre Kubernetes, siga nuestra guía detallada Conociendo Kubernetes.

Helm es un gestor de paquetes muy popular que se utiliza para instalar aplicaciones en Kubernetes. Helm tiene como objetivo implementar y administrar aplicaciones en clústeres de Kubernetes y simplificar el proceso a medida que avanzamos. También proporciona acceso a aplicaciones listas para usar para Kubernetes que están empaquetadas. Estas se denominan Charts. Estar familiarizado con Kubernetes y Helm es una adición importante al arsenal de cualquier especialista en DevOps.

WordPress es uno de los sistemas de gestión de contenidos (CMS) más populares. Combinarlo con la base de datos MySQL da como resultado aplicaciones web de alto rendimiento y altamente escalables. Mantener MySQL externo también permitirá que más aplicaciones aprovechen la misma base de datos para sus casos de uso.

En esta publicación, instalaremos WordPress en Kubernetes utilizando el gestor de paquetes Helm y los conectaremos a un servidor MySQL externo. ¡Comencemos!

Prerequisites

Se necesitará la siguiente configuración de software para completar con éxito este tutorial:

  1. Un clúster de Kubernetes activo y en funcionamiento. Siga este tutorial para conocer los pasos de instalación de Kubernetes en Ubuntu.
  2. La herramienta de línea de comandos de Kubernetes kubectl.
  3. Necesitará tener instalado el gestor de paquetes Helm. Si no tiene Helm listo para usar, puede descargarlo desde su página oficial de lanzamientos en GitHub – helm/helm: The Kubernetes Package Manager. Para comenzar con una guía paso a paso de Helm, también puede leer Introduction to Helm: Package Manager for Kubernetes.
  4. Necesitará tener instalado MySQL junto con el usuario root y la contraseña. Si es nuevo en MySQL, asegúrese de consultar How to setup MySQL on a server and MySQL basics y MySQL User – Create and Grant Permissions.

También necesita tener un clúster de Kubernetes en funcionamiento conectado con MySQL. Para los usuarios que tienen múltiples clústeres, asegúrese de conocer el clúster actual conectado con MySQL. Para ver todos los diferentes clústeres configurados en su archivo de configuración kubectl, ejecute el siguiente comando:

En su máquina, debería obtener la siguiente salida:

Actual

Nombre

Clúster

AuthInfo

Namespace

*

docker-desktop

docker-desktop

docker-desktop

Dado que estamos usando Docker Desktop para ejecutar Kubernetes, verá docker-desktop en pantalla. Sus valores pueden ser diferentes. El signo de asterisco (*) indica qué clúster es actualmente el contexto predeterminado. En caso de que necesite cambiar el contexto actual, ejecute:

Ahora está listo para seguir los pasos del tutorial.

Configuración de MySQL

Primero, crearemos un usuario dedicado en MySQL para conectarnos a WordPress. Esto es necesario porque nuestra instalación de WordPress residirá en un servidor separado dentro del clúster de Kubernetes. Desde el servidor MySQL, inicie sesión en MySQL con el siguiente comando:

Se le solicitará la contraseña de root. Ingrese la contraseña y se conectará.

  • Creación de una base de datos dedicada para WordPress

En MySQL puede haber cualquier cantidad de bases de datos. Además, las bases de datos se pueden compartir entre aplicaciones. WordPress también viene con su propia base de datos. Aquí tenemos que crear una base de datos dedicada para WordPress. Para crear esta base de datos dedicada, puede ejecutar la siguiente instrucción en la consola de MySQL:

  • Creación de un usuario dedicado para WordPress

Una vez creada la base de datos, crearemos un usuario dedicado para esta base de datos. Usaremos este usuario para conectarnos a nuestra base de datos recién creada:

Introduzca una contraseña segura arriba. Aunque hemos creado el usuario para WordPress, no hemos añadido ningún privilegio hasta ahora. Necesitamos proporcionar privilegios a nuestros usuarios para el acceso y las operaciones DML (Manipulación de Datos). Para simplificar las cosas, vamos a proporcionar a nuestros usuarios todos los privilegios. Tenga cuidado, esto no se recomienda en Producción. Ejecute el siguiente comando en la consola de MySQL:

Para actualizar las tablas internas de MySQL que gestionan los permisos de acceso, utilice la siguiente sentencia:

Finalmente, puede cerrar el cliente MySQL ejecutando el siguiente comando en la consola de MySQL:

  • Verificación de nuestro usuario y base de datos

A continuación, tenemos que verificar que nuestro WordPress usuario pueda conectarse a la base de datos de WordPress. Para hacer esto, abra la consola de MySQL y ejecute el siguiente comando:

Se le solicitará la contraseña. Utilice la contraseña que introdujo anteriormente para el usuario de WordPress. Si puede iniciar sesión, enhorabuena, ha creado un usuario de MySQL con éxito. A continuación, verifique que este usuario tiene acceso a la base de datos de WordPress. Ejecute el siguiente comando en la consola de MySQL:
Si ve su base de datos de WordPress a continuación, su usuario de WordPress tiene acceso a la base de datos de WordPress.

  • Permitir conexiones remotas a nuestro servidor MySQL

Hasta ahora, tenemos un usuario de WordPress y una base de datos de WordPress en funcionamiento. Sin embargo, nuestro servidor MySQL y la base de datos de WordPress están en servidores separados. Por lo tanto, debemos asegurarnos de que WordPress pueda conectarse a la base de datos MySQL. Para ello, necesitamos editar nuestra configuración de MySQL para permitir conexiones procedentes de hosts remotos. Tendrá que editar el mysqld.cnf archivo. En sistemas basados en Linux, este archivo se encuentra en:

Después de eso, abra el archivo usando cualquier editor de texto y localice bind-address. El bind-address especifica la IP en la que MySQL puede escuchar. Por defecto, MySQL escucha solo en 127.0.0.1.. Para permitir conexiones desde hosts externos, cambie el bind-address a 0.0.0.0.. Para que estos cambios surtan efecto, reinicie el servidor MySQL ejecutando el siguiente comando:

A continuación, si desea probar si puede conectarse de forma remota, ejecute el siguiente comando desde su máquina local o servidor de desarrollo:
Añada mysql_server_ip al comando anterior y ejecútelo. Si puede conectarse sin errores, puede continuar.

Instalación y actualización de WordPress

WordPress por defecto utiliza MariaDB como su base de datos. No queremos usar esta base de datos, ya que queremos nuestra base de datos MySQL. Junto con este cambio, también necesitamos configurar el usuario administrador y la contraseña. Haremos esto implementando parámetros de línea de comandos.

Primero, cree una nueva carpeta llamada my blog-settings. Dentro de la carpeta, cree un nuevo archivo llamado values.yaml . Introduzca el siguiente contenido en el values.yaml archivo:

Este archivo se explica por sí mismo. Observe que a continuación hemos desactivado MariaDB. Ahora que nuestra configuración está lista, es hora de ejecutar helm para una instalación de WordPress. Ejecute el siguiente comando en PowerShell:

Una vez completado el proceso, verá un servicio creado con el nombre myblog-wordpress. Pasará algún tiempo antes de que WordPress esté listo para ser utilizado. Para encontrar los servicios en ejecución, ejecute el siguiente comando:
Obtendrá un resultado como este:

NAME

TYPE

CLUSTER-IP

EXTERNAL-IP

PORT

myblog-wordpress

ClusterIP

10.96.0.1

<none>

80:31403/TCP,443:30879/TCP

Aquí tenemos información muy útil sobre los servicios en ejecución. Debemos prestar atención a la IP externa y al puerto. La IP externa es la IP en la que se está sirviendo su WordPress. Dado que estamos utilizando Docker Desktop, obtenemos none en la IP externa. Obtendrá la IP dependiendo de su sistema. Abra su navegador web e introduzca esta IP. Verá la página de inicio de sesión de WordPress:

WordPress with MySQL 1

Estas son las credenciales que hemos proporcionado en el archivo YAML anterior. Introduzca esas credenciales y estará listo para configurar su sitio web en WordPress y almacenar contenido en nuestra base de datos MySQL recién creada.

Actualizar WordPress

WordPress lanza actualizaciones para corregir vulnerabilidades de seguridad y lanzar más funciones/correcciones de errores y más. Puede actualizar la instalación de WordPress ejecutando el siguiente comando en PowerShell:

Antes de la actualización, si desea ver la lista de versiones lanzadas puede ejecutar el siguiente comando:

Obtendrá la siguiente salida como:

Si desea ver si hay una nueva versión disponible del repositorio de WordPress, puede ejecutar el siguiente comando:

Siempre que desee actualizar su versión de WordPress al último chart de WordPress, debe ejecutar:

Tenemos que usar el mismo archivo de configuración que antes para que los valores de configuración no cambien.

Revertir una versión

Cada vez que realiza una actualización utilizando Helm, Helm crea un punto de control de la versión. Puede volver atrás si las cosas no funcionan como se esperaba. Las versiones se pueden comparar y revertir. Si el proceso de actualización sale mal debido a cualquier problema, puede revertir a la versión anterior. Para revertir, ejecute el siguiente comando:

En nuestro caso, ejecute el siguiente comando para revertir a la versión anterior:

Para verificar ahora que el proceso de reversión se ha completado con éxito, puede ejecutar el comando helm list .

Conclusión

En este completo tutorial, le mostramos cómo configurar MySQL e instalar WordPress con este MySQL externo. Instalamos WordPress en Kubernetes utilizando el gestor de paquetes Helm y también realizamos actualizaciones en WordPress.

Ahora que conoce la instalación en Kubernetes utilizando Helm, no se detenga aquí. No dude en revisar el blog de CloudSigma para obtener más información sobre Kubernetes:

¡Feliz computación!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev es diseñador creativo en CloudSigma, centrado en una identidad empresarial coherente mediante el uso de canales de marketing tradicionales e innovadores. Es experto en fusionar la visión artística con el marketing estratégico para crear narrativas de marca impactantes.

Comentarios

Aún no hay comentarios. Sea el primero.