source : GCP Qwiklabs
Google Cloud Shell 활성화하기
- Google Cloud Shell은 다양한 개발 도구가 탑재된 가상 머신
- 5GB의 영구 홈 디렉토리를 제공하며 Google Cloud에서 실행
- Google Cloud Shell을 사용하면 명령줄을 통해 GCP 리소스에 액세스 가능
1. GCP Console의 오른쪽 상단 툴바에서 Cloud Shell 열기 버튼을 클릭
2. 계속(Continue) 클릭
- 연결되면 인증된 상태로 PROJECT_ID 가 설정됨
- Google Cloud Platform의 명령줄 도구 gcloud는 Cloud Shell에 사전 설치되어 있으며 탭 자동 완성을 지원
사용 중인 계정 이름 목록 표시
gcloud auth list
출력:
Credentialed accounts: - <myaccount>@<mydomain>.com (active)
출력 예:
Credentialed accounts: - google1623327_student@qwiklabs.net
프로젝트 ID 목록을 표시
gcloud config list project
출력:
[core] project = <project_ID>
출력 예:
[core] project = qwiklabs-gcp-44776a13dea667a6
gcloud 관련 전체 설명서는 Google Cloud gcloud 개요에서 확인 가능
기본 컴퓨팅 영역 설정
- 컴퓨팅 영역 : 클러스터와 리소스가 존재하는 대략적인 지역적 위치. (예: us-central1-a는 us-central1 리전의 영역)
기본 컴퓨팅 영역을 us-central1-a로 설정
gcloud config set compute/zone us-central1-a
출력
Updated property [compute/zone].
Kubernetes Engine 클러스터 만들기
- 클러스터는 1개 이상의 클러스터 마스터 머신과 노드라는 다수의 작업자 머신으로 구성
- 노드란 클러스터를 구성하기 위해 필요한 Kubernetes 프로세스를 실행하는 Compute Engine VM(가상 머신) 인스턴스
클러스터 생성
※ [CLUSTER-NAME]을 내가 선택한 클러스터 이름으로 대체 (예: my-cluster)
※ 클러스터 이름은 문자로 시작하고 영숫자로 끝나야 하며 40자를 초과할 수 없음
gcloud container clusters create [CLUSTER-NAME]
출력 :
NAME LOCATION ... NODE_VERSION NUM_NODES STATUS my-cluster us-central1-a ... 1.13.11-gke.9 3 RUNNING
클러스터의 사용자 인증 정보 얻기
- 클러스터를 만든 후 클러스터와 interaction 하려면 사용자 인증 정보를 얻어야 함
클러스터 인증
※ [CLUSTER-NAME]을 내 클러스터 이름으로 대체
gcloud container clusters get-credentials [CLUSTER-NAME]
출력 :
Fetching cluster endpoint and auth data. kubeconfig entry generated for my-cluster.
클러스터에 애플리케이션 배포하기
- 클러스터 생성 후, 컨테이너식 애플리케이션 배포 가능.
- Kubernetes Engine에서는 Kubernetes 객체를 사용해 클러스터의 리소스를 생성하고 관리
- 웹 서버와 같은 상태 비추적 애플리케이션을 배포할 때는 Kubernetes에서 배포 객체를 사용합
- 서비스 객체는 인터넷에서 애플리케이션에 액세스하기 위한 규칙과 부하 분산을 정의
Cloud Shell에서 다음 kubectl create 명령어를 실행하여 hello-app 컨테이너 이미지에서 새 배포 hello-server를 생성
kubectl create deployment hello-server --image=gcr.io/google-samples/hello-app:1.0
출력 :
deployment.apps/hello-server created
- --image는 배포할 컨테이너 이미지를 지정, 해당 명령어는 Google Container Registry 버킷에서 예시 이미지를 가져옴
- gcr.io/google-samples/hello-app:1.0은 가져올 특정 이미지 버전을 나타냄. 버전이 지정되지 않은 경우 최신 버전 사용
kubectl expose 명령어를 실행하여 Kubernetes 서비스를 생성
- 이 서비스는 애플리케이션을 외부 트래픽에 노출할 수 있게 해주는 Kubernetes 리소스입니다.
kubectl expose deployment hello-server --type=LoadBalancer --port 8080
- --port를 통해 컨테이너가 노출될 포트 지정
- type="LoadBalancer" : 컨테이너의 Compute Engine 부하 분산기 생성
출력 :
service/hello-server exposed
kubectl get을 실행하여 hello-server 서비스 검사
kubectl get service
출력 :
※ 외부 IP 주소가 생성되는 데는 1분 정도 소요. EXTERNAL-IP 열이 "대기중" 상태이면 위 명령어를 다시 실행
※ 이 명령어의 출력에서 EXTERNAL IP 열에 있는 서비스의 외부 IP 주소를 복사.
외부 IP 주소와 노출된 포트를 사용해 웹브라우저에서 애플리케이션을 확인
http://[EXTERNAL-IP]:8080
결과 확인
클러스터 삭제
gcloud container clusters delete [CLUSTER-NAME]
- 메시지가 표시되면 Y를 입력하여 확인
- 삭제된 Google Kubernetes Engine 클러스터에 관한 자세한 내용 참조 ☞ 문서
'Biusiness Insight > Computer Science' 카테고리의 다른 글
[구글 클라우드] Dataproc 클러스터 만들기 (명령 프롬프트) (0) | 2020.04.01 |
---|---|
[구글 클라우드 플랫폼] 네트워크 및 HTTP 부하 분산 설정하기 (0) | 2020.03.29 |
[구글 클라우드 플랫폼] Cloud Shell 및 gcloud 시작하기 (0) | 2020.03.28 |
[구글 클라우드 플랫폼] 가상 머신 만들기 (0) | 2020.03.09 |
How to write a great research paper : 7 simple suggestions (0) | 2017.05.19 |