Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Einführung in Helm - der Paket-Manger für Kubernetes

Ad

▪
▪
▪
▪
▪
▪
▪

Ad

Deployment Pod
Service
Pod
Pod
Ingress
Secret
Secret
Secret
ConfigMap
HPA
ReplicaSet
dapr
component
Sidecar Pod

Ad

▪
▪
▪
▪
▪

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Wird geladen in …3
×

Hier ansehen

1 von 54 Anzeige
1 von 54 Anzeige

Einführung in Helm - der Paket-Manger für Kubernetes

Herunterladen, um offline zu lesen

Applikationen nach Kubernetes auszurollen kann komplex und aufwändig werden. Schon bei einer verhältnismässig kleinen Applikation müssen mehrere Kubernetes-Ressourcen bereitgestellt werden. Hinzu kommt die Konfiguration Zielsystem-abhängiger Einstellungen und Konfigurationen.

Helm ist ein Paketmanager für Kubernetes, der es Entwicklern und Betreibern ermöglicht, Anwendungen und Dienste einfacher zu verpacken, zu konfigurieren und in Kubernetes-Clustern bereitzustellen. In dieser Session lernen Sie die Grundlagen von Helm kennen und sehen in einer Live-Demo, wie ein Helm-Chart von Grund auf erstellt wird.

Applikationen nach Kubernetes auszurollen kann komplex und aufwändig werden. Schon bei einer verhältnismässig kleinen Applikation müssen mehrere Kubernetes-Ressourcen bereitgestellt werden. Hinzu kommt die Konfiguration Zielsystem-abhängiger Einstellungen und Konfigurationen.

Helm ist ein Paketmanager für Kubernetes, der es Entwicklern und Betreibern ermöglicht, Anwendungen und Dienste einfacher zu verpacken, zu konfigurieren und in Kubernetes-Clustern bereitzustellen. In dieser Session lernen Sie die Grundlagen von Helm kennen und sehen in einer Live-Demo, wie ein Helm-Chart von Grund auf erstellt wird.

Anzeige
Anzeige

Weitere Verwandte Inhalte

Weitere von Marc Müller

Anzeige

Einführung in Helm - der Paket-Manger für Kubernetes

  1. 1. ▪ ▪ ▪ ▪ ▪ ▪ ▪
  2. 2. Deployment Pod Service Pod Pod Ingress Secret Secret Secret ConfigMap HPA ReplicaSet dapr component Sidecar Pod
  3. 3. ▪ ▪ ▪ ▪ ▪
  4. 4. apiVersion: apps/v1 kind: Deployment metadata: name: helloworld-dev namespace: dev generation: 1 labels: app.kubernetes.io/instance: helloworld-dev app.kubernetes.io/name: helloworld app.kubernetes.io/version: 1.16.0 annotations: deployment.kubernetes.io/revision: '1' replicas: 2 spec: replicas: 2 selector: matchLabels: app.kubernetes.io/instance: helloworld-dev app.kubernetes.io/name: helloworld template: metadata: labels: app.kubernetes.io/instance: helloworld-dev app.kubernetes.io/name: helloworld spec: containers: - name: helloworld image: 4tecture/hello-world:v3.1 ports: - name: http containerPort: 80 protocol: TCP env: - name: DeploymentEnvironment value: Development - name: Message value: Hello dear audience! resources: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File imagePullPolicy: IfNotPresent securityContext: {} restartPolicy: Always terminationGracePeriodSeconds: 30 dnsPolicy: ClusterFirst serviceAccountName: helloworld-dev serviceAccount: helloworld-dev securityContext: {} schedulerName: default-scheduler strategy: type: RollingUpdate rollingUpdate: maxUnavailable: 25% maxSurge: 25% revisionHistoryLimit: 10 progressDeadlineSeconds: 600
  5. 5. apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: helloworld-dev namespace: dev generation: 1 labels: app.kubernetes.io/instance: helloworld-dev app.kubernetes.io/name: helloworld app.kubernetes.io/version: 1.16.0 annotations: cert-manager.io/issuer: letsencrypt spec: ingressClassName: nginx tls: - hosts: - helloworld.dev.aksdemo.4tecture.ch secretName: helloworld-dev-tls rules: - host: helloworld.dev.aksdemo.4tecture.ch http: paths: - path: / pathType: ImplementationSpecific backend: service: name: helloworld-dev port: number: 80
  6. 6. ▪ ▪ ▪ ▪ ▪ ▪
  7. 7. ▪ ▪ ▪ Source: https://helm.sh/
  8. 8. ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ Source: https://helm.sh/
  9. 9. ▪ ▪ ▪ ▪ ▪
  10. 10. Source: https://docs.helm.sh/developing_charts/#charts
  11. 11. Template Engine Release Values Chart Files Capabilities Template
  12. 12. ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪
  13. 13. ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪
  14. 14. ▪ ▪ ▪ ▪
  15. 15. ▪ ▪ ▪ apiVersion: v1 kind: ConfigMap metadata: name: {{ .Release.Name }}-configmap data: myvalue: “My Sample" foo: {{ .Values.mySettings.foo }} bar: {{ .Values.mySettings.bar }}
  16. 16. apiVersion: v1 kind: ConfigMap metadata: name: {{ .Release.Name }}-configmap data: myvalue: “My Sample" foo: {{ .Values.mySettings.foo | quote }} bar: {{ .Values.mySettings.bar | quote }}
  17. 17. apiVersion: v1 kind: ConfigMap metadata: name: {{ .Release.Name }}-configmap data: myvalue: “My Sample" foo: {{ .Values.mySettings.foo | repeat 5 | quote }} # Output for Abc → “AbcAbcAbcAbc” bar: {{ .Values.mySettings.bar | upper | quote }}# Output for Abc → “ABC” s1: {{ .Values.mySettings.s1 | default “MyDefault” | quote }}# Output for <not set> → “MyDefault”
  18. 18. lookup <apiVersion> <kind> <namepace> <name> (lookup "v1" "Namespace" "" "mynamespace").metadata.annotations Behavior Lookup Function kubectl get pod mypod -n mynamespace lookup "v1" "Pod" "mynamespace" "mypod" kubectl get pods -n mynamespace lookup "v1" "Pod" "mynamespace" "" kubectl get pods --all-namespaces lookup "v1" "Pod" "" "" kubectl get namespace mynamespace lookup "v1" "Namespace" "" "mynamespace" kubectl get namespaces lookup "v1" "Namespace" "" ""
  19. 19. ▪ eq ne lt gt and or ▪
  20. 20. ▪ ▪ ▪
  21. 21. {{- $relName := .Release.Name }}
  22. 22. ▪ ▪ ▪ ▪ ▪
  23. 23. ▪ ▪ ▪
  24. 24. ▪ helm install <release name> <repo>/<chart> helm install foo stable/foo ▪ helm install <release name> <path to *.tgz> helm install foo foo-0.0.1.tgz ▪ helm install <release name> <path to chart> helm install foo path/to/foo ▪ helm install <release name> <url> helm install foo https://myurl.com/charts/foo-0.0.1.tgz
  25. 25. ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪
  26. 26. ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪
  27. 27. ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪
  28. 28. Azure DevOps CI Pipeline Azure DevOps CD Pipeline Container Registry Build App Test Build Container Repo Configuration Helm Upgrade AKS (Cluster) Helm Chart Package Push Cluster Pull container image Release Pull Helm chart
  29. 29. ▪ ▪
  30. 30. ▪ ▪ ▪ ▪ ▪
  31. 31. ▪ → → ▪ ▪ ▪ ▪ ▪

×