Trois concepts
- graphique: contient les informations nécessaires pour créer une instance d'application de Kubernetes
- config: contient des informations de configuration de version d'application
- release: est une instance en cours d'exécution d'un graphique et sa configuration
Créer un graphique de barre
helm create hello-world
-
Chart.yaml est utilisé pour décrire les informations pertinentes de ce graphique, y compris le nom, les informations de description et la version.
Juste quelques descriptions textuelles simples -
values.yaml est utilisé pour stocker les valeurs des variables utilisées dans les fichiers de modèle dans le répertoire des modèles.
-
NOTES.txt est utilisé pour introduire certaines informations après le déploiement du graphique, par exemple: comment utiliser le graphique, répertorier les paramètres par défaut, etc.
-
Sous le répertoire Templates se trouvent des modèles pour les fichiers YAML, qui suivent la syntaxe du modèle Go.
Les valeurs des modèles de fichiers YAML dans le répertoire Templates sont toutes définies par défaut dans values.yaml, comme l'image de conteneur définie dans deployment.yaml.
image: "{{.Values.image.repository}}: {{.Values.image.tag}}"
où la valeur de .Values.image.repository est nginx, .Values.image. définie dans values.yaml La valeur de tag est stable.
Les deux valeurs de variable ci-dessus sont les valeurs par défaut qui sont générées automatiquement lors de la création du graphique, et vous pouvez les modifier en fonction de la situation réelle. En fait, ce sont tous des textes statiques, qui ne sont analysés que lorsqu'ils sont exécutés.
Créer une application de barre
Ouvrez Chart.yaml, vous pouvez voir le contenu, le nom et la version de la configuration suivants
apiVersion: v1
appVersion: "1.0"
description: A Helm chart for Kubernetes
name: mychart
version: 0.1.0
Modifiez values.yaml, il déploiera un Nginx sur Kubernetes par défaut. Voici le contenu du fichier values.yaml appliqué par 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: {}
Vérifier la configuration du module
$ helm lint hello-world/
Pack
helm package hello-world
helm package mychart --debug #显示详细信息
Démarrer l'entrepôt local de la barre (la barre 3 a été supprimée)
helm serve --repo-path /data/helm/repository/ --url http://172.17.0.22:8879/charts/ &
Actualisation de l'entrepôt et application de requête
$ 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
Déployer des applications dans Kubernetes
Une fois le graphique publié dans l'entrepôt, le graphique peut être déployé via la commande helm install.
helm install hello local/hello-world
Afficher les informations d'état de la version
helm status wordpress
Tableaux de mise à niveau
helm upgrade wordpress stable/wordpress
helm upgrade --install --force hello-world ./hello.tgz --namespace test # 也可以指定命名空间和它的taz包
Revenir à la version précédente
helm rollback hello-world 1 # 向上归滚一个版本