컨테이너 환경을 구축하고 자원을 관리하는 것은 테트리스 게임과 비슷합니다. 컨테이너 환경에 새로운 워크로드를 막 올리다 보면 자원을 필요한 만큼 딱딱 맞춰 쓰기 어렵습니다. 남는 곳과 모자란 곳이 여기저기 보이죠. 마치 테트리스 게임에서 짝을 잘 못 맞춰 구멍이 숭숭 보이고, 결국 게임 오버가 되는 것과 비슷합니다.
출처: 나무위키 https://namu.wiki/w/테트리스
테트리스 고수처럼 빈틈 없이 워크로드에 맞게 자원을 짝지어 가며 쿠버네티스 환경을 탄탄하게 쌓아 갈 수는 없을까요? 다행히 방법이 있습니다. 구글 클라우드 플랫폼(GCP) 파트너 중 Sptinst라는 기업이 있습니다. 여기서 개발한 Elasticgroup을 이용하면 된다고 하네요. Elasticgroup은 클러스터 오케스트레이션에 사용하는 서비스입니다.
GCP의 구글 쿠버네티스 엔진(GKE) 환경에 Elasticgroup을 연계해 사용하면 최대 컴퓨트 비용을 70%까지 줄일 수 있다고 합니다. 컨테이너 환경 운영에 필요한 자원을 알뜰살뜰 잘 활용해서 불필요한 자원 확장을 최소화하는 것이 비용 절감 비결입니다. 간단히 말하자면 GCP의 선점형 VM 인스턴스 기반으로 GKE를 꾸린 다음 워크로드 요구에 맞게 주어진 자원을 활용하는 것이죠.
GKE와 Elasticgroup이 맞물려 돌아가는 구조는 다음과 같습니다. 설정은 복잡하지 않습니다. 몇 페이지 분량의 튜토리얼을 참조해 쉽게 할 수 있습니다. 단계로 나누어 보면 다음과 같습니다. 참고로 GKE의 클러스터 자동 확장 처리 기능을 사용하는 환경일 경우 자원 제한을 두어 자동 확장에 따른 자원 남용도 최소화할 수 있습니다.
1. GKE 클러스터 생성
2. Sptinst 계정 생성
3. GCP 계정과 Sptinst 계정 연결
4. GKE 클러스터를 Elasticgroup으로 임포트
5. GKE 노드 그룹의 용량 업데이트