Hacer más con menos: comprender y utilizar Helm

¿Qué es Helm?

Helm es un administrador de paquetes para Kubernetes. Al igual que las herramientas de administración de paquetes como yum y apt, Helm puede implementar fácilmente las aplicaciones que queremos con un solo clic .

Writing Helm tiene tres objetivos principales:

1. Lograr fácilmente desde "cero a Kubernetes"
2. Proporcionar un sistema de administración de paquetes similar al sistema operativo
3. Enfatizar la seguridad y la capacidad de configuración de implementar aplicaciones en Kubernetes.

Un elemento muy importante en Helm: Chart

  • Chart es el paquete de software de Helm, lo que significa carta náutica. Un gráfico es un conjunto de archivos y directorios que siguen la especificación del gráfico y se utilizan para definir los recursos que se instalarán en kubernetes.
  • El gráfico contiene un archivo llamado chart.yaml que describe la versión, el nombre, la descripción y alguna información sobre el autor de este gráfico.
  • Un gráfico contiene plantillas, es decir, manifiestos de kubernetes.
  • Hay un archivo llamado valores.yaml en el gráfico que proporciona la configuración predeterminada. Este archivo contiene parámetros que se pueden anular durante la instalación y la actualización y se pueden modificar.
  • Cuando vea un gráfico, puede ser un paquete comprimido, como este ingress-nginx-4.0.17.tgz, o un directorio ingress-nginx.
  • Su estructura de directorio podría verse así:
[root@k8s-master01 ingress-nginx]# ls
CHANGELOG.md  Chart.yaml  ci  OWNERS  README.md  README.md.gotmpl  templates  values.yaml

Cuando se instala un gráfico, su flujo puede verse así:

  • Helm lee el gráfico
  • Enviar valores definidos a plantilla, generar manifiesto de kubernetes
  • El manifiesto se envía a kubernetes.
  • kubernetes crea el recurso solicitado en el clúster según el manifiesto

usando timón

Helm tiene versiones v2 y v3, v2 se ignora aquí porque estoy usando v3.
Helm proporciona una herramienta de línea de comandos llamada helm que usamos para operar.

Notas sobre la instalación del cliente helm

Una cosa a la que debe prestar atención al instalar helm, la versión de helm debe coincidir con la versión de kubernetes, como se muestra en la siguiente figura: la
versión específica corresponde a la referencia: https://helm.sh/docs/topics/version_skew/
inserte la descripción de la imagen aquí

A continuación instalamos el cliente helm en modo binario:

Para obtener instrucciones detalladas u otras referencias de instalación: https://helm.sh/docs/intro/install/official documentation
Actualmente, la última versión de helm cuando la instalé era la 3.8.0 y la versión de mi clúster k8s era la 1.23.x Totalmente compatible.

  • Descargar paquete binario
wget https://get.helm.sh/helm-v3.8.0-linux-amd64.tar.gz
  • Descomprimir el paquete binario
tar xf helm-v3.8.0-linux-amd64.tar.gz
  • Mueva el directorio helm en el directorio descomprimido a /usr/local/bin/helm
mv linux-amd64/helm /usr/local/bin/helm
  • La instalación ha terminado, muy simple.

Agregar repositorio de gráficos

Solo una herramienta de cliente no puede funcionar, también necesitamos saber de dónde proviene su paquete de gráficos, que es equivalente a la fuente de software instalada por yum.

  • Agregar un repositorio oficial
  • Nota: El nombre después de agregar se personaliza para su conveniencia, no es fijo
helm repo add bitnami https://charts.bitnami.com/bitnami

# 我的环境添加的存储库
[root@k8s-master01 ~]# helm repo list
NAME         	URL                                       
ingress-nginx	https://kubernetes.github.io/ingress-nginx
nginx-stable 	https://helm.nginx.com/stable             
bitnami      	https://charts.bitnami.com/bitnami    
  • ¿Comprobar si la adición es exitosa? De hecho, se ha demostrado anteriormente, este comando puede verificar que el inventario de almacenamiento que ha agregado no existe
helm repo list

