https://daaa0555.tistory.com/330
CI/CD
인프라, 어플리케이션에 따라 방법이 다르다
CI: Continues Integrity
파이썬 코드를 작성하고 깃에 올리고 빌드, 파이썬 코드를 가지고 도커 이미지를 만들었고 실제 쿠버네티스에 파드로 배포를 수동으로 했다 -> 이것을 자동화
파이썬을 최종적으로 사용가능한 이미지로 만드것 (언어마다 절차 다를 수 있음)
이미지 작성하고 빌드 이미지를 푸시한다 레지스트리에 이것을 deploy(배포)한다
CD: Continues Delivery/Deployment
레지스트리에 올라있는 이미지를 실제로 쿠버네티스에 배포하는 과정을 자동화
도커파일로는 불가능 크랄우드 빌드 파일로 가능
CI/CD 도구들
Docker Hub : Autobuild
GitLab: CI/CD
GitHub : Action, Circle CI
레지스트리에 이미지 push
깃으로 myflask 이미지를 push하면 컨테이너 이미지를 자동으로 빌드하고, 그 이미지를 자동으로 레지스트리에 push, push하면 자동으로 이미지까지 만들어짐
저장소 추가
gcloud SDK로 인증
git add commit
트리거 생성
코드를 변경해서 push 하게 되면 자동으로 브랜치에 push (이벤트), 브랜치에 push가 되면 트리거가 자동으로 작동해서, 사용자의 git 저장소에 있는 Dokerfile을 읽어서 build한다. 그 이미지를 사용자의 레지스트리에 자동으로 push 한다
Dockerfile 은 루트에 있기 때문에 따로 지정할 필요 없지만
다른 디렉토리에 있는 경우 따로 지정해준다, Dockerfile 이름이 다르면 이름도 지정해준다
$COMMIT_SHA \ : commit의 hash값이 tag로 붙게된다
사용자 대신 이 명령어를 실행 시켜준다
tag를 이용하 깔끔하게 관리 하는것을 권장
권한 부여
서비스 계정 권한에서 서비스계정을 사용설정 시켜줌 (sa 계정)
사용자가 해야하는것을 대신해서 하기 떄문에 권한 부여가 필요
트리거 실행
master 브랜치에 push를 해야 이벤트가 발생하여 트리거가 작동해서 build가 작동 하는데
실행을 클릭하면 강제로 이벤트를 발생시켜 build를 진행 시킨다
새로 생성된 이미지를 확인
index.py 파일을 수정 후 git add, commit, push를 해본다
이벤트가 발생하여 build가 되었다 (새로운 이미지가 생성된다)
GKE의 여러가지 기능
Prometheus 모니터링이나 Elastic Stack 로깅 구현 하지않아도 제공
관리형 쿠버네티스를 사용하면 편리한 점이 많다
클러스터 구성원 추가
다른 사용자에게 클러스터를 읽을수있는 권한 주기 (다른 구글 계정 추가)
권한이 부여 된 사용자의 메일에서 Cloud Console 열기
읽기 권한 있음, 삭제 권한 없음
CD
+) 추가
트리거를 만들 때 도커 파일이 있고 클라우드 빌드 구성 파일이 있다
Dockerfile은 오직 도커 이미지만 만들 수 있는데 클라우드 빌드를 하게 되면 여러가지 언어들을 빌드하고 자동화 할 수 있다
CI ,CD 도구마다 전용 클라우드 빌드 구성파일이 다르다
https://cloud.google.com/build/docs/building/build-containers
https://cloud.google.com/build/docs/deploying-builds/deploy-gke
'클라우드 > 클라우드(Public Cloud)' 카테고리의 다른 글
클라우드 GCP IAM 2 / 역할 부여 2 - 스토리지 (0) | 2021.08.25 |
---|---|
클라우드 GCP IAM 1 / 역할 부여 1 (0) | 2021.08.25 |
클라우드 GCP 쿠버네티스 Google Kubernetes Engine ( GKE ) 2 (0) | 2021.07.23 |
클라우드 GCP 쿠버네티스 Google Kubernetes Engine ( GKE ) 1 (0) | 2021.07.23 |
클라우드 GCP SQL (0) | 2021.06.25 |