Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

JINIers

[PCK] Build and Deploy a Docker Image to a Kubernetes Cluster 본문

GCP/Qwiklabs

[PCK] Build and Deploy a Docker Image to a Kubernetes Cluster

JINIers 2022. 2. 12. 15:34

도전 시나리오

 

개발 팀은 애플리케이션 아키텍처에 대한 컨테이너화된 마이크로서비스 접근 방식을 채택하는 데 관심이 있습니다. 제공한 샘플 애플리케이션을 테스트하여 Google Kubernetes 컨테이너에 배포할 수 있는지 확인해야 합니다. 개발 그룹은 Dockerfile 및 관련 컨텍스트로 호출되는 간단한 Go 애플리케이션을 제공 echo-web하여 Docker 이미지를 즉시 빌드할 수 있도록 했습니다.



당신의 도전

배포를 테스트하려면 샘플 애플리케이션을 다운로드한 다음 Container Registry에 저장할 수 있는 태그를 사용하여 Docker 컨테이너 이미지를 빌드해야 합니다. 이미지가 빌드되면 배포하기 전에 Container Registry로 푸시합니다.

이미지가 준비되면 Kubernetes 클러스터를 만든 다음 샘플 애플리케이션을 클러스터에 배포할 수 있습니다.


[체크 포인트]


1. 새 kubernetes 클러스터가 있음(zone : us-central1-a)
2. v1 태그가 있는 애플리케이션 이미지가 gcr.io 저장소로 푸시되었습니다.
3. 애플리케이션이 클러스터에 배포되었는지 확인
4. Echo-app과 같은 요청에 응답하는 서비스가 있는지 테스트


1. Kubernetes 클러스터 생성


테스트 환경은 용량이 제한되어 있으므로 생성 중인 테스트 Kubernetes 클러스터를 두 개의 n1-standard-2인스턴스로 제한해야 합니다. 클러스터를 호출해야 합니다 echo-cluster.

gcloud config set compute/zone us-central1-a
gcloud container clusters create echo-cluster --num-nodes=2 --machine-type=n1-standard-2

- 체크포인트 1 완료


2. 태그가 지정된 Docker 이미지 빌드


Dockerfile 및 애플리케이션 컨텍스트 파일을 포함한 샘플 애플리케이션은 echo-web.tar.gz. gs://[PROJECT_ID].아카이브가 이라는 랩 프로젝트에 속한 Cloud Storage 버킷에 복사되었습니다.v1.

mkdir echo-web
cd echo-web/
gsutil cp -r gs://qwiklabs-gcp-04-0486f1f56ac6/echo-web.tar.gz .
* cloud storage > browser > bucket 클릭 > 파일 클릭 후 gsutil URL 복사

tar -zxf echo-web.tar.gz
cd echo-web
docker build -t echo-app:v1 .

docker tag echo-app:v1 gcr.io/$DEVSHELL_PROJECT_ID/echo-app:v1

docker push gcr.io/$DEVSHELL_PROJECT_ID/echo-app:v1


- 체크포인트 2번 완료


3. Google Container Registry에 이미지 푸시


조직은 gcr.io모든 프로젝트에 항상 Container Registry 호스트 이름을 사용하기로 결정했습니다. 샘플 애플리케이션은 애플리케이션이 실행 중인 시스템의 구성을 설명하는 일부 데이터를 보고하는 간단한 웹 애플리케이션입니다. 기본적으로 TCP 포트 8000을 사용하도록 구성되어 있습니다.

kubectl create deployment echo-web --image=gcr.io/$DEVSHELL_PROJECT_ID/echo-app:v1

- 체크포인트 3번 완료


4. Kubernetes 클러스터에 애플리케이션 배포


애플리케이션이 포트 8000에서 HTTP 요청에 응답하도록 구성되어 있어도 포트 80에서 일반 웹 요청에 응답하도록 서비스를 구성해야 합니다. 샘플 애플리케이션에 대한 클러스터를 구성할 때 배포를 호출하십시오 echo-web.

kubectl expose deployment echo-web --type=LoadBalancer --port 80 --target-port 8000

kubectl get svc

external-ip 확인

- 체크포인트 4번 완료

 

끝!

Comments