Revista Tecnología

Kubernetes en Nutanix - Cómo desplegar una aplicación en alta disponibilidad sobre el clúster de Kubernetes

Publicado el 01 abril 2020 por Dbigcloud @dbigcloud

En la entrada anterior se explicó cómo configurar localmente Kubectl para administrar por consola el clúster de Kubernetes y se creó el namespace dbigcloud. Ahora es el momento de desplegar una aplicación con alta disponibilidad sobre dicho clúster.

 

How to create an HA application in a Kubernetes Cluster with Nutanix

En el post de hoy se verá cómo desplegar una aplicación en alta disponibilidad en el clúster de Kubernetes creado anteriormente en Nutanix. La aplicación está basada en el ejemplo: Deploying PHP Guestbook application with Redis de la documentación oficial de Kubernetes. Ha sido adaptado para Nutanix y añadidas opciones de monitorización de PODs.

Esta consta de tres servicios distintos y tres despliegues. Dispone de los siguientes componentes:

  • Servicio para el frontend que utiliza una interfaz programada con PHP, del cual se despliega tres PODs.
  • Servicio para el master backend, que utiliza Redis como base de datos en memoria, únicamente se despliega un POD. 
  • Servicio para el slave backend, también utiliza Redis y se sincroniza con el master, se despliegan dos PODs.

Todos los ficheros YAML han sido adaptados para Nutanix y subidos al repositorio de GitHub de DBigCloud. Podéis utilizarlo para seguir el ejemplo o incluso para hacer demostraciones o POCs. Siempre bajo vuestra responsabilidad. En el post se configurará cada una de las opciones de la aplicación mediante ficheros YAML ya que es más cómodo.

Desplegando una aplicación con alta disponibilidad en un clúster de Kubernetes de Nutanix

Tal y como se ha comentado varias veces, el componente para desplegar aplicaciones en Nutanix es Calm. A través de este, se desplegará la aplicación de hoy. Es muy importante haber seguido las entradas anteriores, ya que si te has saltado algún paso, posiblemente no puedas desplegar PODs.

Lo primero que hay que hacer es crear un blueprint que va a servir de plantilla. Para ello hay que dirigirse al apartado de Blueprints, pulsar Blueprint -> Multi VM/Pod Blueprint.

How to create an HA application in a Kubernetes Cluster with Nutanix

El siguiente paso será identificar el Blueprint y asignarlo a un proyecto, este debe de estar creado anteriormente y asignado a un proveedor de tipo Kubernetes tal y como se ha visto en posts anteriores.

How to create an HA application in a Kubernetes Cluster with Nutanix

Una vez identificado se abrirá una nueva ventana que permitirá crear máquinas virtuales y PODs, permitiendo su configuración. Lo primero que hay que realizar es añadir tres "PODs", uno para cada componente. Realmente esto no es el equivalente de un POD en Kubernetes sino un Servicio. Se realiza pulsando en el símbolo + de la ventana que aparece abajo a la derecha. Es recomendable añadir un nombre descriptivo a cada componente para poderlos identificar.

 

How to create an HA application in a Kubernetes Cluster with Nutanix

Si se observa la imagen anterior, en la columna de la derecha aparece opciones para configurar los "PODs". Tal y como se comentó anteriormente, toda la configuración se realizará mediante ficheros YAML. Por ello es importante pulsar sobre Spec Editor, elegir YAML y luego pulsar sobre Edit para que se abra una ventana de mayor tamaño que será más cómoda de usar.

How to create an HA application in a Kubernetes Cluster with Nutanix

En Nutanix, cada "POD" (servicio) está compuesto por:

  • Servicio
  • Contenedor
  • Despliegue

De esta forma es necesario crear las especificaciones de cada componente de la APP. Si accedéis al ejemplo en el repositorio de DBigCloud os encontrareis con la siguiente estructura:

  • Frontend
    • container.yaml
    • deployment.yaml
    • service.yaml
  • Slave
    • container.yaml
    • deployment.yaml
    • service.yaml
  • Master
    • container.yaml
    • deployment.yaml
    • service.yaml

En el propio editor, hay que añadir cada una de las especificaciones de los ficheros del repositorio: Pod Deployment Spec, Container Spec y Service Spec. Esto se hace por cada uno de los "PODs" creados.

IMPORTANTE: En el post anterior se creó el namespace dbigcloud, que es el utilizado en cada uno de los "PODs". También es importante conservar los tabulados de los ficheros YAML ya que sino aparecerán errores.

Una vez se hayan rellenado todas las especificaciones de cada uno de los componentes de la aplicación es posible guardar el blueprint y posteriormente crear una aplicación basada en él.

How to create an HA application in a Kubernetes Cluster with Nutanix

Para crearla hay que pulsar en Launch. En la nueva ventana hay que rellenar el nombre de la aplicación: DBigCloud_redis_example.

How to create an HA application in a Kubernetes Cluster with Nutanix

Se pulsa en Create y esta comenzará a desplegarse. Este proceso puede tardar aproximadamente 15/20 minutos. Hay que tener en cuenta que las imágenes de los contenedores se encuentran en una ubicación remota. Una vez haya terminado se podrá comprobar que aparece en estado Running, si no ha habido problemas.

How to create an HA application in a Kubernetes Cluster with Nutanix

Desde la propia ventana de aplicaciones se pueden observar diferentes escenarios. Por ejemplo, desde Audit se puede comprobar los logs sobre la creación de la aplicación. En la pestaña Services, se muestran los servicios de Kubernetes desplegados y muestra el estado de cada uno.

How to create an HA application in a Kubernetes Cluster with Nutanix

Ahora ya se encuentra la aplicación funcionando. Si se accede por consola mediante kubectl se pueden ver los PODs que hay en el namespace DBigCloud. Para ello se lanza el comando:

kubectl get pod --namespace dbigcloud

How to create an HA application in a Kubernetes Cluster with Nutanix

Si se observa la imagen anterior, están cada uno de los PODs de Kubernetes que se han desplegado correctamente.Para acceder a la aplicación desde el navegador, es necesario conocer la IP del clúster y el puerto que utiliza en la aplicación. Esto es debido a que se ha especificado el tipo de acceso como NodePort. Para conocer el puerto se deben listar los servicios del namespace dbigcloud con el comando:

kubectl get service --namespace dbigcloud

How to create an HA application in a Kubernetes Cluster with Nutanix

Sobre el servicio frontend se puede ver como en la columna PORT aparece 80:32558/TCP esto quiere decir que se hará una redirección del puerto 32558 del clúster al puerto 80 del servicio. Ahora que se conoce el puerto de acceso, hay que conocer que IP tiene asignada el clúster utilizando el comando:

kubectl config view

How to create an HA application in a Kubernetes Cluster with Nutanix

Con esto ya es posible acceder a la aplicación a través de la URL: https://10.42.94.133:32558 y dejar tus comentarios en el libro de visitas.

How to create an HA application in a Kubernetes Cluster with Nutanix

 En el siguiente post se verá cómo actualizar los nodos del clúster con un clic.

Kubernetes en Nutanix:

Cómo desplegar un clúster de Kubernetes

Cómo ampliar el clúster de Kubernetes

Cómo acceder a los logs del clúster de Kubernetes

Cómo crear un proveedor de tipo Kubernetes para Nutanix Calm

Cómo acceder al clúster de Kubernetes mediante kubectl

- Cómo desplegar una aplicación en alta disponibilidad sobre el clúster de Kubernetes


Compártelo:


Volver a la Portada de Logo Paperblog