
Como desarrollador, trato de estar con mis ojos en el progreso de las tecnologías que no puedo usar todos los días, pero son importantes para entender, porque podría afectar indirectamente mi trabajo. Por ejemplo, el reciente aumento en la contenedorización, popularizado por Docker, utilizado para alojar aplicaciones web en una escala. Desde un punto de vista técnico, no soy una persona de DevOps, pero a medida que construyo aplicaciones web todos los días, es bueno para mí vigilar la forma en que progresan estas tecnologías. Un buen ejemplo de esta progresión es el rápido desarrollo de las plataformas de orquestación de contenedores que le permiten implementar, escalar y administrar fácilmente aplicaciones contenedorizadas. Los principales actores en este momento parecen ser Kubernetes (de Google), Docker Swarm y Apache Mesos. Si desea una buena introducción para cada una de estas tecnologías y sus diferencias, le recomiendo leer este artículo.
En este artículo, comenzaremos simple y echaremos un vistazo a la plataforma Kubernetes y cómo puede configurar un sitio de WordPress en un solo clúster de nudos en su automóvil local. Instalación de Kubernetes Los documentos Kubernetes tienen un excelente tutorial interactivo que cubre muchas de estas cosas, pero para el propósito de este artículo solo cubriré la instalación y usaré en macOS. Lo primero que debemos hacer es instalar Kubernetes en su automóvil local. Utilizaremos una herramienta llamada Minikube, que está especialmente diseñada para facilitar una configuración de un clúster Kubernetes en su prueba local.
Según los documentos de Minikube, hay algunos requisitos previos antes de comenzar. Asegúrese de tener un hipervisor instalado (usaré VirtualBox). Luego debemos instalar el instrumento de línea de comando Kubernetes (conocido como Kubectl). Si está utilizando HomeBrew, esto es igual de simple de ejecutar: $ Brew Install Kubectl Ahora podemos instalar minikube: $ curl -lo minikube https://stastra.googleapis.com/minikube/releases/v0.21.0/minikube- Darwin-amd64 && chmod +x minikube && sudo mv minikube/usr/local/bin/Finalmente, queremos iniciar minikube, que creará una máquina virtual que actuará como un solo grupo de nudos. En este momento, debo señalar que, aunque ejecutamos cosas localmente en este artículo, la mayoría de los siguientes conceptos se aplicarán cuando ejecutemos un clúster Kubernetes completo en servidores reales. En un clúster multi-nodos, un nodo “maestro” sería responsable de administrar los otros nodos de trabajo (máquinas virtuales o servidores físicos), y Kubernetes automatizaría la distribución y programación de contenedores de aplicaciones en el clúster.
$ Minikube Start-VM-Driver = VirtualBox Installation Helm En este momento, ahora deberíamos tener un clúster Kubernetes (un solo nudo) que se ejecuta en nuestro automóvil local. Ahora podemos interactuar con Kubernetes de cualquier manera que queramos. Consideramos que KubernetesByExample.com es una buena introducción a los conceptos y términos de Kubernetes si desea comenzar a jugar. Aunque podríamos configurar las cosas manualmente, realmente usaremos una herramienta separada para instalar nuestra aplicación WordPress en nuestro clúster Kubernetes. Helm está etiquetado como un “Administrador de paquetes para Kubernetes” y funciona al permitirle implementar fácilmente paquetes de software precisos en su clúster, conocidos como “diagramas”. Puede pensar en un diagrama como un grupo de contenedores y configuraciones diseñadas para una aplicación particular (como WordPress). Primero, instalemos el timón en nuestro automóvil local: $ Brew instale Kubernetes-Helm Luego, necesitamos instalar Helm en nuestro clúster. Afortunadamente, esto es tan simple como la ejecución: $ Helm Init La instalación de WordPress ahora que Helm se ejecuta en nuestro clúster, podemos instalar el diagrama de WordPress: /WordPress instalará y ejecutará WordPress en un contenedor y mariadb en un contenedor de base de datos. Se conoce como “puente” en Kubernetes. Un puente es prácticamente una abstracción que representa un grupo de uno o más contenedores de aplicaciones y algunos recursos compartidos para esos contenedores (por ejemplo, volúmenes de almacenamiento, red, etc.).
Ofrecemos el lanzamiento de un espacio de nombre y un nombre para mantener las cosas organizadas y para hacerlas fáciles de encontrar. También establecemos ServiceType en Nodeport. Esto es importante porque, por defecto, el tipo de servicio se establecerá en LoadBalacer y, porque no tenemos un saldo de carga para nuestro clúster, no podríamos acceder a nuestro sitio de WordPress fuera del clúster. En la última parte del resultado de este pedido, notará algunas instrucciones útiles sobre cómo acceder a su sitio de WordPress. Ejecute estos comandos para obtener la dirección IP externa y el puerto para nuestro sitio de WordPress: $ export node_port = $ (kubectl get -namespace wordpress -o jsonpat = “{. WordPress) $ export node_ip = $ (kubectl get nodes -namespace wordpress – o jsonpath = “{. elementos [0] .status.addresses [0] .address}”) $ echo http: // $ node_ip: $ node_port / admin Ahora debería poder visitar la URL resultante (ignorando el bit / Admin) y ver WordPress ejecutándose en su propio clúster Kubernetes! WordPress Scalage Una de las mejores cosas sobre las plataformas de orquestación de contenedores, como Kubernetes, es que hace que su aplicación se escala y administra. Verifiquemos el estado de nuestras implementaciones:

$ Kubectl get implementaciones – -namespace = WordPress
Deberíamos ver que tenemos 2 implementaciones, una para la base de datos MariadB y otra para WordPress en sí. Ahora suponga que su sitio de WordPress está comenzando a ver mucho tráfico y queremos compartir la carga en varios casos. Podemos escalar la implementación de WordPress-WordPress ejecutando un comando simple: $ kubectl escala-replicas 2 implementaciones WordPress-WordPress-Namespace = WordPress si se ejecutamos nuevamente Kubectl Obtener implementaciones, ahora deberíamos ver algo como esto: Just-Usted ¡Han aumentado el sitio web de WordPress! Fácil, ¿verdad? Ahora hay varios contenedores de WordPress en los que el tráfico se puede equilibrar. Para obtener más información sobre la escala de Kubernetes, consulte este tutorial.
Alta validez Otra característica excelente de plataformas como Kubernetes es la capacidad no solo de escalar fácilmente, sino también para proporcionar una alta disponibilidad mediante la implementación de componentes de autocuración. Supongamos que una de sus implementaciones de WordPress fallan por alguna razón. Kubernetes reemplazará automáticamente la implementación instantánea. Podemos simular esto eliminando uno de los puentes que se ejecutan en nuestra implementación de WordPress. Primero, obtenga una lista de puentes en funcionamiento: $ kubectl Get pods – -namespace = WordPress

Luego elimine una de las vainas:

$ kubectl Eliminar pod {pod -id} -namespace = WordPress Si vuelve a ejecutar kubectl obtiene pods, debería ver kubernetes girando el puente de reemplazo de inmediato.
Yendo más allá, solo rayé la superficie de lo que Kubernetes puede hacer. Si desea profundizar un poco, le recomiendo que eche un vistazo a algunas de las siguientes características:

Escala horizontal
Curación de coche

Lanzamientos y pergaminos automáticos
Gestión secreta
¿Alguna vez ha ejecutado WordPress en una plataforma de contenedores?¿Alguna vez ha usado Kubernetes (u otra plataforma de orquestación de contenedores) y recibió buenos consejos?¿Cómo se pone normalmente sus sitios de WordPress?Dinos en los comentarios.
Ejecutar WordPress en un clúster de Kubernetes
Tags WordPress en ejecución en
homefinance blog