티스토리 뷰
헬름 공식 문서의 Quickstart를 보면서 실습해보기
Initialize a Helm Chart Repository
Chart repository 추가하기
❯ helm repo add bitnami https://charts.bitnami.com/bitnami "bitnami" has been added to your repositories
설치가능한 차트 목록 보기
❯ helm search repo bitnami NAME CHART VERSION APP VERSION DESCRIPTION bitnami/airflow 14.3.6 2.6.3 Apache Airflow is a tool to express and execute... bitnami/apache 10.1.0 2.4.57 Apache HTTP Server is an open-source HTTP serve... bitnami/apisix 2.0.10 3.4.1 Apache APISIX is high-performance, real-time AP... bitnami/appsmith 0.3.16 1.9.33 Appsmith is an open source platform for buildin... bitnami/argo-cd 4.8.0 2.8.1 Argo CD is a continuous delivery tool for Kuber... bitnami/argo-workflows 5.4.1 3.4.10 Argo Workflows is meant to orchestrate Kubernet... bitnami/aspnet-core 4.4.0 7.0.10 ASP.NET Core is an open-source framework for we... bitnami/cassandra 10.5.0 4.1.3 Apache Cassandra is an open source distributed ... ...
Install an Example chart - mysql
❯ helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "bitnami" chart repository
Update Complete. ⎈Happy Helming!⎈
❯ helm install bitnami/mysql --generate-name
NAME: mysql-1692865869
LAST DEPLOYED: Thu Aug 24 17:31:10 2023
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: mysql
CHART VERSION: 9.12.0
APP VERSION: 8.0.34
...
--generate-name
을 붙여주는 이유는 chart를 install할때 이름을 지정해주지 않으면 아래와 같이 에러가 발생하므로 자동으로 이름이 생성되도록 설정하는 옵션이다.Error: INSTALLATION FAILED: must either provide a name or specify --generate-name
- 이름을 지정하고 싶다면
helm install [NAME] bitnami/mysql
로 하면 된다. - 설치 후
kubectl get pods -w
를 통해 Pod이 잘 생성되었는지 확인한다.
Learn About Releases
helm을 통해서 배포된 릴리즈들을 확인할 수 있다.(
helm ls
로도 가능)❯ helm list NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION rangdev-mysql default 2 2023-08-24 19:25:21.384413 +0900 KST deployed mysql-9.12.0 8.0.34
Uninstall a Release
❯ helm uninstall rangdev-mysql
release "rangdev-mysql" uninstalled
uninstall 명령어로 간단하게 uninsatll 할 수 있다. 삭제된 후에는 status를 확인할 수 없으며 rollback이 불가능하다.
❯ helm status rangdev-mysql
Error: release: not found
❯ helm rollback rangdev-mysql 1
Error: release: not found
Rollback uninsatlled releases
단, uninsatll시 --keep-history
를 붙여주면 삭제된 후에도 rollback이 가능하다.
❯ helm uninstall rangdev-mysql --keep-history
release "rangdev-mysql" uninstalled
그냥 uninstall할때와 동일하게 보이지만 status를 확인할 수 있고 STATUS: uninstall
로 확인 된다.
❯ helm status rangdev-mysql
NAME: rangdev-mysql
LAST DEPLOYED: Thu Aug 24 19:14:47 2023
NAMESPACE: default
STATUS: uninstalled
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: mysql
CHART VERSION: 9.12.0
APP VERSION: 8.0.34
...
rollback은 helm rollback <RELEASE> [REVISION]
으로 가능하다.
❯ helm rollback rangdev-mysql 1
Rollback was a success! Happy Helming!
status를 다시 확인하면 deployed로 변경된 것을 확인할 수 있고 REVISION이 2가 되었다.
❯ helm status rangdev-mysql
NAME: rangdev-mysql
LAST DEPLOYED: Thu Aug 24 19:25:21 2023
NAMESPACE: default
STATUS: deployed
REVISION: 2
TEST SUITE: None
NOTES:
CHART NAME: mysql
CHART VERSION: 9.12.0
APP VERSION: 8.0.34
...
rollback을 하면 revision도 1로 되돌아와야 하는게 아닌가? 싶지만 helm에서는 install, upgrade, rollback을 할때마다 revision이 +1이 된다. 따라서 revision에 대한 자세한 내용을 확인하고 싶다면 helm history
로 가능하다.
❯ helm history rangdev-mysql
REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION
1 Thu Aug 24 19:14:47 2023 uninstalled mysql-9.12.0 8.0.34 Uninstallation complete
2 Thu Aug 24 19:25:21 2023 deployed mysql-9.12.0 8.0.34 Rollback to 1
명령어에 대한 자세한 설명은 -h
flag를 붙이면 된다.(ex. helm rollback -h
)
'k8s' 카테고리의 다른 글
[k8s] GCP secret manager로 시크릿 관리하기 (1) | 2023.12.24 |
---|---|
Kubernetes NGINX Ingress Controller 설치 (0) | 2023.08.12 |
댓글