GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo implementar aplicaciones en Kubernetes usando Helm

Este artículo es la continuación de mi artículo "¿Qué es Helm y cómo instalarlo en el servidor Ubuntu 20.04?". Si es nuevo en Helm, le recomendaría que primero lea el artículo que mencioné. En este artículo, liberaremos Apache del gráfico existente. Crearemos un gráfico de muestra y lo publicaremos, actualizaremos, revertiremos, eliminaremos y restauraremos. Veamos los comandos brevemente antes de usarlos en el artículo más adelante.

  1. búsqueda de timón :Buscar gráficos de Helm
  2. repositorio de timón :Realice operaciones como añadir, listar, eliminar, actualizar e indexar en el Repositorio
  3. borrar timón :elimine el gráfico que, a su vez, elimina todos sus objetos de Kubernetes.
  4. estado del timón :muestra el estado del lanzamiento.
  5. creación de timón :crea un gráfico de timón.
  6. instalación de timón :instala un gráfico que a su vez crea sus objetos de Kubernetes
  7. mejora del timón :actualice una versión con los cambios que le hicimos.
  8. historial del timón :Obtener el historial del lanzamiento.
  9. retroceso del timón :revierte los cambios a la versión anterior.

Antes de continuar, se supone que está familiarizado con los conceptos básicos de Helm. También se supone que ya tiene instalado un clúster de Kubernetes y un cliente de timón.

Requisitos previos

  1. Clúster de Kubernetes con al menos 1 nodo trabajador.
    Si desea aprender a crear un clúster de Kubernetes, haga clic aquí. Esta guía lo ayudará a crear un clúster de Kubernetes con 1 maestro y 2 nodos en instancias AWS Ubuntu 18.04 EC2.
  2. Helm instalado en su nodo maestro (Busque mi artículo llamado "¿Qué es Helm y cómo instalarlo en el servidor Ubuntu 20.04" para comprender los conceptos básicos de Helm e instalarlo).

¿Qué haremos?

  1. Liberar un gráfico de muestra del repositorio.
  2. Cree un gráfico y lance una aplicación de muestra.
  3. Actualice la versión.
  4. Restaurar la versión después de eliminarla

Liberar un gráfico de muestra del repo

Primero, verifiquemos si el "helm" está disponible en el servidor o no.

versión timón

Como ejemplo, intentemos instalar un gráfico de Apache desde el concentrador. Ejecute el siguiente comando para buscar Apache en el concentrador.

centro de búsqueda de timón apache

Obtendrás un conjunto de resultados, copia la URL de una de las búsquedas de Apache. En este caso, copié la primera URL.

Presione la URL en el navegador web y verá una página como la siguiente.

En esta página, obtendrá comandos para agregar un repositorio a su sistema local e instalar el gráfico desde allí.

Ejecute los comandos en su sistema local que agregarán el repositorio para el gráfico de Apache.

timón repositorio agregar bitnami https://charts.bitnami.com/bitnami

lista de repositorios de helm

Una vez que tenga el repositorio en su sistema, estará listo para instalar el gráfico y crear una versión para Apache usando Helm.

timón instalar my-release bitnami/apache

Después de la ejecución exitosa de los comandos, verá el resultado como se muestra arriba.

Una vez que se publica el gráfico, puede ver los objetos que se han creado en el cluster de Kubernetes.

kubectl obtener nodos

kubectl obtener pods

Ahora puede obtener la IP del pod e intentar acceder a la página de Apache con el comando curl.

kubectl obtiene pods -o ancho

kubectl obtener servicio

rizo 10.244.1.2:8080

Si deseas eliminar el lanzamiento puedes hacerlo simplemente usando el siguiente comando

timón eliminar mi-liberación

Puede enumerar lanzamientos en el clúster y ver si el lanzamiento se eliminó con éxito o no.

timón ls

estado del timón my-release

Crea un gráfico e implementa una aplicación de muestra

En el escenario anterior, instalamos un gráfico que estaba disponible y configurado fácilmente. Podemos crear nuestro propio gráfico y lanzar nuestra aplicación. Crear un gráfico es muy simple usando helm. Si ejecuta el siguiente comando, obtendrá un gráfico con una aplicación de muestra de Nginx.

helm crea mi primer gráfico

Explore la estructura de carpetas del gráfico que creamos usando el comando anterior.

cd mi-primer-gráfico/

ls-l

ls -l gráficos/

ls -l plantillas/

ls -l plantillas/pruebas/

Comprueba el contenido del archivo Chart.yaml.

