1. 개요
구글 깃허브에서 제공하는 앱
2. 상세
2.1. 디렉토리 생성
mkdir sample-app
2.2. 깃 클론
git clone https://GitHub.com/GoogleCloudPlatform/training-data-analyst.git
2.3. 디렉토리 변경
cd training-data-analyst/courses/design-process/deploying-apps-to-gcp
2.4. 실행
sudo pip3 install -r requirements.txt python3 main.py
3. App Engine 배포 (옵션)
앱엔진에 배포해본다.
3.1. app.yaml 파일
training-data-analyst/courses/design-process/deploying-apps-to-gcp
디렉토리 안에 app.yaml 파일 생성
runtime: python37
3.2. 앱 배포 리전 선택 (리전은 필요에 따라 변경한다)
gcloud app create --region=us-central
3.3. 앱 배포
gcloud app deploy --version=one --quiet
3.4. 앱 재배포
무언가 수정을 발생시킨 후 (main.py 등)
gcloud app deploy --version=two --no-promote --quiet
4. 쿠버네티스 배포 (옵션)
쿠버네티스에 배포해본다.
물론 그 전에 클러스터는 구성되어 있다고 본다.
4.1. 파일 수정 (main.py 등)
4.2. 이미지 빌드 및 배포
cd sample-app/training-data-analyst/courses/design-process/deploying-apps-to-gcp gcloud builds submit --tag gcr.io/<프로젝트id>/devops-image:v0.2 .
이 명령어를 실행하면 gcr.io 로 시작하는 이미지 경로가 출력된다. 다음 단계에 사용됨
4.3. kubernetes-config.yaml
training-data-analyst/courses/design-process/deploying-apps-to-gcp
아래에 파일을 추가한다.
--- apiVersion: apps/v1 kind: Deployment metadata: name: devops-deployment labels: app: devops tier: frontend spec: replicas: 3 selector: matchLabels: app: devops tier: frontend template: metadata: labels: app: devops tier: frontend spec: containers: - name: devops-demo image: 여기에 4.2.의 그 이미지 경로를 입력한다 ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: devops-deployment-lb labels: app: devops tier: frontend-lb spec: type: LoadBalancer ports: - port: 80 targetPort: 80 selector: app: devops tier: frontend
4.4. 배포
kubectl apply -f kubernetes-config.yaml