Google Cloud Study Jam - Kubernetes 입문반 (Kubernetes Engine: Qwik Start)

ju_bro·2022년 7월 29일
0

Cloud Study

목록 보기
2/3
post-thumbnail

🌠 GKE(Google Kubernetes Engine)란?

  • GKE(Google Kubernetes Engine)는 Google 인프라를 사용하여 컨테이너식 애플리케이션을 배포, 관리 및 확장할 수 있도록 관리형 환경을 제공하는 Google cloud의 관리형 Kubernetes 서비스입니다.

  • Kubernetes Engine 환경은 컨테이너 클러스터를 형성하도록 그룹화된 여러 머신(구체적으로 Compute Engine 인스턴스)으로 구성되어 있습니다.


🌠 Google Kubernetes Engine을 사용한 클러스터 조정

※ 클러스터(Cluster) : 정보기술 영업이나 기반시설에서, 하나의 공용 제어설비나 서버에 접속되어 있는 단말기·워크스테이션들의 그룹을 총칭하는 용어로 사용

※ 서버 클러스터(Server Cluster) : 각기 다른 서버(Server Enterprise or server Datacenter)들을 하나로 묶어서 하나의 시스템같이 동작하게 함으로써, 클라이언트들에게 고가용성의 서비스를 제공하는 것


  • GKE(Google Kubernetes Engine) 클러스터는 Kubernetes 오픈소스 클러스터 관리 시스템을 기반으로 합니다.

  • Kubernetes는 컨테이너 클러스터와 상호작용할 수 있는 메커니즘을 제공합니다.

  • Kubernetes 명령어와 리소스를 사용하면 애플리케이션을 배포 및 관리하고 관리 작업을 수행하는 것과 정책을 설정하며 배포된 워크로드의 상태를 모니터링할 수 있습니다.

  • Kubernetes는 널리 쓰이는 Google 서비스와 동일한 설계 원칙을 따르고 있어 자동 관리, 애플리케이션 컨테이너의 모니터링 및 활성 여부 조사, 자동 확장, 순차적 업데이트와 같은 이점을 그대로 누릴 수 있습니다.


🌠 작업 1: 기본 컴퓨팅 영역 설정

※ 컴퓨팅 영역 : 리전 내에 대략적으로 클러스터와 리소스가 존재하는 위치를 의미
ex) us-central1-a는 us-central1 리전에 속한 영역입니다.

  • 다음 명령어를 실행하여 컴퓨팅 영역의 기본값을 us-central1-a로 설정합니다.
gcloud config set compute/zone us-central1-a

✔ 명령어 출력 결과



🌠 작업 2: GKE 클러스터 만들기

  • 클러스터는 1개 이상의 클러스터 마스터 머신과 노드라는 다수의 작업자 머신으로 구성됩니다.

※ 노드 : 클러스터를 구성하기 위해 필요한 Kubernetes 프로세스를 실행하는 Compute Engine VM(가상 머신) 인스턴스이다.

📌 주의 : 클러스터 이름은 문자로 시작하고 영숫자로 끝나야 하며 40자를 초과할 수 없습니다.

  • 다음 명령어를 통해 클러스터를 생성합니다.
gcloud container clusters create [CLUSTER-NAME]

✔ 명령어 출력 결과



🌠 작업 3: 클러스터의 사용자 인증 정보 얻기

  • 클러스터를 만든 후 클러스터와 상호작용하려면 사용자 인증 정보가 필요합니다.

  • 다음 명령어를 통해 클러스터를 인증합니다.
gcloud container clusters get-credentials [CLUSTER-NAME]

✔ 명령어 출력 결과



🌠 작업 4: 클러스터에 애플리케이션 배포

  • GKE는 Kubernetes 객체를 사용하여 클러스터의 리소스를 만들고 관리합니다.

  • 웹 서버와 같은 스테이트리스 애플리케이션을 배포할 때는 Kubernetes에서 배포 객체를 사용합니다.

  • 서비스 객체는 인터넷에서 애플리케이션에 액세스하기 위한 규칙과 부하 분산 방식을 정의합니다.

  • 다음 kubectl create 명령어를 실행하여 hello-app 컨테이너 이미지에서 새 배포 hello-server를 생성합니다.
kubectl create deployment hello-server --image=gcr.io/google-samples/hello-app:1.0

✔ 명령어 출력 결과

이 Kubernetes 명령어를 사용하면 hello-server를 나타내는 배포 객체가 생성됩니다.
여기서 --image는 배포할 컨테이너 이미지를 지정합니다.
해당 명령어는 Container Registry 버킷에서 예시 이미지를 가져옵니다.
gcr.io/google-samples/hello-app:1.0은 가져올 특정 이미지 버전을 나타냅니다.
버전이 지정되지 않은 경우 최신 버전이 사용됩니다.


  • 다음 kubectl expose 명령어를 실행하여 애플리케이션을 외부 트래픽에 노출할 수 있는 Kubernetes 리소스인 Kubernetes Service를 생성합니다.
kubectl expose deployment hello-server --type=LoadBalancer --port 8080

✔ 명령어 출력 결과

--port를 통해 컨테이너가 노출될 포트가 지정됩니다.
type="LoadBalancer"는 컨테이너의 Compute Engine 부하 분산기를 생성합니다.


  • 다음 kubectl get 명령어를 실행하여 hello-server 서비스를 검사합니다.
kubectl get service

✔ 명령어 출력 결과


  • 웹브라우저에서 애플리케이션을 보려면 새 탭을 열고 다음 주소를 입력합니다.
http://[EXTERNAL-IP]:8080

✔ 주소 입력 결과



🌠 작업 5: 클러스터 삭제

  • 다음 명령어를 실행하여 클러스터를 삭제합니다.
gcloud container clusters delete [CLUSTER-NAME]

✔ 명령어 출력 결과

메시지가 표시되면 " Y "를 입력하여 확인합니다.



🌠 정리

  • GKE를 사용하여 직접 컨테이너를 생성하고 애플리케이션을 배포

🎉 평가 완료 인증 🎉



이 글은 "Google Cloud Study Jam"의 [Kubernetes 입문반] 강좌 실습 후 개인적으로 학습하기 위해 정리한 글입니다. 🙂

https://www.cloudskillsboost.google/quests/29

profile
Inha University

0개의 댓글