블로그

이효정

배포를 시작하기 전에 반드시 알아야 할 것들

 CI/CD 파이프라인을 구성할 때 고려해야 하는 요소 [CI/CD환경]빌드-> 컨테이너 빌드 -> kubectl , helm으로 배포Jenkins로 파이프라인을 구축( 빌드-> 컨테이너 빌드 -> 배포)개발자 빌드 -> DevOps엔지니어 Jenkins 파이프라인 구축 2번이 편한 것처럼 보이지만 수정할 일이 생겼을 때 1번처럼 담당하는 사람에 따라 분리하는 것이 좋다.1번으로 구성하고 각 과정에 트리거만 걸어놓으면 자동 배포가 된다. [배포와 인프라 환경 관계]1:NJenkins (소스빌드 컨테이너 빌드) -> ArgoCD를 통해 배포(kubectl, helm)장점: 관리 편의성 / 단점: 장애시 운영 환경에 영향도 높음 1:1(더 많이 사용)개발, 운영 환경마다 ArogoCD를 두기장점: 운영 환경에서 장애 영향 없음 / 단점: 이중 관리에 대한 부담  [CI/CD Tool]온라인: 깃허브 액션------------------------> 보안 good오프라인: jenkins , jenkinsX, Tekton------> 공공, 의료, 금융기관은 데이터가 인터넷 영역으로 올라가면 안됨. 그래서 오프라인 툴을 사용한다.  [Docker 대체]도커 대체 이유: 무겁다, Daemon 필요(리눅스의 background에서 항상 돌아가야 사용 가능하다)대체제: buildahpodman과 skopeo 함께 사용배포 전략을 세울 때 고려해야 하는 요소 [Recreate]v1->v2 하고싶으면 기존 pod 삭제시킨다. 이때 downtime발생한다. 그리고 v2 새로운 파드가 만들어진다.배포는 Deployment 업데이트 하면 된다. / 에러 롤백 가능,트래픽 제어 불가능 [RollingUpdate]v1 서비스 진행->v2동시에 파드가 호출되는 구간있고 v2파드로 전환된다.배포는 Deployment 업데이트 하면 된다. / 에러 롤백 가능,트래픽 제어 불가능, 서비스 중단 없음 [Bule/Green]v2 deployment 만든다. label은 v2로 만든다. 서비스 셀렉터는 v1에서 v2로 수정한다. 트래픽이 v2으로만 들어가게 된다.수동 배포 시 롤백 빠름 / 스크립트를 통해 자동 배포 가능 / v2에 과도한 트래픽 유입시 문제 발생운영에서만 테스트한다--> blue/green 배포 쓰세요~ [Canary]배포용으로 새 서비스 만든다. Ingress 컨트롤러인 엔진 X 랑 각 서비스에 Ingress라는 리소스도 만들어 준다.트래픽 양을 조절할 수 있다.특정 헤더 값에 한해서만 v2 트래픽 유입콜드 스타트 방지, 두 버전 비교 가능 (A/B 테스트)단계별로 구축해보는 배포 파이프라인 Level1: 초반 구성할 때는 간단하고 직관적인 형태로 완성하기 Level2: Jenkins Pipeline 사용 Level3: Kustomize, Helm 배포쿠버네티스 앱들을 늘리기는 쉬워졌다. 하지만 하나씩 복사해서 네임이나 env를 수정하는 것도 귀찮다이렇게 동적 구성으로 한다면 조금 더 편해집니다. 출처: [인프런 쿠버네티스 어나더 클래스] 강좌 자료  Level4: ArgoCD 배포 분리 

데브옵스 · 인프라쿠버네티스복습배포3주차인프런

이효정

[인프런 워밍업 클럽: 쿠버네티스] 3주차 발자국

데브옵스 한방 정리다른 내용도 있었지만 가장 흥미롭게 봤던 부분을 요약했다!GitOps: 데브옵스 파이프라인을 Git 하나로 통일/ 이슈, 협업관리,빌드, 테스트, 배포DevSecOps: 보안적인 요소까지 고려 및 자동화, 취약점 검사 체크MLOps: 머신너링 상품추천 사용자 행동 예측LLMOps: GPT 처럼 방대한 규모 머신너링에 특화덴 데브옵스 파이라인 필요FinOps: 클라우드 환경 비용 절감 포커스 손쉽게 데브옵스 환경을 구축하는 방법 배포를 시작하기 전에 반드시 알아야 할 것들강의도 듣고 미션5도 열심히 진행했다~미션5 진행 과정을 잘 작성해서 인프런 블로그에 남겨야겠다. 이번 미션5는 같은 이미지를 도커에서 받았을 때와 쿠버네티스에서 받았을 때 사이즈가 다른 이유와 Docker와 Containerd 명령 실습을 했다. 이번 실습에서 기억남은 것은 같은 이미지를 도커, 쿠버네티스에서 받았을 때 사이즈가 다른 이유와 관련된 실습이다. 도커는 "이미지 재구성"을 한다. 도커는 단순히 이미지를 다운로드하는 데서 끝나는 게 아니라, 자신의 포맷(도커 이미지 형식)에 맞게 레이어를 재정렬하고 필요한 메타데이터나 manifest 정보를 추가해서 재구성한다. 그래서 도커에서 보면: 원래 이미지 용량: 248MB → 도커에선: 490MB 이런 식으로 사이즈가 커진 이미지가 생긴다.이러한 사실을 바탕으로 나중에 혹시나.. 인터넷이 연결되지 않는 환경에서는 이미지들을 다운 받아서 파일 형태로 복사해야한다면 이때 쿠버네티스에서 컨테이너를 사용한다고 Docker로 받은 이미지를 복사해 넣을 경우 불필요하게 이미지 사이즈가 커지게 되는 상황을 만들지 않도록 주의해야한다. 꼭 명심하기! Jenkins Pipeline (기초부터 Blue/Green 까지) Helm과 Kustomize 비교하며 사용-1 회고벌써 4주차라니, 시간이 정말 빠르게 지나간다. 쿠버네티스랑 조금씩 친해지고 있는 느낌도 들고 ^^하하....실습하면서 “이건 왜 안 되지?”, “저건 왜 이러지?” 싶은 순간들이 아직 많다. 강의 들어도 한 번에 딱 이해되는 건 아니지만 신기하게도, 복습을 위해 다시 강의를 들으면 “아~ 그 말이었구나” 하고 이해되는 순간이 오기도 해서 재밌다.블로그를 쓰다 보면 “아, 이런 과정을 거쳤었구나” 하면서 다시 한 번 정리되고, 여러 감정이 스쳐 지나간다.매일 강의 하나씩 듣고 실습하고 복습하는 루틴을 이어왔을 뿐인데, 벌써 15개 넘는 블로그 글이 쌓였다는 게 뿌듯하다.마지막 미션도 열심히 해보려고 한다. 아직 1주차 복습 글을 쓰지 못했는데, 조만간 꼭 정리해서 마무리해야겠다.

데브옵스 · 인프라인프런쿠버네티스3주차미션복습발자국

채널톡 아이콘