Challenge Lab 2) Deploy and Manage Cloud Environments with Google Cloud
PCA 자격증 취득을 목표한지 어느덧 2주차
퇴근하고 부랴부랴하니 실습한게 머리에 잘 남아있지 않다..ㅋㅋ
그래서 이번주는 지금까지 배운 내용을 정리해보려고 한다.
퀵랩에서 단순히 따라하는 실습만 하는 줄 알았는데,,
이번에 모집한 스터디에 속한 실습은 난이도가 있었다.
따라하는 실습 뒤에 마지막엔 시험이 기다리고 있었다.
스터디 링크 : inthecloud.withgoogle.com/certification-preparation/register.html
(링크가 언제까지 유효할지는 모르겠다. 작성일 2020-07-14 기준으로는 아직 신청 가능하다.)
Google Cloud Certification
inthecloud.withgoogle.com
용어 및 기초개념 :
1) VPC(Virtual Private Cloud) : 사용자의 클라우드 계정 전용 가상 네트워크
Topics tested:
- Complete the production application environment.
- Ensure monitoring and alerts enabled on key development components.
- Test the Spinnaker CI/CD deployed environment is working as expected.
[Start Lab] : 테스트 환경 구축에 약 13분정도 소요된다
: kraken-prod-vpc, kraken-prod-subnet은 기본 세팅에 생성 되어있다.
Task 1: Create the production environment (네트워크 환경 구축)
메뉴 : [Compute Engine] > [VM instance] > jumphost라는 이름으로 vm이 기본세팅으로 생성되어 있다.
1) jumphost SSH 접속
// Step1 : prod-network.yaml 파일 존재여부 확인
projectID@kraken-jumphost:~$ cd /work/dm
projectID@kraken-jumphost:/work/dm$ ls
// Step 2: pro-network.yaml 파일 내 SET_REGION을 제시된 us-east1로 세팅
projectID@kraken-jumphost:/work/dm$ sed -i s/SET_REGION/us-east1/g prod-network.yaml
// Step 3:
projectID@kraken-jumphost:/work/dm$ gcloud deployment-manager deployments create prod-network \
> --config=prod-network.yaml
projectID@kraken-jumphost:/work/dm$ gcloud config set compute/zone us-east1-b
/* Step 4: kraken-prod cluster 생성,
조건 1) Node 2개
조건 2) 네트워크 설정 kraken-prod-vpc
조건 3) 네트워크 서브넷 kraken-prod-subnet */
projectID@kraken-jumphost:/work/dm$ gcloud container clusters create kraken-prod \
> --num-nodes 2
> --network kraken-prod-vpc
> --subnetwork kraken-prod-subnet
/* Step 5: kraken-prod 클러스터는 외부 IP 주소가 엔드포인트로 설정,
VPC 환경에서는 Private 네트워크이므로 외부에서 접속하기 위한 Endpoint 설정이 필요하다.*/
projectID@kraken-jumphost:/work/dm$ gcloud container clusters get-credentials kraken-prod
// Step 6: Frontend, Backend 인스턴스 생성
projectID@kraken-jumphost:/work/dm$ cd /work/k8s
projectID@kraken-jumphost:/work/k8s$ for F $(ls *.yaml); \
> do kubectl create -f $F; done
Task 2: Setup the Admin instance
Once you create the kraken-prod-vpc, you will need to add an instance called kraken-admin, a network interface in kraken-mgmt-subnet and another in kraken-prod-subnet.
/* Step 1:
조건 1) Region us-east1
조건 2) Zone us-east1-b */
projectID@kraken-jumphost:work/k8s$ gcloud config set compute/zone us-east1-b
/* Step 2: Setup the Admin instance
조건 1) 2개의 서브넷을 구성할 것
조건 2) kraken-mgmt-subnet, kraken-prod-subnet */
projectID@kraken-jumphost:work/k8s$ gcloud compute instances create kraken-admin \
> --network-interface="subnet=kraken-mgmt-subnet"
> --network-interface="subnet=kraken-prod-subnet"
You need to monitor kraken-admin and if
조건 1) CPU utilization is over 50% for more than a minute
조건 2) you need to send an email to yourself, as admin of the system.
(noti 이메일 설정 안해서 2번 풀었다...)
메뉴 : [Monitoring] > [Alert]
Task 3: Verify the Spinnaker deployment
(Continuous Integetion & Continuous Development, Tool : Spinnaker)
The previous architect set up Spinnaker in kraken-build-vpc.
Please connect to the Spinnaker console and verify that the built resources are working.
To access the Spinnaker console use Cloud Shell and kubectl to port forward the spin-deck pod from port 9000 to 8080 and then use Cloud Shell's web preview.
- Cloud Shell 에서 아래 명령어 수행
gcloud config set compute/zone us-east1-b
gcloud container clusters get-credentials spinnaker-tutorial
DECK_POD=$(kubectl get pods --namespace default \
-l "cluster=spin-deck" -o jsonpath="{.items[0].metadata.name}")
kubectl port-forward --namespace default $DECK_POD 8080:9000 >> /dev/null &
You must test that a change to the source code will result in the automated deployment of the new build. You should pull the sample-app repository to make the changes. Make sure you push a new, updated, tag.
- Cloud Shell 에서 아래 명령어 수행
gcloud config set compute/zone us-east1-b
gcloud source repos clone sample-app
cd sample-app
touch a
git config --global user.email "$(gcloud config get-value account)"
git config --global user.name "Student"
git commit -a -m "change"
git tag v1.0.1
git push --tags
Cloud Shell에서 Preview Web Port 8080(카메라 렌즈모양..?) 을 선택하면 Spinnaker 관리 페이지에 접속할 수 있다.
- Spinnaker > Application > Pipline > Deploy(Build가 정상적으로 완료되면 주황색 표시) Continue 버튼 클릭
@오탈자나 잘못된 내용이 있으면 댓글 부탁드립니다.
Reference: Qwiklab, Deploy and Manage Cloud Environments with Google Cloud: Challenge Lab
https://www.qwiklabs.com/focuses/10417?parent=catalog