Kubernetes Helm pullPolicy Always Not working
Devops/Kubernetes

Kubernetes Helm pullPolicy Always Not working

뉴비뉴 2022. 8. 1.

안녕하세요

 

오늘은 질문 & 정리 개념으로 글을 작성해보려고 합니다.

사용하고 있는 서비스에 대해 먼저 정리하겠습니다.

 

CI(Continuous Integration 지속적 통합) Github Action AWS ECR /
CD(Continuous Delivery 지속적 전달)Helm, Kubernetes 

 

좀 더 설명이 필요하겠죠?!


Github CI로 ECR(Elastic Container Registry)로 이미지를 최신화하면,

Helm(Kubernetes 패키지 매니저)으로 ECR의 이미지를 가져와 배포를 진행하고 있습니다.

패키지 매니저이기 때문에 변경사항이 있으면 파드를 재시작하거나 더 깊은 개념은 나중에 알아보겠습니다.

 

현재 저의 질문사항은 CI, CD가 정상적으로 돌았고, 코드의 수정이 분명히 있었음에도 불구하고, Pod가 재시작을 안한다는 것이 문제였습니다. pullPolicy Always Helm의 설정이 Always로 되어 있는데도 뭐가 문제일까요?!

 

1. Helm update(install) 에서 코드의 변화가 없다고 느껴서 파드를 안띄운다?

2. Pod가 재시작이 안되도 새로운게 반영 되는 것일까?

 

여기서 알아낸 점은 Helm으로 배포를 해도 코드의 변화를 감지 안한다는 것이라고 판단했습니다. 왜냐하면 Kubernetes 패키지 매니저이기 때문에 Kubernetes의 변경만을 감지한다 생각한거죠.

 

제가 찾아낸 해결방법은 Pod를 삭제하고 다시 띄우면 된다는 것이였습니다.

 

하지만 배포만 하면 될 것을 굳이 Pod 삭제하는 명령어까지 수행해야 된다는 것이 너무 번거롭습니다. (아직 해결을 못해서 진행 중,,,)

 

카카오톡 방에서 얻은 조언으로는 

Helm은 현 상태를 추적안해요
Helm 통해 배포된 이력과 manifest(나타내다)를 가지고 있는거죠

Helm으로 배포하고 k8s리소스(자원)만 수정하면 반영 확인 안되요

조언이 많은 도움이 되었고,

테스트를 통하여 이것이 어떠한 문제를 보여주는지 확인하게 되었다.

"""

맞네요 맞네요'정상인 상태'에서 '에러가 나는 상태를 배포'해서 테스트하는데 

Pod 재시작을 안하면 정상인 상태를 보고 있네요.

궁금해서 테스트해봤는데 에러가 나는 상태로 배포

 

1. Helm 배포 안했을 때는 당연히 에러발생 안함
2. Helm 배포 했을 때도 에러발생 안함 (Pod가 재시작을 안하니까)
3. kubectl delete po A 파드가 새로 뜨면서 새로운 ECR 이미지를 가져오니 에러 발생

감사합니다 ㅠㅠㅠ

"""

 

결론은 현재 위와 같은 문제로 Helm update 후에 k delete po 명령어를 수행하고 있습니다.

하지만 한가지 알게 된 것은 Helm은 Kubernetes 패키지 매니저라는 것

Helm은 현 상태를 추척안한다는 점

 

다음 게시글로는 이 문제를 해결하는 방법으로 찾아 뵙겠습니다!

 

댓글

💲 추천 글