전체 글 (90) 썸네일형 리스트형 [Sprint2] ArgoCD 설치 및 Application 생성해보기 왜 ArgoCD를 사용하는가?배포를 좀 더 쉽게 만들어줌 Blue/green, Canary 배포 기능 지원 (Argo 주요 사용 이유)그래서 요즘은 Jenkins로 빌드까지만 하고 배포는 ArgoCD를 많이 사용하는 추세이다근데 그렇다고 해서 Level3로도 내 App을 배포하는데 문제가 없다면, 굳이 다음 단계로 넘어갈 필요 없음(ArgoCD도 유지보수 부담이 생긴다) => 이번 강의를 잘 들으면 그에 대한 판단도 할 수 있을 것!! Rollouts편의기능은 나중에 실력이 올라갈 수록 내 눈에 보이지 않는 동작들을 파악해야하는 불편함도 있다. Rollouts의 배포 전략은 우리가 직접 만드는 것보다 훨신 좋음 실습과 정리 강조 강사님은 인터넷만 보지 말고 직접 설치해보는 편그리고 한번 해본 것은 .. Jenkinsfile 문법 1. 기본 틀pipeline { agent any tools { } parameters { } environment { } stages{ stage(''){ steps { } } stage(''){ when { } } }} 2. agentagent anyagent: Jenkins가 일을 시키는 작업용 컴퓨터 agent any: 어떤 agent나 파이프라인을 실행 가능하다. 3. tools tools { gradle 'gradle-7.6.1' jdk 'jdk-17' }Jenkins가 자동 설치해서 사용한다. 4. parameter.. [Sprint2] 배포 파이프라인 구축 후 마주하게 되는 고민들 Jenkins 설정item name: 2224-deploy-helmCopy from: 2223-deploy-helmSparse Checkout paths > Path: 2224Script Path: 2224/Jenkinsfile 강사님 카페https://cafe.naver.com/f-e/cafes/30725715/articles/104?menuid=13&referrerAllArticles=false1. 중요 데이터 암호화 관리문제 - docker-config.json 파일은 암호화가 되어있지 않기 때문에, 이 파일로 Docker username과 password르 볼 수 있다. (Base64 인코딩 되어있음)- kubeconfig 파일(~/.kube/config)을 복사해가면 관리자 권한으로 쿠버네티스에.. [Sprint2] Helm 배포하기(다양한 배포 환경) 실습 과정 배포 코드 확인https://github.com/k8s-1pro/kubernetes-anotherclass-sprint2/tree/main/2223 실습 후 정리# helm 조회helm list -n anotherclass-222# helm 삭제helm uninstall -n anotherclass-222-dev api-tester-2223helm uninstall -n anotherclass-222-qa api-tester-2223helm uninstall -n anotherclass-222-prod api-tester-2223# namespace 삭제kubectl delete ns anotherclass-222-devkubectl delete ns anotherclass-222.. [Sprint2] Helm vs Kustomize + Kustomize 실습(다양한 배포환경) ▲ Kustomize는 직접 하위 폴더 구성을 하고 이 구조에 배포할 yaml 파일도 생성해주어야 함 ▲ values.yaml에서 autoscaling의 enabled를 false로 하면 hpa가 배포되지 않음 ▲ kustomization에 배포할 파일 지정- Common Labels키에 내용을 넣으면 됨 ▲ 환경별 오버레이 될 파일을 넣을 수 있다 ▲ 개발환경 배포 명령어kubectl apply -k ./app/overlays/dev ▲ Helm의 경우values-dev.yamlvalues-qa.yaml values-prod.yaml배포시 -f 옵션 사용 실습 (Kustomize)Kustomize 배포하기▲ 처음에는 dev, qa, prod중 dev가 적용되므로 Abort 선.. [Sprint2] Helm vs Kustomize + Helm 실습 실무에서는? kubectl 커맨드 라인 도구- App 조회/급한 수정 (부가적 기능 X)- 자원 생성 시에는 잘 쓰지 않음 helm, kustomize 패키지 매니저(배포 툴이라고 통칭하는 경우가 많음)- App을 패키지 단위로 관리- 자원 생성 시 주로 사용 - 작업자 입장에서 한 번의 명령어로 배포 가능 (API는 kubectl과 똑같이 날려줌) => 둘다 배포툴이라고 통칭할 때가 많다 Helm vs Kustomize공통점사용 목적: 중복 관리 최소화 (마이크로 서비스로 App 종류가 많아짐+ 다양한 배포환경 때문에) 다양한 배포 툴에서 지원 (이 두 패키지 매니저가 거의 대표적이기 때문 ) 차이점Helm- 복잡, 배포 편의 기능 많음(200개 정도)- 마이크로 서비스 AND 다양한 배포환경.. Vagrant, Jenkins의 포트 변경 현재 8080 포트는 Jenkins에서 사용 중이기 때문에, Jenkins의 포트를 변경하기로 했다. 1. Vagrantfile 설정 수정 cicd.vm.network "forwarded_port", guest: 8081, host: 8081▲ host에서 8081 포트로 접속하면, Guest(Jenkins) vagrant reload 2. Jenkins의 port변경vi /usr/lib/systemd/system/jenkins.service sudo systemctl daemon-reexecsudo systemctl daemon-reload # 서비스 설정파일 변경 사항 반영sudo systemctl restart jenkins [Sprint2] Blue/Green 배포 스크립트로 자동화 (Step 4) 목차실습 전에 ..Blue/Green 자동 배포 Script 실습Jenkins Script 확인 실습 전에.. 이전의 Blue/Green 배포 과정에서 1. Green Deployment, 테스트용 Service 생성2. Service의 selector를 2로 변경하여 트래픽을 Green으로 전환3. Blue Deployment, Green service 삭제 및 관련 리소스와 labels 정보(version) 변경 => 이후에는 이때 누락정보가 있을 수 있기 때문에 helm을 사용 현재 배포 과정1 .Green Deployment 생성2. Pod들이 ready 상태인지 확인3. Service의 selector (blue-green-no: 2 로 수정)4. Blue Deployment 삭제 및 관.. 이전 1 2 3 4 5 ··· 12 다음