Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
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
Tags
more
Archives
Today
Total
관리 메뉴

Study_note

[kubernetes] Helm Override 및 Upgrade 본문

Kubernetes

[kubernetes] Helm Override 및 Upgrade

Study_note 2022. 11. 17. 19:38

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로 롤백되어진것을 확인 할 수 있다.

Comments