JINIers
[PCK] Build and Deploy a Docker Image to a Kubernetes Cluster 본문
[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번 완료
끝!
'GCP > Qwiklabs' 카테고리의 다른 글
[PCK] Migrate a MySQL Database to Google Cloud SQL (0) | 2022.02.25 |
---|---|
[PCK] Migrate a MySQL Database to Google Cloud SQL (0) | 2022.02.12 |
[PCK] Monitoring Applications in Google Cloud lab (0) | 2022.02.11 |
[PCK] PCA Prep - Deploy a Compute Instance with a Remote Startup Script (0) | 2022.02.10 |
[PCK] PCA Prep - Update and Scale Out a Containerized Application on a Kubernetes Cluster (0) | 2022.02.09 |