GKE(Google Kubernetes Engine)에 대해 소개해보려고 한다.
일단, GKE에 설명하기 이전에 Kubernetes(쿠버네틱스)에 대해 전반적인 소개를 하려고 한다.
쿠버네티스(K8S)
쿠버네티스를 사용하는 이유
여러개의 소프트웨어나 애플리케이션을 관리하는 시스템 관리자는 소프트웨어에 대해 여러가지를 고려해야한다.
- 모든 장비에서 작동하는가?
- 오류 발생시 어떻게 해야하는가?
많은 소프트웨어나 애플리케이션을 컨테이너화하면서 컨테이너들을 관리하는 방법이 쿠버네티스(k8s)이다. 여러개의 컨테이너들을 간편하게 관리하기 위해서 쿠버네티스를 사용한다.
쿠버네티스가 좋은 이유
여러개의 컨테이너들을 어떻게 사용할지 결정하는 것이 쿠버네티스이다. 쿠버네티스를 이용해 컨테이너의 상태를 모니터링을 통해 컨테이너들이 미리 설정한 방식대로 하드웨어의 자원을 잘 활용하는지 확인할 수 있어서 좋다. 또한 쿠버네티스는 여러가지 기능을 지원한다.
- 자동화된 배포와 컨테이너 복제
- 컨테이너 그룹으로 부하 분산
- 애플리케이션 컨테이너의 롤링 업그레이드
- 컨테이너 인스턴스 자가 치유
쿠버네티스가 어려운 이유
클러스터를 설치하고 관리하는 방법에 대해 익히는 것이 어렵다. 쿠버네티스 클러스터 단계별 설치 가이드를 확인하면서 다음을 생각해야한다.
- 클라우드 공급자 또는 베어메탈
- 머신 준비
- OS와 컨테이너 런타임
- 네트워크 구성
- 보안구성
- DNS
이러한 것들을 직접 다 갖추어야 하지만 개인이 다루기는 매우 어려울 것이다. 하지만, 이것들을 매우 간편하게 처리해주고 지속적으로 클러스터 관리, 확장 및 유지를 해준다면 좋지 않을까? 그래서 나온 것이 GKE이다.
GKE(Google Kubernetes Engine)
Google 인프라를 사용하여 컨테이너화된 애플리케이션을 대규모로 배포 및 운영하는 데 사용할 수 있는 관리형 Kubernetes 서비스입니다. 확장 가능한 자동화된 관리형 Kubernetes 솔루션을 원하는 플랫폼 관리자를 대상으로 하는 서비스입니다.
왜 GKE를 써야하는가?
써야하는 여러가지 이유에 대해 나열하겠다. 총 4가지 측면이 있다. 플렛폼 관리, 보안, 비용, 안전성과 가용성
- 기본 제공 로깅 및 모니터링
- 노드 자동 복구로 노드 상태 가용성을 유지 관리
- 무인 Autopilot 모드
- 보안 상태 대시보드를 사용하는 보안 상황 모니터링 도구 제공
- 새 GKE 버전으로 자동 업그레이드
GKE의 작동 방식
그룹화되어 클러스터를 형성하는 VM의 노드들로 구성됩니다. 노드들을 컨테이너로 패키지화 하여 컨테이너들을 배포합니다. 이 때, 쿠버네티스 API를 사용하여 관리, 확장, 모니터링을 포함하여 상호작용합니다. Google이 노드들을 직접 관리하기에 안정성과 보안을 개선하며, 클러스터의 영구 스토리지에 저장된 데이터의 무결성을 보장합니다.
GKE 예시
- AI 및 ML 작업
- 규모에 맞는 데이터 처리
- 확장 가능한 온라인 게임 플랫폼
- 과부하 발생 시 안정적인 애플리케이션
출처