- [실습] Argo Rollouts2024년 04월 21일
- yeongki0944
- 작성자
- 2024.04.21.:43
Argo Rollout 을 활용한 배포 전략 테스트 - https://devocean.sk.com/blog/techBoardDetail.do?ID=163189
개념
- Argo Rollouts는 Kubernetes 환경에서 롤링 업데이트를 관리하는 도구
- Argo Rollouts는 Progressive Delivery를 지원하는 도구
- Canary 배포시
- 일시적 홀딩 > Metric을 통해 new version에 대한 배포가 성공인지 아닌지 판단 > 추가 배포 진행
- Canary 배포시
2. 설치
MyDomain=myeks.net CERT_ARN=`aws acm list-certificates --query 'CertificateSummaryList[].CertificateArn[]' --output text` echo $CERT_ARN
cat <<EOT > argorollouts-values.yaml dashboard: enabled: true ingress: enabled: true ingressClassName: alb hosts: - argorollouts.$MyDomain annotations: alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/target-type: ip alb.ingress.kubernetes.io/backend-protocol: HTTP alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":80}, {"HTTPS":443}]' alb.ingress.kubernetes.io/certificate-arn: $CERT_ARN alb.ingress.kubernetes.io/ssl-redirect: '443' EOT
kubectl create ns argo-rollouts helm install argo-rollouts argo/argo-rollouts --version 2.35.1 -f argorollouts-values.yaml --namespace argo-rollouts
# 확인 kubectl get all -n argo-rollouts kubectl get crd | grep argo
# rollouts cli curl -LO <https://github.com/argoproj/argo-rollouts/releases/download/v1.6.4/kubectl-argo-rollouts-linux-amd64> chmod +x ./kubectl-argo-rollouts-linux-amd64 mv ./kubectl-argo-rollouts-linux-amd64 /usr/local/bin/kubectl-argo-rollouts # 설치 확인 kubectl argo rollouts version
Deploying a Rollout
# Run the following command to deploy the initial Rollout and Service: kubectl apply -f <https://raw.githubusercontent.com/argoproj/argo-rollouts/master/docs/getting-started/basic/rollout.yaml> kubectl apply -f <https://raw.githubusercontent.com/argoproj/argo-rollouts/master/docs/getting-started/basic/service.yaml>
kubectl argo rollouts get rollout rollouts-demo
https://argorollouts.<각자 자신의 도메인>/rollouts/default
kubectl argo rollouts set image rollouts-demo rollouts-demo=argoproj/rollouts-demo:yellow
# 아래 입력 혹은 UI에서 Promote Yes 클릭 kubectl argo rollouts promote rollouts-demo # kubectl argo rollouts get rollout rollouts-demo --watch
Aborting a Rollout
# kubectl argo rollouts set image rollouts-demo rollouts-demo=argoproj/rollouts-demo:red # kubectl argo rollouts abort rollouts-demo # kubectl argo rollouts set image rollouts-demo rollouts-demo=argoproj/rollouts-demo:yellow
모든 자원 삭제
eksctl delete cluster --name $CLUSTER_NAME && aws cloudformation delete-stack --stack-name $CLUSTER_NAME
다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)