Dev./Kubernetes & Helm

Helm: 쿠버네티스를 관리하는 툴

Ivan'show 2023. 10. 4.
728x90
반응형

Helm

헬름은 복잡한 쿠버네티스 애플리케이션을 편리하게 정의하여 설치하거나 업그레이드 할 수있는 쿠버네티스 관리 툴이다.

 

홈페이지

<https://helm.sh/ko/>

MacOS 설치

brew install helm

시작하기

create >> 기본 틀인 차트를 생성 (리소스를 담는 그릇)

helm create mychart

 

헬름은 차트를 구성하게 되는데, 쿠버네티스에서 필요했던 부분들을 차트형태로 표현해주기 때문이다.

install >> chat 정보를 이용해서 release

helm install mychart ./mychart
# result
kimminhyeok@Ivans-Mac k8s % helm install mychart ./mychart
NAME: mychart
LAST DEPLOYED: Wed Sep 13 13:09:24 2023
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
1. Get the application URL by running these commands:
  export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=mychart,app.kubernetes.io/instance=mychart" -o jsonpath="{.items[0].metadata.name}")
  export CONTAINER_PORT=$(kubectl get pod --namespace default $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
  echo "Visit <http://127.0.0.1:8080> to use your application"
  kubectl --namespace default port-forward $POD_NAME 8080:$CONTAINER_PORT

생성 확인하기

k get po
kimminhyeok@Ivans-Mac k8s % k get po
NAME                       READY   STATUS    RESTARTS   AGE
mychart-6c488c8477-gg697   1/1     Running   0          38s
k get deploy
kimminhyeok@Ivans-Mac k8s % k get deploy
NAME      READY   UP-TO-DATE   AVAILABLE   AGE
mychart   1/1     1            1           66s

install 입력 후 나온 가이드대로 복사 붙여 넣기 순서대로

export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=mychart,app.kubernetes.io/instance=mychart" -o jsonpath="{.items[0].metadata.name}")
export CONTAINER_PORT=$(kubectl get pod --namespace default $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
echo "Visit <http://127.0.0.1:8080> to use your application"
kubectl --namespace default port-forward $POD_NAME 8080:$CONTAINER_PORT
# result
kimminhyeok@Ivans-Mac k8s % export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=mychart,app.kubernetes.io/instance=mychart" -o jsonpath="{.items[0].metadata.name}")
kimminhyeok@Ivans-Mac k8s % export CONTAINER_PORT=$(kubectl get pod --namespace default $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
kimminhyeok@Ivans-Mac k8s % echo "Visit <http://127.0.0.1:8080> to use your application"
Visit <http://127.0.0.1:8080> to use your application
kimminhyeok@Ivans-Mac k8s % kubectl --namespace default port-forward $POD_NAME 8080:$CONTAINER_PORT
Forwarding from 127.0.0.1:8080 -> 80
Forwarding from [::1]:8080 -> 80

http://127.0.0.1:8080

삭제

helm uninstall mychart

 

 

 

728x90
반응형

'Dev. > Kubernetes & Helm' 카테고리의 다른 글

Helm: Apply to simple code  (0) 2023.10.06
Helm: 차트 작성  (0) 2023.10.05
Kubernetes: 배포 환경 구분 짓기  (0) 2023.10.03
Kubernetes: Deployment, Rolling update  (2) 2023.10.01
Kubernetes: PersistentVolumeClaim  (0) 2023.09.27

댓글