Print
카테고리: [ Development ]
조회수: 1085

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