> 패키지 매니저를 쓰는 이유
> 설치 구성 비교
> 사용 방식 비교
1) Helm(Ver. 3.13.2) 설치 - CI/CD Server에서 helm 설치
[root@cicd-server ~]#
curl -O https://get.helm.sh/helm-v3.13.2-linux-amd64.tar.gz
tar -zxvf helm-v3.13.2-linux-amd64.tar.gz
mv linux-amd64/helm /usr/bin/helm
- 확인 및 템플릿 생성
# jenkins 유저로 전환해서 확인
[root@cicd-server ~]# su - jenkins -s /bin/bash
[jenkins@cicd-server ~]$ helm
[jenkins@cicd-server ~]$ helm create api-tester
2) Kustomize(Ver. 5.0.1) 설치 및
- kubectl v1.14부터 포함되어 있어 따로 설치 필요 없음.(현재 v1.27.2 사용중)
kubectl version --short --client
1. Helm 배포 시작하기
- "222" 탭을 생성 후 pipeline 생성
Enter an item name에 [2221-deploy-helm] 입력
[Pipeline] 선택
[OK] 버튼 클릭
- Configure > General > GitHub project > Project url
Project url : https://github.com/[본인의 username]/kubernetes-anotherclass-sprint2/
- Configure > Advanced Project Option > Pipeline
Definition : Pipeline script from SCM
Definition > SCM : Git
Definition > SCM > Repositories > Repository URL : https://github.com/k8s-1pro/kubernetes-anotherclass-sprint2.git
Definition > SCM > Branches to build > Branch Specifier : */main
Definition > SCM > Branches to build > Additional Behaviours > Sparse Checkout paths > Path : 2221
Definition > Script Path : 2221/Jenkinsfile
- 저장 후 지금 빌드 실행하여 Stage View 결과 확인
* 배포 되기전 꼭 배포될 템플릿 Logs 확인
1-1. Helm Package 만들기
- Helm 템플릿 생성(init)
# helm 템플릿 생성
[jenkins@cicd-server ~]$ helm create api-tester
[jenkins@cicd-server ~]$ cd api-tester
[jenkins@cicd-server api-tester]$ ls
charts Chart.yaml templates values.yaml
- 당장 필요없는 내용 삭제 (deleting)
- 내 yaml 파일에 맞게 Helm Package 수정 (modify)
- Service에서 port와 containerPort가 동일하게 들어가는 부분 주의
- 동적 변수 넣기 (미리 넣기보단 지금 필요한 것만 넣기)
- 완벽할 필요 없음, 잘못된 부분이 있으면 배포시 문법에러 나옴
- yaml 파일 수정
기존 배포에 사용된 deployment.yaml 파일과 비교하여 values.yaml 파일 수정
( template > deployment.yaml 파일 아님 주의)
1. replicaCount, image 수정

2. serviceAccount 수정
현 단계에서는 serviceAccount를 사용하지 않아 false로 변경

3. service 수정
service 부분에서 NodePort 부분은 새로 작성해야 하는데 이때 template > service.yaml 파일에 다음과 같이 nodePort를 추가 후 values.yaml 파일에 수정해야함.


4. resources 수정

* volumes, volumeMounts는 configmap, secret 추가시 설명
5. templates > deployment.yaml 파일 수정
startupProbe 추가, livenessProbe, readinessProbe 수정

* envFrom은 configmap, secret 추가시 설명
- 내 resource 더 추가하기 (addition)
- configmap, secret 추가하기 (두 object는 한 App에 여러개 만들 수 있음, name에 하드코딩 필요)
- yaml 파일 추가 및 수정
1. secret.yaml 파일 추가

2. configmap.yaml 파일 추가

3. values.yaml 파일 수정


4. templates > deployment.yaml 파일 수정

* containerPort는 serivce의 pport와 동일하게 쓰는것이 권고사항이지만, 기존에 배포된 deployment.yaml에는 containerPort가 8080으로 되어있기때문에 8080으로 변경
- 실습 후 정리
# helm 조회
helm list -n anotherclass-222
# helm 삭제
helm uninstall -n anotherclass-222 api-tester-2221
# namespace 삭제
kubectl delete ns anotherclass-222
'Container > Kubernetes' 카테고리의 다른 글
[ Kubernetes ] 배포 파이프라인 구축시 고려해봐야 할 부분 (1) | 2024.07.24 |
---|---|
[ Kubernetes ] Helm과 Kustomize 비교하며 사용하기 - Kustomize 배포 (1) | 2024.07.22 |
[Kubernetes] Jenkins Pipeline (4) | 2024.07.16 |
[Kubernetes] 데브옵스 환경 구축 (0) | 2024.06.24 |
[Kubernetes] Component 동작으로 이해하기 (0) | 2024.06.07 |