brunch

매거진 GCP

You can make anything
by writing

C.S.Lewis

by 하이프마크 Dec 30. 2021

GCP : Google Kubernetes Engine

GCP






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


이 서비스를 통해 스테이트풀(Stateful), 서버리스, 애플리케이션 가속기를 지원하는 다양한 앱을 개발할 수 있습니다. Kubernetes 기반 CI/CD 도구를 사용하여 빌드 및 배포 수명 주기의 각 단계에서 안전성과 속도를 높이는 게 가능합니다.


출시 채널로 운영 역시 간소화할 수도 있는데요. 신속하면서도 규칙적이고 안정적인 출시 채널은 노드 업그레이드 주기가 서로 다르며 채널 특성에 맞는 지원 수준을 제공합니다.


또한 클러스터를 빠르게 시작할 수 있으며 노드를 15,000개까지 확장할 수 있다는 장점이 있습니다. 멀티 영역과 리전 클러스터를 비롯한 고가용성 제어 영역을 활용할 수 있습니다.





GKE 클러스터는 Kubernetes 오픈소스 클러스터 관리 시스템을 기반으로 합니다. Kubernetes 명령어와 리소스를 사용하면 애플리케이션을 배포 및 관리하고 관리 작업을 수행하고 정책을 설정하며 배포된 워크로드의 상태를 모니터링할 수 있습니다.


사실 제일 좋은 이점은  Kubernetes이 구글의 서비스와 동일한 설계 원칙을 따르고 있어 자동 관리, 애플리케이션 컨테이너의 모니터링 및 활성 여부 조사, 자동 확장, 순차적 업데이트를 그대로 가져올 수 있다는 점입니다. 


GKE 클러스터를 실행하면 구글 클라우드가 제공하는 고급 클러스터 관리 기술을 사용할 수 있는데요. 항목은 다음과 같습니다. 



Compute Engine 인스턴스에 대한 Google Cloud의 부하 분산


노드 풀로 클러스터 안에 하위 노드 집합을 지정하여 유연성 강화


클러스터에서 노드 인스턴스 개수의 자동 확장


클러스터에서 노드 소프트웨어의 자동 업그레이드


노드 자동 복구로 노드 상태 및 가용성 유지 관리


Google Cloud의 작업 제품군을 통한 로깅 및 모니터링으로 클러스터 현황에 대한 가시성 확보



그럼 이쯤에서 GKE의 워크로드가 궁금하실 겁니다. GKE는 컨테이너식 애플리케이션에서 작동합니다. 이는 플랫폼과 상관없이 독립적이고 격리된 사용자 공간 인스턴스에 패키지화된 애플리케이션입니다. GKE 및 Kubernetes에서 이러한 컨테이너는 애플리케이션 또는 일괄 작업에 관계없이, 총체적으로 워크로드라고 부릅니다. 따라서 GKE 클러스터에서 워크로드를 배포하기 전에 먼저 워크로드를 컨테이너로 패키지화해야 합니다.


구글 클라우드는 애플리케이션 컨테이너를 빌드하고 제공할 수 있도록 지속적인 통합 및 지속적인 배포 도구를 제공합니다. 클라우드 빌드를 사용하여 다양한 소스 코드 저장소에서 컨테이너 이미지를 작성하고, Artifact Registry 또는Container Registry를 사용하여 컨테이너 이미지를 저장하고 제공할 수 있습니다.


실제 사용 사례를 볼까요.





Migrate for Anthos를 사용하면 워크로드를 GKE의 컨테이너로 직접 옮기고 변환할 수 있습니다. VMware에서 GKE로 2계층 LAMP 스택 애플리케이션을 마이그레이션하고 데이터베이스 액세스를 외부 클러스터에서는 허용하지 않고 애플리케이션 컨테이너에서만 허용하여 보안을 강화합니다. kubectl을 통해 SSH 액세스를 인증된 셸 액세스로 교체합니다. 자동 Cloud Logging 통합을 통해 컨테이너 시스템 로그를 확인합니다.


또한 GKE에서 사용할 작업 모드는 실제 클러스터에 필요한 유연성, 책임, 제어 수준에 따라 결정됩니다. GKE 클러스터에는 다음 두 가지 작업 모드 중에서 선택할 수 있는데요. 


Autopilot : 전체 클러스터 및 노드 인프라를 자동으로 관리합니다. Autopilot은 핸드오프 Kubernetes 환경을 제공하므로 워크로드에 집중하고 애플리케이션 실행에 필요한 리소스에 대해서만 비용을 지불하면 됩니다. Autopilot 클러스터는 프로덕션 워크로드에 사용할 수 있는 최적화된 클러스터 구성으로 사전 구성됩니다.


표준: 노드 구성의 유연성과 클러스터 및 노드 인프라 관리에 대한 전체 제어 권한을 제공합니다. 표준 모드를 사용하여 생성된 클러스터의 경우 프로덕션 워크로드에 필요한 구성이 무엇인지 확인하고 사용한 노드의 비용을 지불합니다.


이렇게 GKE에 대해서 알아봤는데요. GKE는 CPU 사용률 또는 커스텀 측정항목을 기준으로 수평형 포드 자동 확장을 실행할 수 있다는 장점도 있습니다. 클러스터 자동 확장은 노드 풀별로 작동하며 수직형 포드 자동 확장에서는 지속적으로 포드의 CPU 및 메모리 사용량을 분석하여 CPU 및 메모리 요청을 자동으로 조정합니다.


보안 역시 상당히 신경 썼습니다. 컨테이너화된 워크로드 간의 2차 방어 레이어를 제공해 워크로드 보안을 강화했으며. 기본적으로 Kubernetes 네트워크 정책을 지원하여 포드 수준의 방화벽 규칙에 따라 트래픽을 제한합니다. GKE에서 비공개 클러스터는 비공개 엔드포인트 또는 특정 주소 범위에서만 액세스할 수 있는 공개 엔드포인트로 제한할 수 있습니다.


결제 계정당 1개의 Autopilot 클러스터 또는 영역 클러스터를 무료로 사용할 수 있으니 한 번 사용해보세요.


하이프마크에서는 기업의 웹앱로그데이터의 클라우드 적재와 ETL 파이프라인 구성 그 외 클라우드 내 데이터분석 환경 구축 및 분석 시각화 서비스를 함께 제공하고 있습니다.


AWS, GCP등 클라우드 이전 매니지드서비스 및 웹앱로그데이터 태깅 적재 관련 문의사항이 있으시면 하이프마크에 문의 주세요


감사합니다. 


참조 : https://cloud.google.com/kubernetes-engine


참조 : https://cloud.google.com/kubernetes-engine/docs/concepts/kubernetes-engine-overview

매거진의 이전글 GCP : Google Cloud AutoML
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari