devops/CICD

GitLab + ArgoCD를 활용한 CI/CD (ArgoCD 세팅 후 배포테스트) <2>

Hoony.Song 2023. 6. 2. 19:26
반응형
ArgoCD가 설치가 안되어서 확인 해 보니 GitLab이 메모리를 많이 사용하여 리소스가 부족하다는 오류가 뜸
master node의 메모리를 8GB → 16GB 로 늘린 뒤에 정상적으로 설치 할 수 있었다 

 

  • argocd namespace를 생성 합니다
kubectl create namespace argocd

 

  • argocd를 설치 합니다
kubectl apply -n argocd -f <https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/ha/install.yaml>

 

  • Argo CD CLI를 설치 합니다
curl -sSL -o ~/bin/argocd <https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64> 
chmod +x ~/bin/argocd

 

  • Argo CD 서비스를 노출 시킵니다
kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "LoadBalancer"}}'

 

  • 접속 포트 번호를 확인 합니다
kubectl get svc argocd-server -n argocd

 

  • argocd에 접속 합니다

 

  • password를 확인 합니다
    • kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
    • ID = admin
    • passwd = gkjhVVueKdnN-93v

 

  • Git Repository에 배포용 manifest file을 추가 하였습니다
[deployment.yaml]
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-nginx
spec:
  selector:
    matchLabels:
      run: my-nginx
  replicas: 2
  template:
    metadata:
      labels:
        run: my-nginx
    spec:
      containers:
      - name: my-nginx
        image: nginx
        ports:
        - containerPort: 80
apiVersion: v1
kind: Service
metadata:
  name: my-nginx
  labels:
    run: my-nginx
spec:
  type: NodePort
  ports:
  - nodePort: 32000
    port: 80
    protocol: TCP
  selector:
    run: my-nginx

 

  • argocd 메뉴에서 Applications → CreateApplications
    • Applications Name = argocd App 이름을 지정 합니다 (cicdtest)
    • Project Name = argocd App 내의 프로젝트 이름을 지정 합니다 (default)
    • SYNC POLICY = manual 과 automatic 두 가지중 선택 합니다

 

  • Repository URL = Git 저장소 URL 입니다
  • Revision = Git Branches 이름 입니다 (master)
  • Path = Repository 내 변경사항을 관리할 파일이 위치한 경로 지정 합니다 ( . 을 하면 root )

 

  • Cluster URL = 클러스터 URL 인데 default URL 적용 합니다
  • Namespace = 배포 할 앱의 namespace를 지정 합니다(기본으로 default)
  • 설정이 완료 되면 Create 버튼을 클릭 합니다

 

 

  • 배포 확인
    • Status 에 Healthy Synced 초록불이 뜨면 정상 동작 입니다
    • automatic 설정으로 Git repository가 변경 되면 자동으로 배포 합니다
    • manual 일 땐 SYNC 를 클릭하여 수동으로 배포 합니다

반응형