주메뉴 바로가기 본문 바로가기

알림

콘솔 이동 시 로그인이 필요합니다.

로그인하시겠습니까?

아니요

닫기

주문 불가 알림

주문권한이 없습니다.

콘솔에 접근할 수 없는 계정입니다.

확인

닫기

알림

신용카드 등록이 필요합니다.

신용카드 등록 페이지로 이동하시겠습니까?

아니요

닫기

Cloud Z 홍보센터

Cloud Z 뉴스 상세
Cloud Z 블로그Anywhere Deployable, Anywhere Scalable 멀티 클러스터 서비스 매시 등록일 2019-07-30 | 조회수 131
‘클라우드가 대세’라는 말도 이제 더는 새로울 게 없는 세상입니다.
기업의 IT 서비스가 클라우드 기반으로 제공되는 흐름이 지속해서 진행 중이죠.
단일 클라우드에서 멀티, 하이브리드 클라우드로 기술이 고도화 중이기도 하고요.


이렇듯 시장의 폭이 넓어지고, 기술의 깊이가 깊어지는 가운데, 각 기업의 기술을 공유하고 논의하는 자리가 열렸는데요.
지난 7월 18~19일, 양일간 개최된 Open Infrastructure & Cloud Native Days Korea 2019 행사입니다.



국내 클라우드 시장의 주역인 SK㈜ C&C도 행사에 참석해 자리를 빛냈는데요.
특히 참신한 발상에서 탄생한 신선한 기술을 공유해 많은 관심을 받았습니다.
이날 나정호, 송민영 수석이 공개한 '멀티 클러스터 서비스 매시'는 과연 어떤 기술일까요?
지금부터 함께 살펴보고자 합니다.



[멀티 클러스터 서비스 매시란?]
그동안 SK㈜ C&C는 클라우드 전략을 성공적으로 이끌기 위한 조건으로 마이크로 서비스 아키텍처(MSA)를 꼽아 왔어요.
Cloud Z CP로 MSA 구현을 위한 기반을 제공하기도 했죠. 그런데 말이죠. 앱 개발, 배포, 수정에 있어 강점을 가진 MSA이지만요.
아킬레스건은 존재합니다. 바로 복잡성 문제입니다.


"서비스 확장 과정에서 복잡성이 증가하죠. 연결 관계 파악도 어렵고요. 트래픽 제어 등의 기능을 앱 단에서 지원하다 보니
서비스가 확장할수록 배포에 어려움도 생깁니다."




나정호 수석은 이 과정에서 '서비스 매시'가 등장했다고 말했는데요.
그에 따르면 MSA 트래픽 관리 요소를 애플리케이션(앱) 코드와 분리하려는 니즈 속에서 서비스 매시가 주목받았습니다.
서비스가 늘어날수록 프록시도 늘어나기에 중앙 집중화된 프록시를 관리할 기법이 필요했던 것이죠.


이스티오(Istio)는 이를 만족하는 오픈소스인데요. 서비스 매시 네트워크 연결, 트래픽 제어,
텔레메트리, 보안을 관리하는 플랫폼이라 할 수 있죠.
이스티오라는 플랫폼 위에 각각 분리된 서비스와 프록시가 그물망처럼 묶이는 것, 이것이 바로 서비스 매시이고요.



한편, 나 수석은 이스티오를 더 효과적으로 활용할 방법은 무엇이 있을까 고민하다 이런 답을 얻었다고 합니다.
바로 하이브리드 클라우드(멀티 클라우드 또는 *버스팅 클라우드 방식)에 접목하는 것입니다.
그러니까 이스티오를 기반으로 2개 이상의 클러스터(온프레미스 프라이빗 클라우드와 퍼블릭 클라우드)를
그물망처럼 묶는다는 이야기
입니다.




"이렇게 멀티 클러스터 서비스 매시를 구성하면 어떤 환경이든, 지역이든, 서비스와 종류에 상관없이
배포와 확장을 자유롭게 할 수 있게 됩니다. 한마디로 Anywhere Deployable, Anywhere Scalable이 현실화된다는 말이에요."

*버스팅 클라우드란 프라이빗 클라우드 자원을 100% 사용했을 때,
오버 트래픽을 퍼블릭 클라우드로 전달해 처리하는 클라우드 컴퓨팅을 말함.



[멀티 클러스터 서비스 매시를 구현하는 방법]
나 수석은 멀티 클러스터 서비스 매시를 구현하기 위한 기술로 세 가지를 들었는데요.
SNI, 스플릿 호라이즌 EDS(Split Horizon EDS), 이스티오 잉그레스 게이트웨이(Istio Ingress Gateway), 이렇게 3종입니다.


