본문 바로가기
개발인생/DevOps Engneer

DevOps) CD with ArgoCD (지속적인 배포)

by DevOps_901126 2023. 3. 15.
반응형

GitLab & ArgoCD = K8s Deploy

GitLab과 ArgoCD를 이용해 Kubernetes 배포를 설정하는 방법에 대해 다룹니다.

 

사전 작업

  • K8s Cluster에 GitLab , ArgoCD pod 설치
  • GitLab Group 생성 > subgroups > project 생성 > project 내부에 deploy.yaml 작성 (예정)
  • GitHub 혹은 Harbor와 같은 image registry에 프로젝트 이미지가 올라가 있어야 한다.
  • !!! 여기서는 GitHub를 사용한다.

GitLab Deploy.yaml 작성

  • 사전 작업 확인

  • deploy.yaml 작성
# Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
  name: msa1    
spec:
  replicas: 1
  selector:
    matchLabels:
      app: msa1
  template:
    metadata:
      labels:
        app: msa1
    spec:
      containers:
      - name: msa1
        image: yj0326/msa:msa1 # GitHub project 주소
        ports:
        - containerPort: 80

---
# Service
apiVersion: v1
kind: Service
metadata:
  name: msa1-service  
spec:
  selector:
    app: msa1
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
      nodePort: 31111
  type: NodePort

 

ArgoCD Repository 등록 (Https 방법)

  • ArgoCD 좌측 메뉴 Settings > Repository
    • CONNECT REPO 클릭
      • VIA HTTPS 선택

  • Repository 연결 확인

 

Application 등록

  • 좌측의 Applications 클릭
  • NEW APP 클릭
  • Name 지정
  • Project Name : default
  • Sync Policy : manual : 수동으로 Sync // Auto : 자동으로 3분마다 Sync

  • Git URL 입력
  • HEAD / Branches
  • Path에는 Git URL의 하위 프로젝트 폴더 (sync하여 배포 할 해당 deploy.yaml이 있는 Path)

  • Cluster URL 선택
  • Namesapce 지정
  • ** GitLab deploy.yaml에 namespace가 지정되어 있을 경우, yaml의 Namespace가 우선함

 

ArgoCD 및 K8s 해당 서버에서 배포 확인

  • ArgoCD 에서 확인 및 Sync

  • K8s 에서 확인

해당 서버의 Port : 31111 에 접속하여 프로젝트 배포 확인.

반응형