Helm Basics
kubectl apply -f app-deploy.yaml
kubectl apply -f app-pv.yaml
kubectl apply -f app-pvc.yaml
kubectl apply -f app-svc.yaml
kubectl apply -f app-secret.yaml
K8s ๋ก ๊ฐ๋จํ Application ์ ๋ฐฐํฌํ๋ ค๋ฉด Deployment, PV, PVC, Service, Secret ๋ฑ ๋ค์ํ Object ๋ฅผ ์์ฑํด์ผํ๋ค. ์ด์ ๋ฐ๋ผ ๊ด๋ฆฌํด์ผํ๋ yaml ํ์ผ์ ์๋ ๋์ด๋๋ค.
helm install wordpress
helm upgrade wordpress
helm rollback wordpress
helm uninstall wordpress
Helm ์ ํ์ฉํ๋ฉด Application ์ ๋ฐฐํฌํ๊ธฐ ์ํด ํ์ํ ๋ชจ๋ K8s Object ๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํ ์ ์๋ค. ์ฆ, Application ์ K8s Cluster ์ ๋ฐฐํฌํ๊ธฐ ์ํ ํจํค์ง ๋งค๋์ ์ธ ๊ฒ์ด๋ค.
Helm2 vs Helm3
Helm2 ์์ Tiller ๋ผ๋ ์ปดํฌ๋ํธ๊ฐ K8s Cluster ์ ์ค์น๋์ด helm cli ๋ก ๋ถํฐ ์ ๋ฌ๋ ๋ช
๋ น๋ค์ ์ํํ๋ ์ญํ ์ํ๋ค. Helm3 ๋ถํด Tiller ์ปดํฌ๋ํธ๊ฐ ์์ด์ก๋ค. Upgrade ์ Rollback ์์๋ Helm3 ๋ถํด 3-Way Strategic Marge Patch
๋ผ๋ ๊ฐ๋
์ ๋์
ํ๋ค.
Helm Components
# helm install {release-name} {chart-name}
helm install my-site bitnami/wordpress
helm install my-2-site bitnami/wordpress
Helm ์ ๊ธฐ๋ณธ์ ์ผ๋ก Chart ํํ๋ก K8s Object ๋ค์ ํจํค์งํํด์ ๊ด๋ฆฌํ๋ค. Chart ๋ ArtifactHub.io ๋ผ๋ ๊ณณ์์ ๋ฐ์์ฌ ์ ์๋ค. Chart ๋ฅผ ํ์ฉํด Application ์ ๋ฐฐํฌํ ๋ Release ๋ฅผ ์ง์ ํด์ค ์ ์๋๋ฐ ์ด๋ ๋์ผํ Application ์ ๋ ๋ฆฝ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. Application ์ K8s Cluster ์ ๋ฐฐํฌํ๊ธฐ ์ํด ์ฌ์ฉ๋ Release, Chart ๋ฑ์ Metadata ๋ Secret ํํ๋ก ๋ณด๊ด๋๋ค.
Helm Charts
hello-world-chart/
โโโ charts/ # Dependency Charts
โโโ templates/ # Templates directory
โโโ Chart.yaml # Chart information
โโโ values.yaml # Configurable values
Helm Chart ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ ๊ฐ์ ํํ๋ก ๊ตฌ์ฑ๋๋ค. WordPress Chart ์์๋ฅผ ํ์ธํด๋ณด์.
helm install --values custom-values.yaml my-release bitnami/wordpress
Application ์ ์ค์ ๊ฐ์ ๋ฐ๊พธ๊ณ ์ถ์ ๊ฒฝ์ฐ custom configuration values ๋ค์ ์ ์ธํ yaml ํ์ผ์ ์์ ๊ฐ์ด ๋๊ฒจ์ฃผ๋ฉด๋๋ค.