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
