
💡 시크릿은 암호, 토큰 또는 키와 같은 소량의 중요한 데이터를 포함하는 오브젝트이다. 이를 사용하지 않으면 중요한 정보가 파드 명세나 컨테이너 이미지에 포함될 수 있다. 시크릿을 사용한다는 것은 사용자의 기밀 데이터를 애플리케이션 코드에 넣을 필요가 없음을 뜻한다.
시크릿(Secret)
현재 운영중인 서버 중에서 하나의 컴퓨터를 꺼줍니다.

껐던 컴퓨터에 새로운 버전을 담아 배포합니다. 두번째 컴퓨터를 꺼줍니다.

docker-compose(Nest.js)
version: '3.7' # Product services: # 서비스명 my-backend: platform: linux/x86_64 image: 클라우드의 레지스트리 버전 이미지 위치 # Dockerfile build: # 위치 context: . dockerfile: Dockerfile ports: - 3001:3001cloudbuild.yaml
steps: # 1단계 쿠버네티스 레지스트리 이미지 저장소를 향하도록 build - name: docker/compose:1.29.0 args: - -f - docker-compose 경로명 - build # 2단계 쿠버네티스 레지스트리 이미지 저장소로 Push - name: docker/compose:1.29.0 args: - -f - docker-compose 경로명 - push # 3단계 쿠버네티스 pod 빌드하기 - name: 'gcr.io/cloud-builders/kubectl' args: - set - image - deployment/배포된 이름 - name / 바꿀 이미지이름 env: - CLOUDSDK_COMPUTE_ZONE=asia-northeast3 - CLOUDSDK_CONTAINER_CLUSTER=클러스터명
💻 :
Mac
Cloud SDK
설치후
~/.zshrc에 패스설정export GOOGLE_CLOUD_SDK_PATH=[google-cloud-sdk를 넣어둔 경로] export PATH=$PATH:$GOOGLE_CLOUD_SDK_PATH/bin
gcloud init을 터미널에 친후 구글계정 연결.ID로 뜸)연결northeast3-a로~(Seoul)그 후, docker와 gcp를 연결한다
docker Desktop이나 Docker가 현재 pc에 Online인 경우에만 작동됩니다.
gcloud components install docker-credential-gcr
도커와 연결할 컴포넌트 설치
docker-credential-gcr configure-docker 도커로 연결할 config파일 생성.
gcloud auth configure-docker 도커 인증 설정
docker-compose -f (compose할 yaml파일) build를 통해
Google Container Registry에 빌드합니다
image: [지역]/[프로젝트 ID]/[디렉토리명]:버전(image에 들어갑니다)(
Nest.js만 배포했습니다)그후 build가 완료되면
docker-compose -f (compose할 yaml파일) push를 통해 푸시합니다.
Kubernetes Engine에 들어간뒤

만들기를 눌러 클러스터를 만드는 메뉴에 들어갑니다..

그후
Autopilot을 선택해POD조절을k8s에 할당합니다.
작업부하에 들어가 배포를 누른후,
기존 컨테이너 이미지를 활용 (Google Container Registry)에 푸쉬된 이미지
를 선택한뒤
.env에 관리하던 환경변수를 작성해서 배포를 완료합니다.

배포가 끝난 POD는
Ingress를 통해 외부로 공개합니다.
서비스 및 수신에 들어가인그레스 만들기를 통해 만들기를 시작합니다.
그후Frontend config에서 인증서를 만든후
(도메인은 직접 구입한 도메인을 입력합니다.)
공개합니다
그다음Cloud DNS에 들어가A레코드에 해당IngressIP주소를 등록합니다.
주의
Ingress의Default Health Check는GET("/")으로 이루어지므로 해당Endpoint가 있어야만 체크가 가능합니다.