SNI(Server Name Indication)은 TLS 확장 기능을 활용해 라우팅 대상의 엔드포인드를 인식하고 결정하는 데 씁니다.
스프릿 호라이즌 EDS는 멀티 클러스터의 엔드포인트 디스커버리 서비스(Endpoint Discovery Service)를 수행해
멀티 클러스터의 엔드포인트를 확인하고 라우팅하는 데 사용하고요.
이스티오 잉그레스 게이트웨이는 SNI 데이터를 사용해 서비스 엔드포인트를 연결하고 라우팅하는 데 활용하죠.




"이 세 가지 기술을 이용해서 멀티 클러스터를 서비스 매시로 연결할 수 있는데요.
그러면 마치 하나의 클러스터 위에서 작동하는 것처럼 구성할 수 있습니다."

나정호 수석에 따르면 멀티 클러스터 서비스 매시에선 CLI 기반의 검증과 GUI 검증 모두 가능합니다.
CLI 기반에서는 서비스 매시에 관한 각종 마이크로서비스 싱크 현황을 확인할 수 있고요.
스프릿 호라이즌 EDS에 적용된 엔트포인트 현황까지 출력할 수 있다고 하죠.




GUI 기반으로 검증할 때는 키아리(Kiali)라는 오픈소스를 쓰는데요.
이스티오로 수집한 지표를 시각화하여 나타내는 도구입니다. 서비스 토폴로지와 트래픽 플로우를 확인할 수 있죠.
오픈소스 기반 대시보드 플랫폼, 그라파나(Grafana)를 사용하면 서비스 트래픽 매트릭까지 출력 가능하다고 합니다.



[Yaml 관리배포 이슈는 깃옵스로 해결]
마치 하나의 클러스터 위에서 작동하는 것처럼 멀티 클러스터를 구성하는 멀티 클러스터 서비스 매시.
Anywhere Deployable, Anywhere Scalable을 현실화한 이 기술도 물론 약점이 있는데요.




첫째는 Yaml 관리입니다. 이미지에서 볼 수 있듯이 서비스 확장에 따른 Yaml 수가 관리에 어려움이 있을 만큼 늘어나죠.
둘째는 Yaml 배포입니다. Yaml이 멀티 클러스터 단위로 퍼지면 배포 주체와 과정이 복잡해지는 이슈가 떠오릅니다.




"우리가 찾은 해답은 깃옵스(GitOps)입니다."

깃(Git)은 쿠버네티스 클러스터에 배포 또는 설정될 Yaml을 가진 단일 저장소를 의미하는데요.
나 수석은 쿠버네티스 클러스터에 배포 또는 설정하고자 하는 모든 작업은 깃에 Yaml 형태로 커밋(commit)된다고 말했습니다.
이후 깃 Yaml과 쿠버네티스 클러스터 내 배포 또는 설정된 정보(Sync)를 비교(Diff)하는 작업(Sync & Diff)이 이뤄지죠.
차이가 발생하면 아르고CD(ArgoCD)와 같은 CD 도구를 통해 Yaml을 클러스터에 반영하는데요.
이것이 깃 기반으로 배포하는 깃옵스입니다.
그렇다면 깃옵스 기반으로 멀티 클러스터 서비스 매시를 구현했을 때 어떤 이점이 있을까요?




바로 관리와 배포가 단순해집니다. 아르고CD를 활용한 동시 배포는 물론이고요. 업데이트도 손쉽게 할 수 있게 되죠.
업데이트된 Yaml이 깃에 커밋되었을 때, 아르고CD는 기존 쿠버네티스 클러스터에 싱크된 Yaml과 비교하는 과정을 거치는데요.
불일치 시 이를 알려줍니다. 운영자는 쿠버네티스 클러스터 내 Yaml을 변경할 것인지만 결정하면 되지요.




나정호 수석은 이를 실제로 구현해 본 데모를 소개하며 발표를 마쳤는데요.
앞서 설명한 기술을 바탕으로 프로덕트 카탈로그(Product Catalog) 버전1이 버전2로 업데이트되면서
트래픽 전환까지 되는 과정을 보여주었습니다.
온프레미스 클라우드, 퍼블릭 클라우드, 버스트 클러스터로 묶인 멀티 클러스터 서비스 매시 위에서
자연스럽게 업데이트되는 프로덕트 카탈로그(Product Catalog)를 확인할 수 있었죠.



