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

DevOps) GitLab + ArgoCD로 kubernetes project 배포

by DevOps_901126 2023. 3. 9.
반응형

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 에 접속하여 프로젝트 배포 확인.
반응형