티스토리 뷰

헬름 공식 문서의 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
댓글