[이스티오 트래픽 매니지먼트 활용하기]
이어지는 발표에선 송민영 수석이 강연자로 나섰는데요.
송 수석은 멀티 클러스터 서비스 매시에서 이스티오로 에러(Error)를 재현하는 방법을 소개했습니다.
에러를 재현하는 데 드는 시간과 비용이 만만치 않죠. 특히 로그를 확보하고 분석하는 데 많은 시간을 씁니다.
송 수석은 이 지점에서 이스티오의 미러링 기능을 떠올렸다고 합니다.




미러링으로 트래픽을 바로 확보할 수 있다면 로그 확보에 힘 쏟을 필요 없이 바로 디버깅을 진행할 수 있지 않을까?’

송 수석의 개념을 이해하기 위해선 이스티오 미러링부터 살펴볼 필요가 있습니다.
이는 Http Request의 트래픽을 복사해 지정한 서브셋(Subset)에 전달하는 기능인데요.
복사된 트래픽은 기존 Source service에 Response 없이 반영됩니다.
송 수석에 따르면 이 기능을 로그 수집 없이 트래픽을 확보해 디버깅하는 앱을 구현할 수 있죠.


물론 기존 클러스터에 디버깅을 위한 앱을 추가로 배포한다면 이런저런 제한과 한계에 부딪히겠죠.
운영 중인 클러스터에 배포하는 것부터 안정성 문제가 발생합니다. 클러스터 자원 부족 문제도 있고요.
최대 2배에 달하는 리소스가 필요할 것입니다.




송 수석은 멀티 클러스터 서비스 매시라면 문제없이 가능할 것으로 강조했는데요.
디버깅용 앱을 운영 중인 클러스터가 아닌 다른 곳에 배포함으로써 안정성을 확보하고,
에러 해결 효율을 높일 수 있다는 것입니다.




그는 미러링으로 오리지날 트래픽을 복사하는 데모 영상도 소개했는데요.
아직은 아이디어 수준이지만, 실제로 구현할 수 있다는 걸 보여주었답니다.




이날 발표에선 멀티 클러스터 서비스 매시에서의 이스티오 텔레메트리 로깅 활용법도 소개됐는데요.
메인 클러스터 내 믹서로 전달된 매트릭을 공유하는 쉐어드 콘트롤 플랜(Shared Control Plane)과
각각의 콘트롤 플랜 내 믹서에 저장되는 멀티 콘트롤 플랜(Multi Control Plane), 두 가지 방법이 공개됐습니다.
송 수석에 따르면 로그 분석을 중앙 집중화하여 조금 더 쉽고 가치 있게 활용한다는 장점이 있다고 하네요.



[멀티 클러스터 서비스 매시는 SK㈜ C&C와 함께]
송민영 수석은 멀티 클러스터 서비스 매시의 강점을 다시 한 번 언급하며 발표를 마무리했는데요.
그는 "이스티오 덕분에 MSA 앱 영역에서 하던 서비스 매시 관리를 플랫폼 영역으로 옮길 수 있었다"며
"여러 클러스터에 앱을 배포하면서 하나의 워크로드를 운영할 수 있게 된 것 역시 이스티오 덕분"이라고 언급했습니다.

 
아르고CD는 멀티 클러스터 서비스 매시에서 발생하는 배포 문제를 효과적으로 해결해 주었다고도 강조했죠.
또한, 송 수석은 미러링으로 손쉬운 디버깅이 가능해졌고,
텔레메트리 로깅으로 로그 분석도 수월해졌다고 말하며 강연을 끝마쳤습니다.




"멀티 클러스터를 마치 저 언덕 위에 있는 아득한 기술로 생각할 것입니다.
하지만 쿠버네티스, 이스티오, 아르고CD와 같은 도구가 등장하면서 도입 부담이 낮아지고 있죠.
아마도 머지않아 언덕 없는 평지를 이룰 것으로 생각됩니다.
SK㈜ C&C는 멀티 클러스터에 관한 구축과 운영에 많은 노력을 기울이고 있는데요.
도입을 고려하고 있다면, 탄탄하게 준비를 마친 SK㈜ C&C와 함께하는 것도 좋을 듯합니다."





한편, SK㈜ C&C는 부스를 마련해 멀티 클러스터 서비스 매시와 클라우드 Z CP를 알리기도 했습니다.
이날 발표에서 보여주었던 데모 영상도 부스를 통해서 다시 한 번 확인할 수 있었는데요.
부스 관계자는 "멀티 클러스터 서비스 매시는 온프레미스 쿠버네티스 서비스 환경과 퍼블릭 쿠버네티스 서비스 환경을
하나로 묶는 획기적인 상품"이라며 "하반기 클라우드 Z 상품으로 등장할 예정"이라고 말해 기대감을 더했답니다.

 

목록


quick 메뉴