Helm version 3 was recently released with new features and a new architecture to support those features. The changes to Helm and charts were based on feedback, changes to Kubernetes, and lessons learned in the past couple years.
1 of 26
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
More Related Content
Helm 3
2. Helm Is The Package Manager For
Kubernetes
Helm은 Kubernetes의 패키지 관리자입니다
≈ Apt
6. A Similar Command Line Experience
예전과 유사한 커맨드 라인
$ helm repo add stable https://kubernetes-charts.storage.googleapis.com/
$ helm search repo mariadb
NAME CHART VERSION APP VERSION DESCRIPTION
stable/mariadb 7.1.0 10.3.20 Fast, reliable, scalable, and easy to use open-...
stable/phpmyadmin 4.2.4 4.9.2 phpMyAdmin is an mysql administration frontend
$ helm install mymaria stable/mariadb
$ helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
mymaria default 1 2019-11-27 14:10:55.216169 -0500 EST deployed mariadb-7.1.0 10.3.20
$ helm uninstall mymaria
7. Namespaces!
네임 스페이스!
$ helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
mymaria default 1 2019-11-27 14:10:55.216169 -0500 EST deployed mariadb-7.1.0 10.3.20
$ helm ls --all-namespaces
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
mymaria default 1 2019-12-01 18:05:53.568566 -0500 EST deployed mariadb-7.1.0 10.3.20
mymaria2 foo 1 2019-12-01 18:06:12.520784 -0500 EST deployed mariadb-7.1.0 10.3.20
$ helm ls –-namespace foo
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
mymaria2 foo 1 2019-12-01 18:06:12.520784 -0500 EST deployed mariadb-7.1.0 10.3.20
$ helm install –n foo myNewMaria stable/mariadb
10. Helm Client Kubernetes API
Helm v3 Architecture
Helm v3 아키텍처
Uses normal user credentials
일반 사용자 인증 사용
11. Helm Client Kubernetes API
Helm v3 Architecture
Helm v3 아키텍처
Release information stored as Secret
in the namespace with the app by default
앱이 설치된 네임스페이스에 릴리즈 정보가
Secret 으로 저장 (기본 설정)
14. 3-way Strategic Merge Patches
3 방향 전략적 병합 패치
Patch
패치
Live State
라이브 상태
New Manifest
신규 매니페스트
Old Manifest
이전 매니페스트
15. 3-way Strategic Merge Patches
3 방향 전략적 병합 패치
containers:
- name: server
image: nginx:2.0.0
containers:
- name: server
image: nginx:2.0.0
- name: my-injected-sidecar
image: my-cool-mesh:1.0.0
16. Additions To Charts
차트내 신규 기능 추가
$ tree newChart
newChart
├── Chart.yaml
├── charts
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── deployment.yaml
│ ├── ingress.yaml
│ ├── service.yaml
│ ├── serviceaccount.yaml
│ └── tests
│ └── test-connection.yaml
└── values.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "newChart.fullname" . }}
labels:
{{- include "newChart.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
...
17. apiVersion v2 For Helm 3
Helm 3 용 apiVersion v2
apiVersion: v2
name: mychart
description: A Helm chart for Kubernetes
Chart.yaml
18. Dependencies Now In Chart.yaml
현재: Chart.yaml의 종속성
apiVersion: v2
name: mychart
description: A Helm chart for Kubernetes
dependencies:
- name: mariadb
version: 5.x.x
repository: https://kubernetes-charts.storage.googleapis.com/
condition: mariadb.enabled
tags:
- database
Chart.yaml
23. CRDs across Helm v2 and v3
Helm v2 및 v3의 CRD
$ tree ambassador/crds
ambassador/crds
├── authservice.yaml
├── consulresolver.yaml
├── filter.yaml
├── filterpolicy.yaml
├── kubernetesendpointresolver.yaml
├── kubernetesserviceresolver.yaml
├── mapping.yaml
├── module.yaml
├── ratelimit.yaml
├── ratelimitservice.yaml
├── tcpmapping.yaml
├── tlscontext.yaml
└── tracingservice.yaml
For Helm v3 Use The crds Directory
Helm v3의 경우 crds 디렉토리를
사용하십시오.
For Helm v2 Use A Template With crd-install Hook
Helm v2의 경우 crd 설치 후크가있는 템플릿 사용
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: authservices.getambassador.io
labels:
app.kubernetes.io/name: ambassador
annotations:
"helm.sh/hook": crd-install
...
24. Helm Experiments (베타 기능)
$ export HELM_EXPERIMENTAL_OCI=1
$ docker run -dp 5000:5000 --restart=always --name registry registry
$ helm chart save mychart localhost:5000/myrepo/mychart:1.2.3
ref: localhost:5000/myrepo/mychart:1.2.3
digest: 896935a875c8fe8f8b9b81e5862413de316f8da3d6d9a7e0f6f1e90f6204f551
size: 2.7 KiB
name: mychart
version: 0.1.0
1.2.3: saved
$ helm chart list
REF NAME VERSION DIGEST SIZE CREATED
localhost:5000/myrepo/mychart:1.2.3 mychart 0.1.0 896935a 2.7 KiB About a minute
> OCI Registries (OCI 레지스트리)
25. What about upgrading to Helm 3?
Helm 3으로 업그레이드는 어떻게 할 수 있나요?
After all, the storage format changed
$ helm plugin install https://github.com/helm/helm-2to3
$ helm 2to3 move config
$ helm 2to3 convert RELEASE
$ helm 2to3 cleanup
* Read the docs to learn about flags like --dry-run
--dry-run과 같은 플래그는 docs를 확인해주세요