Offcanvas

How To / 개발자 / 데이터센터 / 애플리케이션 / 클라우드

방치하면 밑빠진 독··· 쿠버네티스 비용 관리 준칙 6가지

2023.07.06 Hemanth Kavuluru  |  Computerworld
쿠버네티스(Kubernetes)는 이제 컨테이너 오케스트레이션을 위한 기본 선택지다. 이를 이용해 기업은 컨테이너화된 애플리케이션을 배포, 관리, 확장할 수 있는 기능을 제공받으며 확장성, 가용성, 안정성 및 민첩성을 비롯한 많은 이점을 얻을 수 있다.

쿠버네티스는 최신 애플리케이션을 구축하고 배포하기 위한 기술 스택의 핵심 요소가 되었지만, 그만큼 쿠버네티스 관련 비용을 관리하는 것도 중요해졌다. 쿠버네티스 실행 비용에는 두 가지 주요 구성 요소가 포함된다.

1. 컴퓨팅, 스토리지, 네트워킹 및 기타 인프라 비용을 포함하는 쿠버네티스 클러스터 실행에 대한 실제 지출 비용
2. 클러스터 관리에 대한 운영 비용

이 게시물에서는 쿠버네티스 사용 비용에 영향을 줄 수 있는 다양한 요인과 함께 클라우드 청구서를 제어하기 위한 쿠버네티스 비용 관리에 대한 팁과 모범 준칙을 살펴본다.
 
Image Credit : Getty Images Bank


쿠버네티스 비용 관리라는 과제
쿠버네티스 인프라는 비용 관리 측면에서 고유한 과제를 제시한다. 이 중 대부분은 쿠버네티스의 복잡성 및 사용과 관련이 있다. 예를 들어 쿠버네티스에 배포된 컨테이너화 된 애플리케이션은 팟(pod), 디플로이먼트(deployment), 인그레스(ingress), 퍼시스턴트 볼륨(persistent volume) 및 네임스페이스(namespace)와 같은 다양한 리소스를 사용한다. 애플리케이션에 대한 비용을 계산하려면 이러한 모든 리소스의 사용량 메트릭을 세부적으로 살펴봐야 한다.
 
또한 쿠버네티스 애플리케이션은 여러 클러스터, 사업 부서, 데이터센터 및 클라우드 환경, 애플리케이션 팀에 분산되어 있을 수 있다. 또는 클러스터 자체가 여러 사업 부서 또는 애플리케이션 팀 간에 공유될 수 있다. 이러한 수준의 추가 복잡성은 비용을 추적(및 할당)하기 어렵게 만든다.

많은 기업은 이미 비용 관리 솔루션을 가지고 있지만, 쿠버네티스 인프라는 비용 관리에 추가 과제를 만든다. 따라서 쿠버네티스 비용 관리를 기본적으로 지원하는 솔루션을 갖추는 것이 중요하다.

쿠버네티스 인프라를 비용 효율적으로 운영하려면 조직은 다양한 기술과 준칙을 채택해야 한다. 다음과 같다.

• 클라우드 인스턴스와 애플리케이션 리소스의 적절한 크기 조정
• 가능한 경우 쿠버네티스 멀티 테넌시 사용
• 세분화된 쿠버네티스 비용 가시성 및 모니터링 구현
• 비용 최적화 정책
• 쿠버네티스 인프라 관리의 운영 오버헤드 줄이기
• 쿠버네티스 비용 관리 솔루션 채택하기

클라우드 인스턴스의 적절한 크기 조정
쿠버네티스 인프라를 설정할 때 먼저 해야 할 일 중 하나는 각 애플리케이션의 리소스 요구 사항을 이해하는 것이다. 비용이 많이 드는 오버 프로비저닝과 언더 프로비저닝의 부작용을 피하려면 각 애플리케이션의 리소스 요구 사항을 분석하는 것이 중요하다. 그래야 애플리케이션 요구 사항에 적합한 리소스를 선택할 수 있다.

퍼블릭 클라우드 인스턴스는 다양한 워크로드(예: 컴퓨팅, 메모리 또는 GPU)에 최적화되어 있다. 따라서 애플리케이션 특성에 따라 애플리케이션에 적합한 인스턴스 유형을 선택하는 것이 중요하다.

