GCP Qwkilab의 Google Cloud Essentials:Challenge Lab 챌린지 랩이다.
jumphost (host)생성을 요청하는 것
프로젝트를 생성할 곳으로 변경하고
gcloud config set project qwiklabs-gcp-04-a8858df420c7
예제 : gcloud compute instances create instance --machine-type n1-standard-2 --zone [your_zone]
실제 : gcloud compute instances create nucleus-jumphost-251 --machine-type f1-micro --zone us-west4-b
cluster와 resource가 위치할 compute zone을 지정
gcloud config set compute/zone us-west4-b
cluster을 생성
gcloud container clusters create nucleus-cluster
cluster에 대한 권한 얻기
gcloud container clusters get-credentials nucleus-cluster
Docker container중 Hello-app를 place-holder(자리표시자)로 생성 kubectl명령어를 이용해서 배포한다.
kubectl create deployment hello-server --image=gcr.io/google-samples/hello-app:2.0
이후에 Lab에서 요청하는대로 (포트번호가 작성되어 있음) 노출한다.
kubectl expose deployment hello-server --type=LoadBalancer --port 8082
Instance template 생성
gcloud compute instance-templates create nginx-template --metadata-from-file startup-script=startup.sh
Instance group 생성
gcloud compute target-pools create nginx-pool
instance group에 intacne들 생성
gcloud compute instance-groups managed create nginx-group \
--base-instance-name nginx \
--size 2 \
--template nginx-template \
--target-pool nginx-pool
instances 확인
gcloud compute instances list
외부에서 80으로 접속하도록 firewall rule생성
gcloud compute firewall-rules create www-firewall --allow tcp:80
gcloud compute firewall-rules create allow-tcp-rule-780 --allow tcp:80
상태체크 (instance가 제대로 동작하는지 체크)
gcloud compute http-health-checks create http-check
http서비스를 만들고 포트를 매핑한다.
gcloud compute instance-groups managed \
set-named-ports nginx-group \
--named-ports http:80
gcloud compute backend-services create nginx-backend \
--protocol HTTP --http-health-checks http-check --global
백엔드 서비스에 위에서 만든 instance들을 추가한다.
gcloud compute backend-services add-backend nginx-backend \
--instance-group nginx-group \
--instance-group-zone us-wast4-b \
--global
URL맵을 만들고, URL맵에 요청을 라우팅할 대상 HTTP프록시를 만든다.
gcloud compute url-maps create web-map \
--default-service nginx-backend
gcloud compute target-http-proxies create http-lb-proxy \
--url-map web-map
전달(forwarding rule)설정
gcloud compute forwarding-rules create http-content-rule \
--global \
--target-http-proxy http-lb-proxy \
--ports 80
이번실습하면서 느끼 것은 아직까지 나는 GCP console로 접속해서 GUI로 하는 것이 더 직관적이고 편하다. 명령어로 하는게 정확하지만, 옵션 명령어가 많아서 그런지 옵션도 GUI화면에서 보면 설명이 되어있어 알 수 있는데, 좀 답답했다. 쉘스크립트를 좋아하는데도 좀 어려웠다. 어째든 주된 목적은 인스턴스 생성, Kubernetes생성(배포), 부하분산(인스턴스그룹까지 포함)을 구성해보라는 것이었고, 괜찮은 실습이었다.
Uploaded by N2T