Aws

Eks ArgoCD 실습

wngnl05 2024. 12. 27. 15:15

동영상

ArgoCD 설치

더보기
#ArgoCD 설치
curl -LO https://github.com/argoproj/argo-cd/releases/download/v1.4.2/argocd-linux-amd64
chmod u+x argocd-linux-amd64
sudo mv argocd-linux-amd64 /usr/local/bin/argocd
export PATH=/usr/local/bin:$PATH
echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bashrc

kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
kubectl get all -n argocd

ArgoCD Rollout 설치

더보기
kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/latest/download/install.yaml

curl -LO https://github.com/argoproj/argo-rollouts/releases/latest/download/kubectl-argo-rollouts-linux-amd64
chmod +x ./kubectl-argo-rollouts-linux-amd64
sudo mv ./kubectl-argo-rollouts-linux-amd64 /usr/local/bin/kubectl-argo-rollouts
kubectl argo rollouts version
kubectl get pod -n argo-rollouts

아래의 명령어로 arocd-server에 접속하여 46번째주에 type을 LoadBalancer 로 수정해줍니다.

kubectl edit svc -n argocd argocd-server

argocd 비밀번호 확인

kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo

argocd에 로그인 해줍니다.

# argocd 로그인
argocd login <Argocd ALB DNS>:443 \
  --username admin \
  --password <위에서 얻은 비밀번호>

argocd에 CodeCommit 연결

# codecommit 연결
argocd repo add <CodeCommit HTTPS> --username <IAM git 자격증명>  --password <IAM git 자격증명>

argocd 앱 생성

path는 codecommit에서 업데이트할 yaml이 있는 경로를 의미합니다.

argocd app create <이름> \
    --repo <CodeCommit HTTPS> \
    --path ./eks \
    --dest-server https://kubernetes.default.svc \
    --dest-namespace <네임스페이스>

Down File

wget https://raw.githubusercontent.com/wngnl-dev/AWS/main/Image/test/test/argo.yaml
wget https://raw.githubusercontent.com/wngnl-dev/AWS/main/Image/test/test/kustomization.yaml
wget https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/ArgoCD/buildspec.yaml
mkdir eks
mv argo.yaml ./eks
mv kustomization.yaml ./eks

 

 

kubectl get rollout/blue-green-app -n app -o jsonpath='{.spec.template.spec.containers[*].image}' && echo "" && echo ""
kubectl argo rollouts get rollout blue-green-app -n app | egrep "Strategy" \
; kubectl argo rollouts get rollout blue-green-app -n app | egrep "stable" |grep "Healthy" | awk {'print $6,$8'}