일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 27 | 28 |
29 | 30 | 31 |
- PETERICA
- Elasticsearch
- Pinpoint
- IntelliJ
- Linux
- APM
- aws
- kotlin spring
- MySQL
- CloudWatch
- 기록으로 실력을 쌓자
- CKA 기출문제
- 정보처리기사 실기 기출문제
- 코틀린 코루틴의 정석
- 티스토리챌린지
- minikube
- 오블완
- 정보처리기사 실기
- kotlin
- AWS EKS
- AI
- 공부
- CKA
- Spring
- Java
- 정보처리기사실기 기출문제
- mysql 튜닝
- kotlin coroutine
- kotlin querydsl
- Kubernetes
- Today
- Total
피터의 개발이야기
[kubernetes] Helm 사용법 본문
ㅁ 헬렘 설치하기
$ 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
ㅁ 설치 확인
helm version
ㅁ 헬렘 자동완성기능 추가
# helm zsh 자동완성기능 추가
$ echo 'source <(helm completion zsh)' >> ~/.zshrc
# helm 이후 탭클릭 시 안내문구
$ helm
completion -- generate autocompletion scripts for the specified shell
create -- create a new chart with the given name
dependency -- manage a chart's dependencies
env -- helm client environment information
get -- download extended information of a named release
help -- Help about any command
history -- fetch release history
install -- install a chart
lint -- examine a chart for possible issues
list -- list releases
package -- package a chart directory into a chart archive
plugin -- install, list, or uninstall Helm plugins
pull -- download a chart from a repository and (optionally) unpack it in local directory
push -- push a chart to remote
registry -- login to or logout from a registry
repo -- add, list, remove, update, and index chart repositories
rollback -- roll back a release to a previous revision
search -- search for a keyword in charts
show -- show information of a chart
status -- display the status of the named release
template -- locally render templates
test -- run tests for a release
uninstall -- uninstall a release
upgrade -- upgrade a release
verify -- verify that a chart at the given path has been signed and is valid
version -- print the client version information
[ec2-user@ip-172-31-43-214 ~]$ echo 'source <(helm completion bash)' >> ~/.bashrc
[ec2-user@ip-172-31-43-214 ~]$ helm
completion (generate autocompletion scripts for the specified shell) push (push a chart to remote)
create (create a new chart with the given name) registry (login to or logout from a registry)
dependency (manage a chart's dependencies) repo (add, list, remove, update, and index chart repositories)
env (helm client environment information) rollback (roll back a release to a previous revision)
get (download extended information of a named release) search (search for a keyword in charts)
help (Help about any command) show (show information of a chart)
history (fetch release history) status (display the status of the named release)
install (install a chart) template (locally render templates)
lint (examine a chart for possible issues) test (run tests for a release)
list (list releases) uninstall (uninstall a release)
package (package a chart directory into a chart archive) upgrade (upgrade a release)
plugin (install, list, or uninstall Helm plugins) verify (verify that a chart at the given path has been signed and is valid)
pull (download a chart from a repository and (optionally) unpack it in local directory) version (print the client version information)
ㅇ 개인적으로 자동완성기능을 통해 작업의 생산성은 200%가 되는 것 같다.
ㅇ 당장 명령어에 대해 명확하지 않을 때에 자동완성을 통해 정확한 명령어를 작성할 수 있다.
ㅇ 자동완성기능의 최대 장점은 내가 쓸 수 있는 명령어들을 알 수 있어 교육적으로 나를 성장시켜주는 역할을 하기도 한다.
ㅁ helm search
헬름은 2가지 소스 유형을 검색하는데 사용할 수 있다.
ㅇ helm search hub는 여러 저장소들에 있는 헬름 차트들을 포괄하는 헬름 허브를 검색한다.
ㅇ helm search repo는 helm repo add를 사용하여 로컬 헬름 클라이언트에 추가된 저장소들을 검색한다. 검색은 로컬 데이터 상에서 이루어지며, 퍼블릭 네트워크 접속이 필요하지 않다.
hub -- Artifact Hub 또는 자체 허브 인스턴스에서 차트 검색
repo -- 차트에서 키워드에 대한 저장소 검색
ㅇ 자동완성에서도 위처럼 설명을 해 주고 있다.
ㅁ helm search hub 공개된 차트 검색
$ helm search hub mysql
URL CHART VERSION APP VERSION DESCRIPTION
https://artifacthub.io/packages/helm/bitnami/mysql 9.3.3 8.0.30 MySQL is a fast, reliable, scalable, and easy t...
https://artifacthub.io/packages/helm/ygqygq2/mysql 4.5.3 5.7.26 Chart to create a Highly available MySQL cluster
https://artifacthub.io/packages/helm/saber/mysql 8.8.21 8.0.27 Chart to create a Highly available MySQL cluster
ㅇ 공개된 char의 목록과 설명을 확인할 수 있다.
ㅁ helm search repo 추가된 저장소 검색
$ helm search repo redmine
NAME CHART VERSION APP VERSION DESCRIPTION
bitnami/redmine 20.3.3 5.0.2 Redmine is an open source management applicatio...
stable/redmine 14.1.12 4.1.0 DEPRECATED A flexible project management web ap...
ㅁhelm repo 조회 추가 삭제
# 조회
$ helm repo list
NAME URL
stable https://charts.helm.sh/stable
bitnami https://charts.bitnami.com/bitnami
# 삭제
$ helm repo remove stable
"stable" has been removed from your repositories
# 추가
$ helm repo add stable https://charts.helm.sh/stable
"stable" has been added to your repositories
ㅇ repo의 자동완성 기능에서 add, remove, list 뿐만 아니라 update, index 명령어도 안내하 주고 있다.
ㅇ repo를 추가하는 과정에서 명령어를 어떻게 해야 할 지 몰라 --help을 요청하였다.
ㅇ 기본 사용설명과 Flag의 의미도 설명해 주고 있다.
ㅇ repo 삭제 시 탭을 이용하면 현재 저장된 repo 목록을 확인할 수 있었다.
ㅁ helm install 패키지 설치
$ helm install peter bitnami/mongodb
NAME: peter
LAST DEPLOYED: Sat Sep 17 23:08:08 2022
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: mongodb
CHART VERSION: 13.1.2
APP VERSION: 6.0.1
** Please be patient while the chart is being deployed **
MongoDB® can be accessed on the following DNS name(s) and ports from within your cluster:
peter-mongodb.default.svc.cluster.local
To get the root password run:
export MONGODB_ROOT_PASSWORD=$(kubectl get secret --namespace default peter-mongodb -o jsonpath="{.data.mongodb-root-password}" | base64 -d)
To connect to your database, create a MongoDB® client container:
kubectl run --namespace default peter-mongodb-client --rm --tty -i --restart='Never' --env="MONGODB_ROOT_PASSWORD=$MONGODB_ROOT_PASSWORD" --image docker.io/bitnami/mongodb:6.0.1-debian-11-r1 --command -- bash
Then, run the following command:
mongosh admin --host "peter-mongodb" --authenticationDatabase admin -u root -p $MONGODB_ROOT_PASSWORD
To connect to your database from outside the cluster execute the following commands:
kubectl port-forward --namespace default svc/peter-mongodb 27017:27017 &
mongosh --host 127.0.0.1 --authenticationDatabase admin -p $MONGODB_ROOT_PASSWORD
ㅇ mongodb 차트를 설치하였다. 차트를 설치하여 새로운 peter release 오브젝트가 생성되었다.
ㅁ helm status
$ helm status peter
NAME: peter
LAST DEPLOYED: Sat Sep 17 23:08:08 2022
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: mongodb
CHART VERSION: 13.1.2
APP VERSION: 6.0.1
** Please be patient while the chart is being deployed **
MongoDB® can be accessed on the following DNS name(s) and ports from within your cluster:
peter-mongodb.default.svc.cluster.local
To get the root password run:
export MONGODB_ROOT_PASSWORD=$(kubectl get secret --namespace default peter-mongodb -o jsonpath="{.data.mongodb-root-password}" | base64 -d)
To connect to your database, create a MongoDB® client container:
kubectl run --namespace default peter-mongodb-client --rm --tty -i --restart='Never' --env="MONGODB_ROOT_PASSWORD=$MONGODB_ROOT_PASSWORD" --image docker.io/bitnami/mongodb:6.0.1-debian-11-r1 --command -- bash
Then, run the following command:
mongosh admin --host "peter-mongodb" --authenticationDatabase admin -u root -p $MONGODB_ROOT_PASSWORD
To connect to your database from outside the cluster execute the following commands:
kubectl port-forward --namespace default svc/peter-mongodb 27017:27017 &
mongosh --host 127.0.0.1 --authenticationDatabase admin -p $MONGODB_ROOT_PASSWORD
ㅇ 차트를 생성하는 데에는 시간이 필요하다.
ㅇ 우선 도커이미지를 다운받아야 하고 컨테이너를 구성하고 기동하기까지 많은 시간이 소요된다.
ㅇ helm status [release] 명령어로 생성 완료를 확인 할 수 있다.
ㅇ status: deployed 를 통해 구성이 완료된 것을 확인 할 수 있다.
ㅇ 사용상 유의점도 함께 확인할 수 있다.
ㅇ 자동완성기능에서는 현재 설치된 release목록과 상태를 간략하게 안내해 주고 있다.
ㅁ 참조
'Kubernetes > Helm' 카테고리의 다른 글
[Helm] MySQL 설치하기 (0) | 2023.06.02 |
---|---|
[helm] helm으로 redis, grafana 설치과정 (0) | 2023.04.19 |
[Helm] Helm으로 jenkins 설치하기 (0) | 2022.10.01 |
[kubernetes] Helm이란 (0) | 2022.09.12 |
[kubernetes] helm을 이용한 AWS prometheus설치 후 도메인 연결 (0) | 2022.08.01 |