DevOps 8

[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

[DevOps/번역글] Github Actions냐 Jenkins냐! 올바른 선택을 해봅시다

시작하기에 앞서, 본 포스트는 "Github Actions or Jenkins? Making the Right Choice for You" 를 읽고 한국어로 정리하기 위해 쓴 번역 글입니다. 오역이 있거나 미숙한 번역이 있을 수 있습니다. 많은 지적질 부탁드립니다! 지난 몇 년간, DevOps는 소프트웨어 생명 주기에 필수적인 부분이 되었습니다. 이는 곧 현재 주도적인 많은 DevOps 도구와 경험을 만들었습니다. CI/CD 프로세스를 지원하는 다양한 도구를 찾을 수 있겠지만, Jenkins와 GitHub Actions는 그 중에서도 압도적으로 우뚝 선 도구입니다. 이 글에서는 GitHub Actions와 Jenkins를 비교해서 올바른 선택을 할 수 있도록 인사이트를 제공하고자 합니다. Jenkins와..

IT/DevOps 2021.07.04

[DevOps] ArgoCD Slack Notification 설정하기

Prologue ArgoCD를 사용하게 된 이래로, 재배포나 자동 배포에 대한 불편함이 많이 사라졌습니다. 팀 DevOps 파이프라인의 CD 쪽의 개선이 이루어져서 사용하시는 분들께서도, "이젠 이 파이프라인 없으면 못 살 것 같다" 라는 말씀도 종종해주시는 걸 보면 뿌듯합니다 😝 오늘은 ArgoCD에 정의한 애플리케이션이 어떤 상태에 있는지 전달 받을 수 있도록 Notification을 설정해보고자 합니다. ArgoCD는 Email, GitHub, Slack, Grafana, Webhook, Telegram, Teams 등의 다양한 알림 채널을 지원하고 있습니다. [참고] 많은 채널 중에 오늘은 Slack Notification 과정을 살펴보겠습니다. 대부분의 내용은 [여기]를 따릅니다. 원문을 확인하..

IT/DevOps 2021.07.03

[Kubernetes] kubeadm을 이용해 Kubernetes 클러스터를 구축해보자

프롤로그 지난 포스트 "[containerd] containerd를 CRI 런타임으로 하는 Kubernetes 클러스터를 구축해보자" 에 이어서 이번엔 Kubernetes 클러스터를 구축해보겠습니다. 본 포스트에선 이미 CRI 런타임이 설치되어 있다고 가정하고 kubeadm을 이용해 클러스터를 구축합니다. 만약 CRI 런타임이 설치되어 있지 않다면, 위 포스트를 참고하여 CRI 런타임부터 설치해주세요! 추가로, 이 포스트는 개발 환경에서 사용하기 위해 간단하게 구축하는 방법을 소개합니다. 실제 프로덕션 환경에서 사용하셔서는 안 됩니다! 추가에 추가로, 가장 간단하게 로컬에 Kubernetes 클러스터를 구축하는 방법은 minikube를 사용하시거나 docker for mac 등을 사용하셔서 해당 프로그램..

IT/Kubernetes 2021.06.21

[Kubernetes] Helm Chart 만들기

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

IT/Kubernetes 2021.06.18

[DevOps] Jenkins Pipeline이 종료되지 않는 경우

Prologue 평화롭게 파이프라인 구성을 위한 테스팅을 진행하던 중, 갑자기 파이프라인이 종료되지 않는 문제가 발생했습니다. 스택 오버 플로우를 찾아보니, "Script Console"에서 명령줄을 넣어 실행하면 종료된다고 합니다. 하지만 그리 쉽게 문제가 해결되지 않았고, 좀 더 내려보다 보니, 직접 파이프라인 빌드 디렉터리를 삭제하고 Jenkins를 재시작하는 방법을 소개하는 답변이 있었습니다. 제 경우에는 이 해결 방법이 딱 맞아서, 이번 포스트에서는 이 내용을 소개하고자 합니다. 해결 방법 우선 Jenkins 서버에 SSH로 접속합니다. 만약 Docker 등으로 실행한 경우라면, docker exec 명령어 등을 사용해서 붙습니다. 만약 /bin/bash 또는 sh가 제공되지 않는다면, 아래 명..

IT/DevOps 2021.06.14

[DevOps] ArgoCD Best Practice

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

IT/DevOps 2021.06.12

[containerd] 인증서 등록에도 불구하고 private registry로부터 image pull이 안 될 경우

문제 상황 새로운 Private Registry (Harbor)를 구축하고 CA 인증서를 호스트에 등록 및 config.toml 파일까지 업데이트 해주었음에도 불구하고 Image Pull 작업을 요청하면 401 에러가 발생하였습니다. config.toml 파일을 어떻게 업데이트하여야 하는지는 추후 포스트에서 다루겠습니다. 임시 해결 방법 아래 명령어처럼 image를 가져올 때 --user USERID:PASSWORD 인자를 추가로 넘겨 주면, 정상적으로 이미지를 가져옵니다. 하지만 근본적인 해결책은 될 수 없으므로 해당 문제를 완전히 해결할 수 있는 방법을 찾으면 업데이트 하도록 하겠습니다. $ sudo ctr images pull --user USERID:PASSWORD IMAGE_PATH 마무리 여기..

IT/containerd 2021.05.26
반응형