💡 시크릿
은 암호, 토큰 또는 키와 같은 소량의 중요한 데이터를 포함하는 오브젝트이다. 이를 사용하지 않으면 중요한 정보가 파드 명세나 컨테이너 이미지에 포함될 수 있다. 시크릿을 사용한다는 것은 사용자의 기밀 데이터를 애플리케이션 코드에 넣을 필요가 없음을 뜻한다.
시크릿(Secret)
현재 운영중인 서버 중에서 하나의 컴퓨터를 꺼줍니다.
껐던 컴퓨터에 새로운 버전을 담아 배포합니다. 두번째 컴퓨터를 꺼줍니다.
docker-compose(Nest.js)
version: '3.7' # Product services: # 서비스명 my-backend: platform: linux/x86_64 image: 클라우드의 레지스트리 버전 이미지 위치 # Dockerfile build: # 위치 context: . dockerfile: Dockerfile ports: - 3001:3001
cloudbuild.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
레코드에 해당Ingress
IP주소를 등록합니다.
주의
Ingress
의Default Health Check
는GET
("/")으로 이루어지므로 해당Endpoint
가 있어야만 체크가 가능합니다.