IT/Kubernetes

[Kubernetes] Helm으로 Statefulset의 spec upgrade가 안 되는 경우

wookiist 2021. 5. 12. 21:44

[Kubernetes] Helm으로 Statefulset의 spec upgrade가 안 되는 경우

Helm으로 배포한 패키지에 statefulset이 있으면, helm upgrade 명령을 사용했을 때 오류가 날 가능성이 있습니다.
특정 파드의 리소스 제한을 걸지 않아서, 배포 이후에 제한을 걸기 위해 values.yaml을 업데이트 하고 helm upgrade를 수행했는데, statefulset이 지원하지 않는 업데이트라는 에러를 뿜뿜하더군요.
분명 자원은 spec.template.containers.resources에 있으니까, 이걸 수정한다고 해서 statefulset이 업데이트 할 수 없다고 나오는 건 분명히 버그였습니다.

수소문 해보니 저와 같은 현상을 겪었던 분들이 많이들 계셨고, 찾아낸 해법은 다음과 같습니다.

  1. 현재 동작하고 있는 파드를 지우지 않은 상태로 statefulset만 지운다.
  2. helm upgrade를 수행한다. 이후 자동으로 오래된 파드가 roll up 된다.

실제 이용하게 될 명령어는 이렇습니다.

$ kubectl delete sts --cascade=false $(statefulset_name)

참고

반응형