helm 4

[DevOps/번역글] Helm vs Kustomize: 어떻게 배포할 것인가?

Prologue 패키징 작업을 하다보면 Helm과 Kustomize를 사용하는 예제들을 종종 찾아볼 수 있습니다. 그러나 정작 둘의 차이점은 명확하게 알지 못한 채, "그냥 클러스터에 패키지 배포 쉽게 해주는 녀석 아니야?"라는 추상적인 개념만 갖고 있다면, 오늘 이 글이 도움이 되지 않을까 싶습니다. 과연 Helm, Kustomize는 무엇이고 어떤 차이점이 있는 걸까요? 그리고 둘 다 비슷한 역할을 한다면, 무엇을 사용하는 것이 더 좋을까요? 오늘 포스트에선 이 두 엔진을 비교해본 좋은 글을 소개합니다. Helm vs Kustomize: How to deploy your applications in 2020? 본 포스트는 위 글을 읽고 번역한 글임을 밝힙니다. Introduction 한 때, Helm..

IT/DevOps 2021.07.24

[Kubernetes] Helm Chart 만들기

Prologue 일반적으로 Kubernetes Manifest 파일은 정적인 형태입니다. 따라서 데이터를 수정하기 위해선 파일 자체를 수정해야 합니다. 잘 관리를 한다면야 큰 어려움은 없겠지만, 문제는 CI/CD 등 자동화된 파이프라인을 구축해서 애플리케이션 라이프사이클을 관리할 때 발생합니다. 보통 애플리케이션 이미지를 새로 빌드하게 되면, 빌드 넘버가 변경됩니다. 이렇게 되면 새로운 이미지를 사용하기 위해 Kubernetes Manifest의 Image도 변경되어야 합니다. 하지만 Kubernetes Manifest를 살펴보면, 이를 변경하기 쉽지 않다는 것을 깨닫게 됩니다. Image Tag가 별도로 존재하지 않고 Image 이름에 붙어있기 때문입니다. 이를 자동화 파이프라인에서 변경하려면, sed..

IT/Kubernetes 2021.06.18

[DevOps] ArgoCD Best Practice

Prologue 최근 들어, 팀 내부의 CI/CD 파이프라인을 구축하기 위해 다양한 오픈 소스 툴을 살펴보고 있습니다. ArgoCD는 CD 쪽 파트를 담당하는 훌륭한 도구입니다. 하지만 이런 도구를 활용할 때 어떻게 하면 더 효율적으로 사용할 수 있는지는 좀 더 공부가 필요한 상황입니다. 특히 오늘 포스트에서 소개하는 내용이 그러한데요. 얼마전까지는 애플리케이션의 소스 코드 레포지토리에 ArgoCD가 이용할 매니페스트 파일도 함께 관리했습니다. 하지만, 경험적으로 알게 된 사실은, 이렇게 하게 되니 매니페스트 파일만 수정했을 뿐인데도 CI가 자동으로 발생하는 상황이 벌어졌습니다...🥲 이러한 상황을 막기 위해 ArgoCD 공식 문서에서도 매니페스트 파일과 소스 코드 레포지토리를 분리할 것을 권고하고 있는..

IT/DevOps 2021.06.12

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

[Kubernetes] Helm으로 Statefulset의 spec upgrade가 안 되는 경우 Helm으로 배포한 패키지에 statefulset이 있으면, helm upgrade 명령을 사용했을 때 오류가 날 가능성이 있습니다. 특정 파드의 리소스 제한을 걸지 않아서, 배포 이후에 제한을 걸기 위해 values.yaml을 업데이트 하고 helm upgrade를 수행했는데, statefulset이 지원하지 않는 업데이트라는 에러를 뿜뿜하더군요. 분명 자원은 spec.template.containers.resources에 있으니까, 이걸 수정한다고 해서 statefulset이 업데이트 할 수 없다고 나오는 건 분명히 버그였습니다. 수소문 해보니 저와 같은 현상을 겪었던 분들이 많이들 계셨고, 찾아낸 해법..

IT/Kubernetes 2021.05.12