ArgoCD Kubenetes Helm 구축
이번 글에서는 ArgoCD를 Kubernetes Cluster에 Helm을 활용해 구축해보겠습니다.
argocd 설치
curl -sSL -o argocd-linux-amd64 <https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64>
sudo install -m 555 argocd-linux-amd64 /usr/local/bin/argocd
rm argocd-linux-amd64
Namespace 생성
kubectl create ns argocd
Cert 등록
kubectl edit cert -nistio-system xxx-cert
---
argocd.xxx.net
Helm 설치
# Repo 추가
helm repo add argo <https://argoproj.github.io/argo-helm>
# Helm 가져오기
helm fetch argo/argo-cd --untar
cd argo-cd
ls
values.yaml을 수정합니다.
- domain: ArgoCD Domain
vi values.yaml
---
## Globally shared configuration
global:
# -- Default domain used by all components
## Used for ingresses, certificates, SSO, notifications, etc.
domain: argocd.xxx.com
helm을 통해 배포를 진행합니다.
helm install argo -n argocd argo/argo-cd -f values.yaml
kubectl get all -nargocd
ArgoCD
Admin password
- username: admin
- password: xxxxxxx
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
Port forwarding으로 테스트
kubectl port-forward service/argo-argocd-server -n argocd 38080:443
VS Code를 활용하여 38080 포트에 대해 포트포워딩을 진행합니다.
웹 브라우저로 이동하여 localhost:38080으로 이동합니다.
위의 비밀번호를 이용하여 로그인을 진행합니다.
Deployment
argocd server에 대해 insecure 모드를 지정해야 307 Redirect issue를 해결할 수 있습니다.
kubectl edit deployment -nargocd argo-argocd-server
Gateway
Istio 설정은 다음의 글을 참고해주세요.
https://jeongchul.tistory.com/720
spec:
selector:
istio: ingressgateway
servers:
- hosts:
- argocd.xxx.com
....
VirtualService
vi virtualservice.yaml
---
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: argocd-server
namespace: argocd
spec:
gateways:
- default/cluster-gateway
hosts:
- argocd.xxx.com
http:
- corsPolicy:
allowHeaders:
- authorization
- content-Type
- accept
allowMethods:
- POST
- GET
- DELETE
- PUT
- OPTIONS
allowOrigins:
- regex: .*
exposeHeaders:
- authorization
- location
maxAge: 24h
match:
- uri:
prefix: /
route:
- destination:
host: argo-argocd-server.argocd.svc.cluster.local
port:
number: 80
ArgoCD
ArgoCD 도메인으로 웹브라우저를 통해 이동합니다.
Admin 유저의 비밀번호를 변경합니다.
완료하였습니다.
다음 글에서는 GitLab과 GitHub Actions을 통해 Application 배포를 CD를 통해 구축 진행하겠습니다.
감사합니다.
'Kubernetes' 카테고리의 다른 글
Kubernetes Traffic (1) | 2024.10.13 |
---|---|
Kubernetes Liveness Readiness (2) | 2024.10.13 |
Harbor Kubernetes Helm 설치 (0) | 2024.09.01 |
Istio IngressGateway External IP 설정 (0) | 2024.08.16 |
ArgoCD Kubernetes 구축 (0) | 2024.07.18 |