[Kubernetes] Helm으로 Statefulset의 spec upgrade가 안 되는 경우
Helm으로 배포한 패키지에 statefulset이 있으면, helm upgrade
명령을 사용했을 때 오류가 날 가능성이 있습니다.
특정 파드의 리소스 제한을 걸지 않아서, 배포 이후에 제한을 걸기 위해 values.yaml을 업데이트 하고 helm upgrade
를 수행했는데, statefulset이 지원하지 않는 업데이트라는 에러를 뿜뿜하더군요.
분명 자원은 spec.template.containers.resources
에 있으니까, 이걸 수정한다고 해서 statefulset이 업데이트 할 수 없다고 나오는 건 분명히 버그였습니다.
수소문 해보니 저와 같은 현상을 겪었던 분들이 많이들 계셨고, 찾아낸 해법은 다음과 같습니다.
- 현재 동작하고 있는 파드를 지우지 않은 상태로 statefulset만 지운다.
helm upgrade
를 수행한다. 이후 자동으로 오래된 파드가 roll up 된다.
실제 이용하게 될 명령어는 이렇습니다.
$ kubectl delete sts --cascade=false $(statefulset_name)
참고
반응형
'IT > Kubernetes' 카테고리의 다른 글
[Kubernetes] kubectx를 활용해서 멀티 클러스터를 관리하자 (2) | 2021.06.13 |
---|---|
[Kubernetes] Kubernetes 인증서가 만료되었을 때 해결 방법 (4) | 2021.06.07 |
[Kubernetes] CKA (Certified Kubernetes Administrator) (v1.19 기준) 시험 후기 (12) | 2021.01.16 |
[Kubernetes] Kubernetes와 Docker (Kubernetes v1.20) (0) | 2020.12.22 |
[Kubernetes] Kubernetes Plugin Manager - Krew (0) | 2020.07.23 |