ls-lt

gráfico de gato.yaml

Comprueba el contenido de values.yaml

ls-lt

valores de gato.yaml

Ahora implementemos la aplicación de muestra usando el gráfico local.

pwd

CD ..

ls-l | grep mi-primer-gráfico

kubectl obtener pods

helm install my-first-release my-first-chart/

Una vez que el gráfico se publique con éxito, podrá ver un pod creado en el clúster.

kubectl obtener pods

kubectl obtener servicio

Ahora puede acceder al pod de Nginx a través del servicio.

rizo 10.104.229.187

Puedes encontrar información sobre el lanzamiento que creamos usando el siguiente comando.

timón ls

estado del timón mi-primer-lanzamiento

Actualizar la versión

En el escenario anterior, creamos un gráfico con una aplicación Nginx de muestra. El número de réplicas en el escenario anterior era 1. Si desea aumentar el número de réplicas, puede hacerlo fácilmente haciendo cambios en el archivo values.yaml.

cat mi-primer-gráfico/valores.yaml | réplica grep

vim mi-primer-gráfico/valores.yaml

cat mi-primer-gráfico/valores.yaml | réplica grep

timón ls

Ahora puede implementar fácilmente sus cambios y actualizar su versión.

helm upgrade my-first-release my-first-chart/

Incluso puede notar que la revisión de la versión se actualizó a 2.

timón ls

Esta vez puede ver dos pods ejecutándose en el clúster, ya que habíamos especificado el número de réplicas en 2.

kubectl obtener pods

timón ls

Si revisamos el historial del lanzamiento, notaremos que el lanzamiento tiene dos revisiones. La revisión uno tenía 1 pod y luego actualizamos el recuento de réplicas a 2, lo que creó la revisión 2 del lanzamiento.

timón historia mi-primer-lanzamiento

Si no queremos que se publiquen los cambios en la revisión 2 y queremos volver a la revisión 1, simplemente podemos hacerlo usando el siguiente comando de reversión.

helm rollback mi-primer-lanzamiento 1

timón ls

Y esto creará la revisión 3 para el lanzamiento.

timón historia mi-primer-lanzamiento

Ahora puede ver que solo hay un pod ejecutándose en el clúster.

kubectl obtener pods

En caso de que desee eliminar la aplicación Nginx de muestra publicada del gráfico, puede eliminarla eliminando la versión.

timón ls

helm eliminar mi-primer-lanzamiento

timón ls

Restaurar la publicación después de eliminarla

En el escenario anterior, eliminamos el lanzamiento. Pero, de forma predeterminada, la versión no conserva su historial de versiones cuando se elimina. En caso de que desee revertir en tal escenario, no podrá hacerlo a menos que especifique la opción --keep-history en el comando de eliminación de liberación.

timón ls

helm install mi-segundo-lanzamiento mi-primer-gráfico/

timón ls

Si especificas --la opción keep-history mientras eliminas la versión, el helm creará una nueva versión. De esta forma, puede volver a la versión de trabajo anterior incluso después de eliminar la versión o la aplicación.

helm eliminar mi segundo lanzamiento --keep-history

timón ls

timón ls -a

timón historia mi-segundo-lanzamiento

timón revertir mi segundo lanzamiento 1

timón ls

timón historia mi-segundo-lanzamiento

Conclusión

En este artículo, implementamos una aplicación de muestra del gráfico de Helm disponible en Internet. Incluso vimos los pasos para crear un gráfico de Helm en nuestro sistema y publicarlo. Junto con esto, vimos cómo eliminar gráficos de Helm, retroceder a versiones anteriores y conservar el historial de versiones incluso después de eliminar el chat.


Ubuntu
  1. Cómo crear un gráfico de timón

  2. Instale Elasticsearch en Kubernetes usando Helm Chart

  3. Cómo implementar Elasticsearch en Kubernetes

  4. Cómo implementar una instancia de WordPress en Kubernetes

  5. Cómo implementar el equilibrio de carga de Nginx en el clúster de Kubernetes en Ubuntu 18.04 LTS

Qué es Ingress Controller y cómo implementar Nginx Ingress Controller en Kubernetes Cluster en AWS usando Helm

Cómo instalar Kubernetes en Ubuntu 20.04

Cómo instalar Kubernetes usando Minikube en CentOS Linux

Cómo implementar Mattermost en Ubuntu 20.04

Cómo implementar Kubernetes de un solo nodo con Microk8s en Ubuntu 20.04

Cómo monitorear aplicaciones de Node.js usando el panel web de PM2