연재 시리즈

pkos 스터디 3주차 1편 - gitops란?

악분 2023. 3. 25. 00:43
반응형

3주차 주제는 쿠버네티스 gitops입니다. 내용이 길어 3편의 글로 나누어 정리합니다. 1편에서는 gitops가 무엇인지 설명합니다.

 

gitops란?

gitops 사전적 정의보다는 저의 생각을 공유하려고 합니다😁. gitops는 2가지 의미가 있다고 생각합니다.

 

1. git에 있는 내용을 목적지에 반영

첫 번째는 git에 있는 내용을 목적지에 반영하는 것인데요. 목적지는 애플리케이션(백엔드, 프론트 등)이 될 수도 있고 서버, 플랫폼 등이 될 수 있습니다. 사용자는 목적지에 반영할 내용을 먼저 git에 저장한 후 목적지에 반영해야 합니다.

 

2. git활용

gitops는 단순히 목적지에 반영할 내용만 있는것이 아니라고 생각합니다. 형상관리를 하기 위한 branch전략, pull request와 review 등 git을 활용한 문화까지 gitops라고 생각합니다.

 

장단점

장점은 목적지의 작업내용이 git에 있으므로 히스토리를 알 수있습니다. 예를 들어, 퇴사자의 작업내용이 퇴사자 PC에만 있었고, 그 PC를 포맷했다고 생각해보세요. 내가 그 상황을 마주치면 끔직하겠죠.

 

단점은 모든 조직원이 gitops를 따르도록 적응기간이 필요합니다. 한명이라도 git을 사용하지 않고 목적지에 반영한다면 gitops신뢰성이 깨집니다.

 

쿠버네티스 gitops

gitops를 그대로 쿠버네티스에 적용한 것을 쿠버네티스 gitops입니다. 쿠버네티스에 반영할 쿠버네티스 리소스 내용을 먼저 git에 저장하고 쿠버네티스 적용합니다.

 

사용자 입장에서는 2가지 작업(git 저장, 쿠버네티스에도 반영)을 해야합니다. 이 단계를 편리하게 할 수 있도록 도와주는 도구가 쿠버네티스 gitops도구입니다. 대표적으로 argo cd, flux cd가 있습니다.

 

쿠버네티스 gitops 시스템 구성요소

쿠버네티스 gitops로 동작하는 환경을 gitops 시스템이라고 불러 볼게요. gitops시스템은 최소 4가지 컴퍼넌트가 필요합니다.

  1. 쿠버네티스: 당연히 쿠버네티스가 필요합니다.
  2. git 서비스: git기능을 수행하는 서비스입니다. github, gitlab, bitbucket등이 있습니다.
  3. gitops 도구: git에 있는 내용을 쿠버네티스에 반영합니다. argo cd, flux cd등이 있습니다.
  4. 도커 레지스트리: 도커 이미지를 저장합니다. nexus, harbor 등이 있습니다.

 

pkos스터디는 gitlab, argocd, harbor를 사용했습니다.

반응형