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 를 클릭하여 수동으로 배포 합니다
반응형