loading...

쿠버네티스 멀티 클러스터 구축을 위한 고려사항

쿠버네티스 멀티 클러스터 구축을 위한 고려사항

이 글은 IDG의 아티클을 전재하여 제공합니다.
[원문보기] : https://www.itworld.co.kr/techlibrary/299971

일상생활의 많은 부분이 온라인으로 이동함에 따라 인터넷을 극적으로 확장해야 할 필요성도 커지고 있다. 이런 경향은 오래전부터 시작됐고, 기술 역시 발전을 거듭했다. 최초의 퍼블릭 클라우드 서비스로 지난 2002년 출범한 AWS는 기업이 IT 운영을 아웃소싱하고, 필요에 따라 리소스 소비를 줄이고 늘릴 수 있는 기회의 장을 열었다. 가상머신(VM)은 물리적 하드웨어에서 애플리케이션 소프트웨어를 추상화하기 시작했고, 그러자 곧 새로운 배치 패턴이 필요해졌다. 마이크로서비스는 고립돼 있고 느슨하게 연결된 서비스 모음으로, 주변 환경과 독립적으로 유지 및 구성할 수 있다. 또 컨테이너에 패키징하면 대규모로 배포할 수 있다. 컨테이너는 2014년 도커의 등장과 함께 보편화됐다. 컨테이너 오케스트레이션 분야의 주도권을 잡기 위해 랜처(Rancher), 도커 스웜(Docker Swarm), 메소스(Mesos) 등의 다양한 기술이 경쟁에 나섰다. 하지만 궁극적으로 컨테이너화된 마이크로서비스의 왕좌에 오른 것은 쿠버네티스였다.

기업은 쿠버네티스의 이점을 확실히 알고 있었지만 타고난 복잡성과 가파른 학습 곡선이 항상 진입 장벽으로 작용했다. 소규모 기업은 이 거대한 기술을 성공적으로 관리하는 데 필요한 운영 전문 지식과 리소스가 부족했고, 대기업은 클라우드 네이티브 도구 및 프로세스를 레거시 인프라에 통합하느라 고군분투했다.

쿠버네티스 복잡성과의 싸움

그동안 기업이 쿠버네티스를 채택하고 컨테이너 오케스트레이션을 최적화할 수 있도록 지원하는 솔루션은 수없이 많았다. 예를 들면 랜처(Rancher), 오픈시프트(OpenShift), 대형 퍼블릭 클라우드 서비스 업체의 매니지드 서비스인 애저 쿠버네티스 서비스(Azure Kubernetes Service), 일래스틱 쿠버네티스 서비스(Elastic Kubernetes Service), 구글 쿠버네티스 엔진(Google Kubernetes Engine) 등이다. 이 솔루션들은 쿠버네티스 클러스터의 배치 및 관리를 극적으로 간소화해 클라우드 네이티브 애플리케이션으로의 전환을 가속화하고, 확장성과 탄력성을 높였다. 이런 지원을 기반으로 쿠버네티스는 기업 환경에 본격적으로 배치되기 시작했다.

2021년 트래픽 랩(Traefik Labs)에서 1,000명 이상의 IT 전문가를 대상으로 기술 사용 현황을 물어본 설문조사에 따르면, 전체 응답자 중 70% 이상이 비즈니스 프로젝트에 쿠버네티스를 사용한다고 답했다. 그렇지만, 컨테이너 기술 채택이라는 과제를 막 극복한 기업은 이제 배치를 확장하는 데 애를 먹고 있다. 쿠버네티스 도입이 계속 증가하면서 새로운 과제가 등장하기 시작했다. 이를테면 기업은 나날이 그 수가 늘어나는 컨테이너화된 애플리케이션의 요건을 충족하기 위해 점점 더 크고 많은 쿠버네티스 클러스터를 지원하고 있다. 그러나 클러스터 수가 많으면 많을수록 관리하고 최신 상태로 유지해야 할 구성요소도 늘어난다. 단일 쿠버네티스 배치 환경 내에서 비교적 쉽게 해결할 수 있는 문제도 규모가 커진 멀티클러스터 환경에서는 그 난이도가 기하급수적으로 높아진다. 결국, 멀티 클러스터 오케스트레이션은 클라우드 엔지니어가 해결해야 할 피할 수 없는 과제가 됐다.

쿠버네티스 멀티 클러스터 요건

상황별 알림부터 새로운 배치 전략까지 멀티 클러스터 문제를 관리하려면 적절한 툴이 필요하다. 세부적으로 나눠 보면 다음과 같다.

