반응형
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 에 접속하여 프로젝트 배포 확인.
반응형
'개발인생 > DevOps Engneer' 카테고리의 다른 글
DevOps) CI with Jenkins (0) | 2023.03.15 |
---|---|
DevOps) CI with Docker (Legacy 방식) (0) | 2023.03.15 |
DevOps ) CI/CD Workflow (0) | 2023.03.14 |
DevOps) Docker로 로컬 프로젝트를 Docker Hub에 이미지로 build하는 방법 (0) | 2023.03.09 |
install) kubernetes + ArgoCd (yaml 파일로 배포) (0) | 2023.02.14 |