Study_note
[kubernetes] Helm Override 및 Upgrade 본문
Helm Override
차트에 기존 values.yaml을 수정하지 않고 일부 값을 변경할때 사용
2가지 방법 존재
1. --set 옵션 사용하여 특정 값 변경
2. -f 사용할 파일 사용하여 특정 파일로 변경
--set 테스트를 위해 일반적인 차트를 릴리즈하고
기존 values.yaml 파일에서 지정했던 image=nginx를 --set을 사용하여 image=nginx:latest로 변경
제대로 차트들이 릴리즈 됐는지 보고 릴리즈를 통해 생성한 디플로이먼트들에 이미지를 확인하면 아래와 같이
--set을 사용하지않은 override 디플로이먼트같은경우 image=nginx
--set을 사용한 override 디플로이먼트같은경우 image=nginx:latest로 생성된 것을 확인 가능
다음으로는 다른 파일을 사용해서 override해본다
override를 하기 위해 value에 넣을 값들이 있는 파일을 생성
# override.yaml로 파일 생성
image: nginx:latest
-f 파일로 차트를 릴리즈
override3 생성 확인 가능하면 생성한 디플로이먼트들은 override.yaml에 있는 값들로 채워진것을 확인 가능
이렇게 2가지 방법으로 override하는데 --set 같은 경우는 여러개 설정하기 힘들기 때문에
-f 파일을 많이 사용한다고 한다.
Helm Upgrade
기존 생성했던 릴리즈 내용을 변경하는 명령어 기존에 3개있던 릴리즈들을 override 하나만 남기고 모두 제거
업그레이드도 오버라이드 처럼 2개의 방법으로 사용 가능
1. --set 옵션 사용하여 특정 값 변경
2. 차트에서 사용하는 템플릿/차트.yaml 파일 변경 후 upgrade
helm upgrade --set (수정할 값 입력) -n (네이슴페이스) (릴리즈이름) (차트경로)
helm upgrade --set image=nginx:latest -n test override .
위 처럼 명령어 입력 시 수정 본이 2로 바뀌는것이 보이고 image=nginx 생성했던 디플로이먼트가 image=nginx:latest로 업그레이드 된것을 확인 가능
다음으로 파일을 수정해보고 다시 install 해보자
디플로이먼트 컨테이너 설정 값에 아래 값들 추가 후 upgrade
env:
- name: hello
value: world
생성된 디플로이먼트 값들에 정보를 보면 추가했던 env 값들이 출력되는것을 확인할수 있다
!!!!!!여기서 중요한게 이미지는 계속 image=nginx:latest라는것이다.!!!!!!
지금 2번에 업그레이드를했는데
버전 1 -> 2으로 --set image=nginx:latest 업그레이드
버전 2 -> 3으로 템플릿/차트.yaml 수정 후 upgrade -n test override .
2 -> 3으로 갈때 이론적으로는 차트 내부에 있는 value.yaml 값을 통해 생성 되어야 하지만
그 전에 업그레이드 된 값인 image=nginx:latest으로 업데이트 됐다.
즉 업그레이드 시 템플릿/차트.yaml 내부 value.yaml 값을 생성되는것이 아니라 그 전 버전에서 사용했던 value.yaml을 통해 생성된다
또한 생성되어있는 리소스들이 수정되는게 아니라 새로운 리소스가 배포되고 그전꺼는 삭제되는 방식(rolling update)
(helm2 와 helm3는 업그레이드 시 차이가 있다.)
마지막으로 롤백이다
우선 history를 사용해서 릴리스가 버전이 몇이고 그 전 버전들이 어떤건지 알 수 있다.
후 원하는 버전으로 rollback 하면 버전이 기존 3에서 4로 증가하며 rollback to 1이라고 버전 1로 롤백되어진것을 확인 할 수 있다.
'Kubernetes' 카테고리의 다른 글
[kubernetes]AWS Secrets Manager를 통한 쿠버네티스 Secret관리 (0) | 2022.11.29 |
---|---|
[kubernetes]IRSA 및 OIDC, Serviceaccount, IAM workflow (1) | 2022.11.21 |
[kubernetes] Helm 및 chart 커스텀 (0) | 2022.11.16 |
[kubernetes] karpenter vs ca (0) | 2022.11.10 |
[EKS] POD 자원관리 (QoS) 및 OOM 킬러 우선 순위 (0) | 2022.11.08 |