페더레이션(Federation) 툴은 어떤 클러스터의 구성이 관리되고, 해당 구성은 어떤 모습인지 표현하기 위한 메커니즘을 제공한다. 호스팅 클러스터의 단일 API 세트는 분산 환경에서 여러 쿠버네티스 클러스터의 구성을 조정한다. 페더레이티드 클라우드 기술은 지리적으로 떨어져 있는 여러 컴퓨팅 클라우드의 상호 연결을 강화해 복잡한 멀티 클러스터 사용 예를 쉽게 해결할 수 있도록 지원한다.

• 여러 클러스터를 관리하고 하나의 단위로 함께 작동하도록 하는 일은 매우 복잡하다. 연결성(Connectivity)은 이를 가능하게 한다. 적절한 툴을 사용하면 클러스터 간 상호 연결을 처리하고, 클러스터에 대한 라우팅을 제어하며, 지리적으로 분산된 자원 풀 전반에 걸쳐 로드밸런싱을 하고(Global Server Load Balancing, GSLB), 여러 클러스터에서 애플리케이션 업데이트를 관리하는 데 도움이 된다.

보안(Security) 문제는 복잡하고 분산된 IT 환경에서 더 심해지지만, 클라우드 네이티브 보안 툴과 프로세스를 채택하면 해결할 수 있다. 이를 위해서는 새로운 질문을 던져야 한다. 제로 트러스트 환경에서 보안을 어떻게 처리하는가? 엔드 투 엔드 암호화는 어떻게 관리하는가? 애플리케이션 액세스를 어떻게 제어하는가? 분산형 인프라에서 TLS 인증서를 어떻게 관리하는가? 보안이 클러스터에 통합되면 분산형 애플리케이션의 보안도 강화된다.

관찰 가능성(Observability)은 분산형 인프라의 전체적인 상황을 신속하게 파악할 수 있도록 지원한다. 따라서 문제를 빠르고 쉽게 진단할 수 있다. 그라파나(Grafana), 프로메테우스(Prometheus)가 이 분야에서 인기 있는 툴이다. 배포된 클러스터의 수를 확장하면 오류가 발생할 수 있는 경우의 수도 늘어나기 때문에 관찰 가능성과 상황별 알림이 더욱 중요해진다. 문제가 정확하게 어디에서 발생했는지 파악할 수 있는 툴을 갖춘다면, 앱이 원활하게 실행될 뿐만 아니라 귀중한 시간을 절약할 수 있다.

쿠버네티스 멀티 클러스터의 미래

클라우드 네이티브 환경에서는 클러스터, 서비스, 네트워크 트래픽이 동시에 원활하게 작동하도록 하는 것이 주요 과제이다. 오케스트레이션 전쟁에서 승리한 쿠버네티스는 전 세계의 기업에서 널리 채택되고 있고, 기술 역시 자연스럽게 성숙해지고 있다. 이에 따라 새로운 문제 및 과제가 생겨나고 있고, 이는 멀티 클러스터 배치에서 더 심해진다.

쿠버네티스에서 애플리케이션을 구축하고 운영하는 개발팀, 엔지니어링팀, 운영팀은 손쉽게 클러스터와 네트워크의 가시성, 확장성, 보안을 확보할 수 있는 방법이 필요하다. 표준 마이크로서비스 아키텍처를 관리하기 위한 도구를 찾을 때 즉각적인 관찰 가능성, 즉시 사용 가능한 상황별 알림, 지리적 인식 콘텐츠 딜리버리, 기본 서비스 메시 등의 기능을 제공하는 솔루션을 우선적으로 봐야 한다.

적절한 툴을 사용해 클라우드 네이티브 환경에 적응한다면, 개발 및 운영팀은 멀티클러스터 쿠버네티스의 복잡성을 해결하고 그 어느 때보다 막대한 쿠버네티스의 이점을 누릴 수 있을 것이다.


IDG logo

▶   해당 콘텐츠는 저작권법에 의하여 보호받는 저작물로 기고자에게 저작권이 있습니다.
▶   해당 콘텐츠는 사전 동의 없이 2차 가공 및 영리적인 이용을 금하고 있습니다.


이 글이 좋으셨다면 구독&좋아요

여러분의 “구독”과 “좋아요”는
저자에게 큰 힘이 됩니다.

subscribe

구독하기

subscribe

Emile Vauge
Emile Vauge

InfoWorld

공유하기