쿠버네티스 멀티 클라우드/클러스터를 위한 Rancher
조대협 (http://bcho.tistory.com)
쿠버네티스 스펙은 거의 다 보고 테스트 해봐서 멀티 클라우드와 쿠버네티스 에코 시스템을 살펴보다가 그동안 봐야지 하면서 쟁겨 놓았던 Rancher를 다시한번 볼 기회가 있어서 들여다 보았다.
퍼블릭 클라우드와 온프렘 상의 쿠버네티스의 설치 및 통합 관제를 가능하게 해주는 솔루션인데, 사실 이부분은 구글 클라우드의 Anthos와 개념상으로 겹치는 부분이 있어서 크게 메리트가 있을까 하는 의구심은 있었지만, 주변에 온프렘 설치를 Rancher를 많이 이용한다는 이야기를 들어서 한번 훝어 보았다.
일단 기본 설치는 간단하게 도커 이미지로 설치를 한 후에, 실행을하면 되기 때문에 별다른 설정이나 어려움은 없다. 새로운 클러스터 생성도 메이저 클라우드 3사를 모두 지원하고 있고, 온프렘도 vSphere 도 지원한다. 추가 클라우드 Provier를 설치하면, Baidu, 화웨이등 다른 클라우드들도 함께 지원한다.
메뉴얼을 보니, RKE (https://rancher.com/docs/rke/latest/en/) 라고 Bare metal에 설치할 수 있는 쿠버네티스 버전도 있다.
새로운 클러스터를 다양한 인프라에서 생성할 수 도 있지만, 반대로 이미 생성된 클러스터를 등록해서 통합 관제를 할 수 있다.
계정 관리
일반 오픈소스 버전의 쿠버네티스는 계정 관리 시스템이 없고, 이를 외부 계정 관리 시스템과 연동해서 쓰도록 되어 있는데, Rancher를 사용할 경우, 일반 계정 시스템을 자체적으로 가지고 있고(로컬 데이타 베이스에 저장한다.) 그리고 필요하면 외부 계정시스템 (AD, GitHub,LDAP)을 사용하거나 SAML/SSO 인증등을 지원한다.
앱 카달로그
앱 카달로그를 Helm 연동을 통해서 지원하는데, 어려운 기능은 아니지만 아무래도 통합이 되어 있으니 꽤 괜찮다. 특히 멀티 클라우드 환경을 사용하면, 같은 패키지를 여러개의 쿠버네티스 클러스터에 설치할 일이 있을텐데, 이 부분이 꽤나 장점이 되지 않을듯 싶다.
모니터링
초기 대쉬 보드가 간단해서 우숩게 봤는데, 생각보다 꽤나 쓸만하다.
디폴트 대쉬 보드에서 위와 같이 기본적인 Node 정보들을 다 볼 수 있고, 그 아래 Cluster Metric에서는 Node 들의 상세 정보를, 그 아래 Kubernetes Components Metric을 들어가면 API 서버의 지표들이 나오는데, 이정보들은 모두 요약버전이고, Grafana 아이콘을 누르면 상당히 자세한 정보를 아래 그림과 같이 Grafana로 보여준다
<그림. Grafana 로 모니터링한 node 상세 정보>
<그림. 배포된 Pod에 대한 상세 정보 >
지표들을 보면 아주 상세하게 나오지는 않지만, 그래도 꽤 자세한 지표를 간단한 대쉬보드를 통해서 같은 뷰로 모니터링할 수 있다는 기능은 꽤 매력적이지 않나 싶다.
이러한 모니터링 기능들은 모니터링 기능을 활성화 해야 사용이 가능한데, 활성화 하는 부분을 보니 Prometheus 인터페이스를 사용한다. 그 말인즉슨, 현재 보이는 지표들 보다 훨씬 많은 지표를 표현할 수 있다는 말이 된다.
Alert
지표에 따른 알람 기능도 제공한다.
산식을 보면, CPU 사용률이 100 이상인 것이 3분 지속되면 Alert 을 날리도록 하였다.
즉 지표를 정의하고,지표에 대한 목표값과 지속 시간을 정의한 개념인데, 이 기능이면 충분히 구글 SRE(DEVOPS 컨셉)의 SLI와 SLO를 현실적으로 구현이 가능하다.
Notifier
Alert 을 어디로 보낼까 했더니, Notification을 등록하는 기능이 있다.
Notifier 등록화면을 보니 이메일 뿐만 아니라 Pager Duty, Slack 그리고 Webhook 도 지원한다.
위쳇도 지원되는데, 아쉽게도 카톡은 없다.
로깅
어쩔 수 없는 것은 알겠는데, 자체 로깅 시스템이 없고, 외부 로깅 시스템과 연동하도록 되어 있다.
ELK, Splunk를 지원하며, Kafka를 통해 로그를 빼내거나 Syslog/fluentd를 이용해서 로그 서버에 전송되 가능하다. 합리적인 디자인이라는 것에 동의는 하는데, 클릭 한번에 스택 드라이버등이나 기타 3’rd party log saas를 연동 시켜줬으면 어땠을까 하다.
기본 검토 의견
약간 모자르다. 생각을 많이 하고, 대부분의 기능을 충족시키는 것에는 동의하는데, 만들다가만 느낌이다. 특히 GUI 부분이나 기타 툴들이 무언가를 만들었다기 보다는 Grafana, Logging 시스템등 오픈 소스 시스템들을 누덕누덕 붙여놓은 느낌이다.
그렇지만 여러 클라우드의 여러 쿠버네티스 클러스터를 한눈에 관리 및 모니터링할 수 있는 점은 확실히 강점이 된다. 그리고 Prometheus 를 통한 같은 지표를 기반으로 모든 클러스터를 관리할 수 있고, Alert/Noti가 된다는 것은 확실히 장점이 되는것 같다.