Tasks
An application image with a v1 tag has been pushed to the gcr.io repository
A new Kubernetes cluster exists (zone: us-central1-a)
Check that an application has been deployed to the cluster
Test that a service exists that responds to requests like Echo-app
1. 클러스터 생성
gcloud beta container --project "qwiklabs-gcp-00-337f72711928" clusters create "echo-cluster" --zone "us-central1-a" --no-enable-basic-auth --cluster-version "1.14.10-gke.17" --machine-type "n1-standard-2" --image-type "COS" --disk-type "pd-standard" --disk-size "100" --metadata disable-legacy-endpoints=true --scopes "https://www.googleapis.com/auth/devstorage.read_only","https://www.googleapis.com/auth/logging.write","https://www.googleapis.com/auth/monitoring","https://www.googleapis.com/auth/servicecontrol","https://www.googleapis.com/auth/service.management.readonly","https://www.googleapis.com/auth/trace.append" --num-nodes "3" --enable-stackdriver-kubernetes --enable-ip-alias --network "projects/qwiklabs-gcp-00-337f72711928/global/networks/default" --subnetwork "projects/qwiklabs-gcp-00-337f72711928/regions/us-central1/subnetworks/default" --default-max-pods-per-node "110" --addons HorizontalPodAutoscaling,HttpLoadBalancing --enable-autoupgrade --enable-autorepair
클러스터 생성은 Cloud Console 에서 직접 하면 된다.
name 은 "echo-cluster" , machine-type 은 "n1-standard-2" 로 만들어 준다.
2. tar file 을 Google Cloud Storage 에서 복사한 후 압축을 푼다.
- Google Cloud Strage 에서 복사
gsutil cp gs://qwiklabs-gcp-00-337f72711928/echo-web.tar.gz .
- 압축 풀기
tar -xvfz echo-web.tar
3. Docker Build 및 Image Push
- Docker Build
- Image 확인
echo-app 이 생성된 것을 확인할 수 있다.
- GCR(Google Cloud Registry) 에 push 하기 위해서 Tag 를 변경해준다.
export PROJECT_ID=$(gcloud info --format='value(config.project)')
docker tag echo-app:v1 gcr.io/${PROJECT_ID}/echo-app:v1
- Image 를 Cloud Registry 에 push
중간에 나는 project id 를 그대로 써줬는데 위에서 export 를 했기 때문에 ${PROEJCT_ID} 로 써줘도 된다.
4. GKE 에 Deploy 하기
Cloud Console 의 Container Registry 를 확인해 보면 위와 같이 push한 이미지를 확인 할 수 있다.
오른쪽에 ... 메뉴를 눌러보면 Deploy to GKE 버튼을 볼수 있다. 그걸 클릭한다.
Image 는 "Exsiting conatiner images" 를 선택하고 좀전에 생성한 이미지를 선택해준다.
Application name 은 "echo-web" 이라고 해준다.
라벨에도 key에 app, value 에 echo-web 이라고 넣어준다.
Cluster 는 위에서 생성한 "echo-cluster" 를 선택한다.
그리고 "Deploy" 클릭.
5. 외부에서 접속 할수 있도록 expose 하기
Cloud Console 에서 Kubernetes Engine > Workloads 메뉴로 가면 echo-web 의 detail 정보로 들어가면 위와 같이 화면이 나온다.
화면 상단에 있는 Expose 버튼을 누른다.
port 를 80 으로 넣어주고 Target port 를 8080 으로 넣고 Expose 버튼을 누른다.
Expose 가 완료되면 위와같이 External endpoint 가 나타난다.
주소로 접속을 하게 되면 위와 같이 결과를 볼 수 잇다.
Cloud console 메뉴를 이용해서 만들었는데 직접 kubectl 명령어를 활용해서 만들어 보는것도 좋은 공부가 될것 같다.
'Development > Cloud' 카테고리의 다른 글
[Qwiklabs]Migrate a MySQL Database to Google Cloud SQL (0) | 2020.03.26 |
---|---|
[Qwiklabs]Scale Out and Update a Containerized Application on a Kubernetes Cluster (0) | 2020.03.26 |
[GCP] Cloud Shell 에서 Instance 접근 방법 (0) | 2020.03.16 |
[Qwiklabs]Configure Secure RDP using a Windows Bastion Host (0) | 2020.03.15 |
[Qwiklabs] Configure a Firewall and a Startup Script with Deployment Manager (0) | 2020.03.06 |