Buscar en el repositorio de gráficos

  • Después de agregar la biblioteca, ¿cómo puedo saber si el paquete de gráficos que quiero instalar existe o no? Usa el siguiente comando
[root@k8s-master01 ~]# helm search repo apache
NAME                    	CHART VERSION	APP VERSION	DESCRIPTION                                       
bitnami/apache          	9.0.2        	2.4.52     	Apache HTTP Server is an open-source HTTP serve...
bitnami/airflow         	12.0.1       	2.2.3      	Apache Airflow is a tool to express and execute...
  • Por supuesto, también puede intentar buscar paquetes de gráficos en Internet:
[root@k8s-master01 ~]# helm search hub wordpress
URL                                               	CHART VERSION 	APP VERSION        	DESCRIPTION                                       
https://artifacthub.io/packages/helm/kube-wordp...	0.1.0         	1.1                	this is my wordpress package                      
https://artifacthub.io/packages/helm/bitnami/wo...	13.0.11       	5.9.0              	WordPress is the world's most popular blogging ...

instalar un gráfico

  • La premisa de instalar el gráfico es que debe haber un espacio de nombres, por supuesto, el valor predeterminado también puede serlo, para distinguir o crear un espacio de nombres.
  • A continuación, cree un espacio de nombres llamado mysql
kubectl create ns mysql
  • Luego instale el paquete de gráficos
hellm install my-mysql bitnami/mysql -n mysql

Dime qué significa este comando:

  • my-mysql representa el nombre del gráfico que estoy ejecutando, que está personalizado
  • bitnami/mysql: es el nombre del repositorio más el nombre del paquete
  • -n mysql: es el nombre del espacio de nombres especificado

Después de la instalación, puede verificar si la instalación fue exitosa:

hay que tener en cuenta es:

  • Independientemente de si su recurso Pod se puede crear con éxito, siempre que helm se cree con éxito, la instancia existirá.
  • Los nombres de las instancias dentro del mismo espacio de nombres son únicos y se informará un error cuando se vuelva a crear una instancia con el mismo nombre.
[root@k8s-master01 ~]# helm list -n mysql
NAME    	NAMESPACE	REVISION	UPDATED                                	STATUS  	CHART       	APP VERSION
my-mysql	mysql    	1       	2022-02-17 14:32:38.423267837 +0800 CST	deployed	mysql-8.8.23	8.0.28
  • Este comando puede ver algunos estados del gráfico que creó:
[root@k8s-master01 ~]# helm status my-mysql -n mysql
  • Cuando no desee este gráfico, también puede optar por desinstalarlo:
[root@k8s-master01 ~]# helm uninstall my-mysql -n mysql

Instalación de configuración personalizada

La configuración instalada predeterminada a menudo no es lo que necesitamos, luego podemos extraer el paquete de gráficos y luego modificar los parámetros antes de ejecutar.

  • Despliegue el paquete de gráficos, descomprímalo y podrá ver la información básica en el paquete
[root@k8s-master01 ~]# helm pull bitnami/mysql
[root@k8s-master01 ~]# tar xf mysql-8.8.23.tgz -C /temp/
[root@k8s-master01 ~]# cd /temp/mysql/
[root@k8s-master01 mysql]# ls
Chart.lock  charts  Chart.yaml  ci  README.md  templates  values.schema.json  values.yaml
  • Puede modificar su values.yamlarchivo, pero no se modificará aquí.
  • Luego ejecute el archivo modificado values.yaml, ya que está ejecutando un archivo local, no necesita agregar la dirección de origen
[root@k8s-master01 mysql]# helm install mysql-01 -n mysql .
  • Si ejecutó el gráfico y luego modificó el archivo yaml, puede actualizarlo con este comando
[root@k8s-master01 mysql]# helm upgrade --install mysql-01 -n mysql .

Eso es todo, solo hable sobre el uso básico del timón.
En el futuro, escribiré el uso de gráficos y crearé gráficos y otro contenido por mí mismo.

Supongo que te gusta

Origin blog.csdn.net/qq_42527269/article/details/123027203
Recomendado
Clasificación