https://helm.sh/docs/intro/cheatsheet/
https://developer.ibm.com/blogs/kubernetes-helm-3/
ํ ํ๋ฆฟ ํ์ผ๋ค์ ์งํฉ(์ฐจํธ)๋ฅผ ๊ด๋ฆฌํ๋ ์ฟ ๋ฒ๋คํฐ์ค ํจํค์ง ๋งค๋์ ๋๊ตฌ
- ์ฐจํธ(char): ์ฟ ๋ฒ๋คํฐ์ค์์ ์คํํ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ง๋๋๋ฐ ํ์ํ ์ ๋ณด ๋ฌถ์
- ์ปจํผ๊ทธ(config): ํจํค์งํ ์ฐจํธ์ ๋ฃ์ด์ ๋ฐฐํฌ ๊ฐ๋ฅํ ์ค๋ธ์ ํธ๋ฅผ ๋ง๋ค ๋ ์ฌ์ฉํ ์ ์๋ ์ค์ ์ด ์์.
- ๋ฆด๋ฆฌ์ฆ(release): ํน์ ์ปจํผ๊ทธ๋ฅผ ์ด์ฉํด ์คํ ์ค์ธ ์ฐจํธ์ ์ธ์คํด์ค
: ์ปค๋งจ๋ ๋ผ์ธ ์ธํฐ ํ์ด์ค
: ํฌ๋ฆ ํด๋ผ์ด์ธํธ์ ๋ช ๋ น์ ๋ฐ์ ์ฟ ๋ฒ๋คํฐ์ค API์ ํต์
ํฌ๋ฆ 2์๋ ํธ๋ฌ์๋ฒ๊ฐ ์์ง๋ง ์ฟ ๋ฒ๋คํฐ์ค์ RBAD ๊ตฌ์กฐ ์ฒด๊ณ์ ์ด๊ธ๋์ ํฌ๋ฆ 3์์๋ ํธ๋ฌ์๋ฒ๊ฐ ์ฌ๋ผ์ง๊ณ , ๋ค์์๋ฒ๋ฅผ ๋ช ์ํด์ฃผ์ด์ผํจ. (์ฐจํธ ์ค์น์)
-> ์ฐจํธ ์ค์น ์ ๋ณด : ์ฐจํธ๊ฐ ์ค์น๋ ๋ค์์คํ์ด์ค์ ์ํฌ๋ฆฟ์ ์ ์ฅ๋จ. (Chart.yaml, Chart.lock)์ ํตํฉ
https://helm.sh/docs/intro/install/
$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
$ chmod 700 get_helm.sh
$ ./get_helm.sh
https://helm.sh/docs/intro/quickstart/
$ helm repo add bitnami https://charts.bitnami.com/bitnami
$ helm repo add <์ ์ฅ์๋ช
> https://charts.bitnami.com/bitnami
helm search repo bitnami
helm search repo <์ ์ฅ์๋ช
>
helm repo update
kubectl create ns mysql
helm install mysql-from-chart bitnami/mysql -n mysql
helm install <์ค์นํ ์คํํ ๋ช
> bitnami/mysql -n mysql
์คํํ ๋ช ์ ๋๋ฌธ์ ์ฌ์ฉ ๋ถ๊ฐ๋ฅํจ
invalid release name, must match regex ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ and the length must not be longer than 53
Execute the following to get the administrator credentials:
echo Username: root
MYSQL_ROOT_PASSWORD=$(kubectl get secret --namespace mysql mysql-from-chart -o jsonpath="{.data.mysql-root-password}" | base64 -d)
To connect to your database:
1. Run a pod that you can use as a client:
kubectl run mysql-from-chart-client --rm --tty -i --restart='Never' --image docker.io/bitnami/mysql:8.0.34-debian-11-r75 --namespace mysql --env MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD --command -- bash
2. To connect to primary service (read/write):
mysql -h mysql-from-chart.mysql.svc.cluster.local -uroot -p"$MYSQL_ROOT_PASSWORD"
echo Username: root
: username ์ค์
MYSQL_ROOT_PASSWORD=$(kubectl get secret --namespace mysql mysql-from-chart -o jsonpath="{.data.mysql-root-password}" | base64 -d)
: ์์ฑ ๋น๋ฐ๋ฒํธ ํ์ธ
-> echo $MYSQL_ROOT_PASSWORD
kubectl -n <๋ค์์คํ์ด์ค๋ช
> exec -it <ํ๋๋ช
> -- mysql -u root -p
helm list -n <๋ฐฐํฌํ ๋ค์์คํ์ด์ค>
helm status <๋ฐฐํฌํ ์ฐจํธ๋ช
> -n <๋ฐฐํฌํ ๋ค์์คํ์ด์ค>
helm uninstall <๋ฐฐํฌ ์ฐจํธ๋ช
> -n <๋ค์์คํ์ด์ค๋ช
>
ํฌ๋ฆ์ ์ฌ์ฉํ๋ ์ฐจํธ๋ ๋๋ ํฐ๋ฆฌ ํ๋์ ํฌํจ๋ ํ์ผ๋ค์ ์งํฉ
- ๋๋ ํฐ๋ฆฌ ์ด๋ฆ์ ์ฐจํธ ์ด๋ฆ์ผ๋ก ์ง์ ํ๊ณ ๊ทธ์์ ํ์ํ ํ์ผ๋ค์ ์ ์ฅ
mysql/ ใดcharts\ ใดtemplates\ ใดCahrt.yaml\ ใดLICENSE\ ใดREADME.md\ ใดvalues.yaml\ ใดtemplates/NOTES.txt\
helm create <chart์ด๋ฆ>
: ๋๋ ํฐ๋ฆฌ๊ฐ ์์ฑ๋จ
tree <chart ์ด๋ฆ>
helm fetch <๋ฐฐํฌํ ์ฐจํธ>
: ์ฐจํธ ์์ถํ์ผ(.tgz) ๋ค์ด
๋ด์ฉ ์์ ํ
helm install <Chart.yaml๊ฒฝ๋ก> --generate-name
๋ฅผ ํตํด ์์ ํ ์ฐจํธ ํจํค์ง ๋ฐฐํฌ
helm lint <์ฐจํธ๋ช
(๋๋ ํฐ๋ฆฌ๋ช
)>
-> ๋ค์ ์ค์น helm install <์ฐจํธ๋ช
>
helm create <ํจํค์ง ๋๋ ํฐ๋ฆฌ๋ช
>
helm package <ํจํค์ง ๋๋ ํฐ๋ฆฌ๋ช
>
helm repo index./
(๋ด๊ฐ ๋ง๋ ํจํค์ง ์ฐจํธ ๋ฆฌ์คํธ ๋ชฉ๋ก)
helm repo add https://raw.githubusercontent.com/๋ ํฌ์งํ ๋ฆฌ/index.yamlํ์ผ๋๋ ํฐ๋ฆฌ/
- ์ด์ helm install ์ด์ฉํ์ฌ ์ํ๋ ์ฐจํธ๋ก ํด๋ฌ์คํฐ์ ํจํค์ง ๊ตฌ์ฑ