[GCP] 쿠버네티스(Kubernetes)와 GKE(Google Kubernetes Engine)

Hailey·2020년 8월 13일
1

GCP

목록 보기
3/29

1. 쿠버네티스(Kubernetes)

1-1. 개념
쿠버네티스(Kubernetes, K8s)는 컨테이너화된 애플리케이션의 자동 디플로이, 스케일링 등을 제공하는 관리시스템으로, 오픈 소스 기반이다. 목적은 여러 클러스터의 호스트 간에 애플리케이션 컨테이너의 배치, 스케일링, 운영을 자동화하기 위한 플랫폼을 제공하기 위함이다. 도커를 포함하여 일련의 컨테이너 도구들과 함께 동작한다.
1-2. 특징
실제 프로덕션 애플리케이션은 여러 컨테이너에 걸쳐 있으며 이러한 컨테이너는 여러 서버 호스트에 배포되어야 한다. 컨테이너를 위한 보안은 멀티레이어 구조이며 복잡할 수 있다. 바로 여기에 쿠버네티스가 사용된다. 쿠버네티스는 이러한 워크로드를 위해 규모에 맞는 컨테이너를 배포하는 데 필요한 오케스트레이션 및 관리 기능을 제공한다. 쿠버네티스 오케스트레이션을 사용하면 여러 컨테이너에 걸쳐 애플리케이션 서비스를 구축하고 클러스터 전체에서 컨테이너의 일정을 계획하고 이러한 컨테이너를 확장하여 컨테이너의 상태를 지속적으로 관리할 수 있다. 쿠버네티스를 활용하면 IT 보안을 한층 강화할 수 있다.
1-3. 용어
1-3-1. 노드(Node): 노드는 쿠버네티스의 작업 장비(worker machine)이다.
1-3-2. 클러스터(Cluster): 노드라고 하는 워커 머신의 집합. 모든 클러스터는 최소 한 개의 워커 노드를 가진다.
1-3-3. 파드(Pod):가장 작고 단순한 쿠버네티스 오브젝트. 파드는 사용자 클러스터에서 동작하는 컨테이너의 집합을 나타낸다.
1-3-4. Kubectl: 쿠버네티스 API 서버와 통신하기 위한 커맨드라인 툴.

2. GKE(Google Kubernetes Engine)

Google Kubernetes Engine(GKE)에서는 Google 인프라를 사용하여 컨테이너식 애플리케이션을 배포, 관리, 확장할 수 있는 관리형 환경을 제공한다. GKE 환경은 클러스터를 형성하도록 그룹화된 여러 머신(구체적으로 Compute Engine 인스턴스)으로 구성되어 있다.

2-1. Google Cloud에서 사용하는 Kubernetes

  • Compute Engine 인스턴스에 대한 Google Cloud의 부하 분산
  • 노드 풀로 클러스터 안에 하위 노드 집합을 지정하여 유연성 강화
  • 클러스터에서 노드 인스턴스 개수의 자동 확장
  • 클러스터에서 노드 소프트웨어의 자동 업그레이드
  • 노드 자동 복구로 노드 상태 및 가용성 유지 관리
  • Google Cloud의 작업 제품군을 통한 로깅 및 모니터링으로 클러스터 현황에 대한 가시성 확보
profile
Business & Software 💗🌎

0개의 댓글