ㅡ.ㅡ

[Argocd] Argocd, Argo-Rollouts 본문

WorkFlow

[Argocd] Argocd, Argo-Rollouts

ekwkqk12 2021. 9. 29. 23:15

kubectl apply -f 링크 주소 형식으로 설치를 안하는 이유는 삭제하려고 할 때 설치했을 당시와 내용이 변경됬으면 삭제할 때 오류가 발생하는 부분을 방지하기위해 wget으로 파일을 다운로드 후 진행한다(정확히 테스트는 안해봤지만.. 이름, 버전 같은것들이 변경됬을경우 리소스를 찾을 수 없다고 나올 확률이 높음)

네임스페이스 생성 및 리소스 파일 다운로드

kubectl create namespace argocd
wget https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml -O argocd.yaml

argocd.yaml > NLB 설정 변경(aws lb controller - 2.2버전)

Annotations 추가 설정과 service Type을 변경했다
(ip모드로 사용하려고했지만 http > https로 redirect가 안되는 오류가있는건지 통신이안됬음..)
nlb의 세부적인 설정은 AWS-LB-Controller > Servcie > Annotations를 참고하면 된다.

2962 apiVersion: v1
2963 kind: Service
2964 metadata:
2965   labels:
2966     app.kubernetes.io/component: server
2967     app.kubernetes.io/name: argocd-server
2968     app.kubernetes.io/part-of: argocd
2969   name: argocd-server
2970   annotations:
2971     service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
2972     service.beta.kubernetes.io/aws-load-balancer-name: argo-cd
2973     service.beta.kubernetes.io/aws-load-balancer-scheme: "internet-facing"
2974     service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
2975     service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: "*"
2976 spec:
2977   type: LoadBalancer
2978   ports:
2979   - name: http
2980     port: 80
2981     protocol: TCP
2982     targetPort: 8080
2983   - name: https
2984     port: 443
2985     protocol: TCP
2986     targetPort: 8080
2987   selector:
2988     app.kubernetes.io/name: argocd-server

argocd 및 기타 설치

argocd 설치
kubectl apply -f argocd.yaml -n argocd

argocd cli(kubectl과 같은 argocd 컨트롤 도구인듯..?)

ARGOCLI_VERSION=$(curl --silent "https://api.github.com/repos/argoproj/argo-cd/releases/latest" | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/')
sudo curl --silent --location -o /usr/local/bin/argocd https://github.com/argoproj/argo-cd/releases/download/$ARGOCLI_VERSION/argocd-linux-amd64
sudo chmod +x /usr/local/bin/argocd
argocd version

argocd 기본 계정(admin) 비밀번호 변경
echo로 출력된 비밀번호를 입력하고 변경할 비밀번호 입력

export ARGOCD_SERVER=`kubectl get svc argocd-server -n argocd -o json | jq --raw-output .status.loadBalancer.ingress[0].hostname`
ARGO_PWD=`kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d`
argocd login $ARGOCD_SERVER --username admin --password $ARGO_PWD --insecure
echo $ARGO_PWD
argocd account update-password

Rollouts(블루 그린, 카나리 배포시 사용)

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 create namespace argo-rollouts
wget https://github.com/argoproj/argo-rollouts/releases/latest/download/install.yaml -O argo-rollouts.yaml
kubectl apply -f argo-rollouts.yaml -n argo-rollouts

'WorkFlow' 카테고리의 다른 글

[Jenkins] CI/ECR  (0) 2021.10.09
[Gitlab] CD/Argocd  (0) 2021.10.01
[Jenkins] Gitlab Repo 연동  (0) 2021.09.28
[Jenkins] Jenkins  (0) 2021.09.26
[Gitlab] CD/Helm  (0) 2021.09.25