Tres conceptos
- gráfico: contiene la información necesaria para crear una instancia de aplicación de Kubernetes
- config: contiene información de configuración de la versión de la aplicación
- lanzamiento: es una instancia en ejecución de un gráfico y su configuración
Crea un gráfico de timón
helm create hello-world
-
Chart.yaml se utiliza para describir la información relevante de este gráfico, incluido el nombre, la información descriptiva y la versión.
Solo algunas descripciones de texto simples -
values.yaml se utiliza para almacenar los valores de las variables utilizadas en los archivos de plantilla en el directorio de plantillas.
-
NOTES.txt se usa para introducir información después de implementar el Gráfico, por ejemplo: cómo usar el Gráfico, enumerar la configuración predeterminada, etc.
-
En el directorio de plantillas hay plantillas para archivos YAML, que siguen la sintaxis de la plantilla Go.
Los valores de las plantillas de archivo YAML en el directorio de plantillas están definidos en values.yaml de forma predeterminada, como la imagen del contenedor definida en deploy.yaml.
imagen: "{{.Values.image.repository}}: {{.Values.image.tag}}"
El valor de .Values.image.repository es nginx, .Values.image. definido en values.yaml El valor de la etiqueta es estable.
Los dos valores variables anteriores son los valores predeterminados que se generan automáticamente cuando se crea el gráfico, y puede modificarlos de acuerdo con la situación real. De hecho, todos son textos estáticos, que solo se analizan cuando se ejecutan.
Construir una aplicación de timón
Abra Chart.yaml, puede ver el siguiente contenido, nombre de configuración y versión
apiVersion: v1
appVersion: "1.0"
description: A Helm chart for Kubernetes
name: mychart
version: 0.1.0
Edite values.yaml, desplegará un Nginx en Kubernetes de forma predeterminada. El siguiente es el contenido del archivo values.yaml aplicado por mychart:
$ cat mychart/values.yaml
# Default values for mychart.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
repository: nginx
tag: stable
pullPolicy: IfNotPresent
service:
type: ClusterIP
port: 80
ingress:
enabled: false
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
path: /
hosts:
- chart-example.local
tls: []
# - secretName: chart-example-tls
# hosts:
# - chart-example.local
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}
Verifique la configuración del módulo
$ helm lint hello-world/
Pack
helm package hello-world
helm package mychart --debug #显示详细信息
Iniciar el almacén local de helm (se ha eliminado helm3)
helm serve --repo-path /data/helm/repository/ --url http://172.17.0.22:8879/charts/ &
Aplicación de actualización y consulta de almacén
$ helm repo update
$ helm search mychart
NAME CHART VERSION APP VERSION DESCRIPTION
local/hello-world 0.1.0 1.0 A Helm chart for Kubernetes
Implementar aplicaciones en Kubernetes
Después de que el gráfico se publique en el almacén, el gráfico se puede implementar mediante el comando helm install.
helm install hello local/hello-world
Ver la información de estado de Release
helm status wordpress
Gráficos de actualización
helm upgrade wordpress stable/wordpress
helm upgrade --install --force hello-world ./hello.tgz --namespace test # 也可以指定命名空间和它的taz包
Regrese a la versión anterior
helm rollback hello-world 1 # 向上归滚一个版本