k8s - gitops 개념

킹콩(King Kong)·2024년 12월 18일

k8s - gitops

  • k8s app 배포시 모든 소스를 git에 올려놓고 git을 중심으로 변경관리를 진행한다.

application 변경

  • git 의 소스를 checkout 받는다.
  • application 을 변경 > 로컬테스트를 수행한다.
  • 이상이 없으면 git에 커밋한다.
  • jenkins에서 빌드를 수행 후 *.jar파일을 도커 image로 만들어 Harbor같은 image registry에 push 해 놓는다.

k8s - deployment 작성

  • helm chart 등 deployment/service/configmap 등 작성한다.
  • 변수는 values.yaml에 저장한다.
  • deployment의 image는 Harbor같은 registry 의 image를 참조하도록 한다.

k8s 배포

  • argocd 를 설치한다.
  • k8s 환경이 개발 / 이관 / 운영으로 landscape가 나눠져 있을 경우, 각 landscape에 argocd를 설치한다.
  • 각 landscape의 argocd의 repository는 같은 git을 바라본다.
  • 여기서, values.yaml 이 개발/이관/운영마다 환경이 다를 수 있다.
    • landscape 환경에 영향을 받는 변수는 config-map을 사용해서 변수화 할 수 있고,
    • values.yaml 을 통해서만 변수화를 해야하는 경우는, values-dev.yaml, values-test.yaml, values-prod.yaml 등으로 landscape별로 각각 만든다.
    • 예) ingress hostname의 경우, 개발-dwww.test.com, 운영-www.test.com 처럼
  • argocd 에서 application을 create할때, values 파일을 landscape에 맞게 지정하여 생성해 준다.

k8s 기본 명령어

$> k get pod -n test
$> k get configmap -n test
$> k apply -f configmap.yaml -n test
$> k apply -f deployment.yaml -n test
profile
IT를 쉽게 이해해 보아요~😄

0개의 댓글