Tech이야기~!
welcom 자세히보기

Could/GCP

Google cloud onboard 2019_4

Enhold 2019. 12. 8. 13:03

모듈3 컨테이너 및 앱 개발, 배포, 모니터링

컨테이너 소개

  • IaaS : 하드웨어를 가상화 하고, 리소스를 공유
  • 하지만 유연성에는 부팅시간(분)과 리소스(GB)가 소요
  • App Engine
    • 프로그래밍 서비스에 대한 액세스를 제공
    • 앱 수요가 늘어날 수록 워크로드 및 인프라에 따라 독립적으로 앱을 신속하게 확장하는 플랫폼

컨테이너에서 제공하는 사항

 

  • IaaS와 PaaS의 확장성을 제공
  • 하드웨어 및 OS의 추상화 레이어
  • 격리된 파티션으로 나눈 파일 시스템, RAM 네트워킹에 대한 구성 가능한 액세스를 제공하는 보이지 않는 상자
  • 빠른 시작

 

 

Kubernetes

여러 호스트의 많은 컨테이너를 쉽게 조정한다.

앱을 컨테이너로 빌드해 실행해보기

  • Docker : 앱, 종속항목, 시스템 설정을 번들로 묶는다
  • Google Cloud Build 등의 다른 도구도 사용이 가능하다. 코드 예시 : hello world를 표시하는 python flask 앱
[app.py]
from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello(): 
	return "helloworld!" 
    
if __name__ == "__main__":
	app.run(host='0.0.0.0');

 

앱을 Kubernetes로 가져오기 - Docker 파일을 사용해 4가지 지정

  • Flask 종속 항목의 requirements.txt 파일
  • Python의 OS 이미지 및 버전
  • Python 설치 방법
  • 앱 실행 방법
FROM ubuntu:18.10 
RUN apt-get update -y && \
	apt-get install -y python3-pip python3-dev 
COPY requirements.txt /app/requirements.txt 
WORKDIR /app 
RUN pip3 install -r requirements.txt 
COPY ./app 
ENDPOINT ["python3", "app.py"]

 

컨테이너를 이미지로 빌드해 실행하기

  • docker build로 컨테이너를 빌드하여 로컬에 실행 가능한 이미지로 저장
  • 공유를 위해 레지스트리 서비스 (Google Container Registry 등)에 이미지 업로드 기능
  • docker run으로 컨테이너 이미지를 시작
$> docker build -t py-server . 
$> docker run -d py-server

 

Kubernetes API를 사용해 컨테이너를 클러스터라고 부르는 노드 모음에 배포하기

 

 

  • 마스터는 제어영역을 실행
  • 노드는 컨테이너를 실행
  • 노드는 VM(GKE에서는 GCE인스턴스로 사용됨)
  • 사용자가 앱을 설명하면 Kubernetes가 구현방법 파악

 

Kubernetes Engine 부트 스트랩하기

 

 

  • GKE 클러스터에서 다음 사항을 지정 가능
  •  머신 유형 
  • 노드수 
  • 네트워크 설정 등

 

 

 

 

컨테이너를 노드에 배포할때 Pod라고 부르는 래퍼 사용하기

 

Kubectl run을 사용해 Pod에서 컨테이너 실행하기

  • Kubectl은 Kubernetes API에 대한 명령줄 클라이언트임
  • 이 명령어로 Pod에서 실행 중인 컨테이너에 배포를 시작
  • 이 경우 컨테이너는 NGINX 서버의 이미지임

 

배포

사용하는 앱 또는 워크로드의 복제본 Pod 모음을 관리하고 원하는 수의 Pod가 실행되고 정상상태를 유지하도록 한다

 

기본적으로 클러스터 안에서만 사용되며, 임시 IP를 가져오는 Pod

  • 고정 IP에서 공개적으로 사용할 수 있도록 Kubectl expose를 실행하여 부하 분산기를 배포에 연결가능
  • Kubernetes에서 Pod의 고정 IP를 사용해 서비스를 만들며 컨트롤러에 'I need to attach an external load balancer with a public IP address'라는 메세지가 표시됨

 

 

 

 

'Could > GCP' 카테고리의 다른 글

Google cloud onboard 2019_5  (0) 2019.12.08
Google cloud onboard 2019_3  (0) 2019.12.05
Google cloud onboard 2019_2  (0) 2019.11.29
Google cloud onboard 2019_1  (0) 2019.11.27