일괄 처리, 지속적인 통합, 테스트 환경 및 기타 불규칙하거나 임시적인 워크로드에 대해서는 스팟 인스턴스를 활용할 수 있다. 스팟 인스턴스를 활용하면 상당한 비용 절감이 가능하지만, 스팟 인스턴스에서 실행하기에 이상적인 워크로드를 철저히 분석해야 한다.

쿠버네티스 인프라에서 실행되는 모든 서비스의 최소 및 최대 CPU 및 메모리 요구 사항을 이해하기 위해 애플리케이션을 분석하는 것도 마찬가지로 중요하다. 분석한 데이터에 따라 올바른 요청(최소) 및 제한(최대)을 구성할 수 있다.

마찬가지로, 최소 리소스부터 시작하여 사용량이 증가함에 따라 애플리케이션 리소스를 확장하기 위해 쿠버네티스 수평 파드 오토스케일러(Horizontal Pod AutoScaling, HPA) 및 수직 파드 오토스케일러(Vertical Pod AutoScaling, VPA)를 채택해야 한다. 또한 쿠버네티스 클러스터의 확장을 위해 고급 클러스터 오토스케일러인 카펜터(Karpenter)를 사용해 볼 수도 있다. 카펜터는 부하가 증가할 때 클러스터를 확장하고 부하가 감소할 때 클러스터를 축소하여 비용을 절감할 수 있다.

쿠버네티스 멀티 테넌시를 활용
클러스터는 쿠버네티스 인프라의 기본 리소스이다. 클러스터는 전용과 공유라는 두 가지 방법으로 배포할 수 있다. 전용 클러스터는 일반적으로 단일 애플리케이션, 환경 또는 팀을 위해 배포된다. 공유 클러스터는 여러 애플리케이션, 팀, 사업부서 등에 분산된다. 전용 클러스터가 공유 클러스터보다 훨씬 더 높은 비용을 발생시키므로 무엇을 배포할지 결정하는 것은 비용 관리에 있어서 매우 중요하다.

전용 클러스터가 배포되는 몇 가지 시나리오는 다음과 같다.

• 애플리케이션의 지연 시간 요구 사항이 낮은 경우(즉, 목표 SLA/SLO가 다른 애플리케이션보다 훨씬 높음) 잠재적인 노이지 네이버 문제를 피해야 한다
• 애플리케이션에 고유한 요구 사항이 있는 경우(예: CNI 플러그인, GPU 워커 노드).
• 환경 유형에 따른 경우(즉, 프로덕션 환경의 전용 클러스터, 스테이지 및 테스트 환경의 공유 클러스터)

전용 클러스터가 필요한 이러한 특정 사용 사례를 제외하고는 공유 클러스터 모델로 표준화하는 것이 좋다. 쿠버네티스는 기본적으로 네임스페이스를 통해 멀티 테넌시를 지원한다. 그러나 다중 테넌시 배포를 위해 클러스터를 보안 및 거버넌스 관점에서 추가적으로 강화해야 한다.

추가 클러스터 강화 단계는 다음과 같다.

• 클러스터를 실행하는 모든 애플리케이션에서 사용하는 클러스터 전체 서비스 배포 및 관리
• 애플리케이션 및 네임스페이스 수준 할당량 관리
• 네임스페이스 격리를 위한 네트워크 정책
오픈 폴리시 에이전트(Open Policy Agent)와 같은 도구를 활용하는 보안 및 거버넌스 정책 
• 공유 클러스터에 대한 안전한 제어 액세스를 위한 SSO 및 RBAC

이해 관계자에게 비용 가시성 제공
“측정할 수 없는 것은 효과적으로 관리할 수 없다”라는 말은 쿠버네티스 비용 관리에도 적용된다. 서비스 및 애플리케이션의 리소스 사용량을 정기적으로 모니터링하면 많은 리소스를 소비하는 구성 요소를 식별하고 최적화해 비용을 절감하는 데 도움이 될 수 있다. 쿠버네티스 대시보드 및 모니터링 도구를 사용하여 리소스 사용량을 추적하고 개선이 필요한 영역을 확인할 수 있다.

CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
Sponsored
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.