가상화ㆍ컨테이너 / 개발자 / 오픈소스 / 클라우드

쿠버네티스 관리를 '더 쉽게' 만드는 15가지 툴

Serdar Yegulalp | InfoWorld 2022.03.21
쿠버네티스는 컨테이너화된 애플리케이션을 대규모로 배포하기 위한 표준적인 방법이 됐다. 그냥 ‘표준’이라고 말하는 사람도 많다. 복잡하게 확산하는 컨테이너 배포를 길들이는 데 쿠버네티스가 도움이 된다면, 그런 쿠버네티스를 길들이는 데는 무엇을 사용해야 할까? 쿠버네티스 역시 복잡하게 얽히고 관리하기 어려워질 수 있다.

물론 쿠버네티스가 성장하고 발전하는 과정에서 많은 부분이 정리될 것이다. 그러나 일부 사용자는 쿠버네티스가 다루기 쉬워질 때까지 기다리지 않고 프로덕션 단계의 쿠버네티스에서 일반적으로 발생하는 문제에 대처하기 위한 독자적인 해결책을 내놨다.
 
ⓒ Getty Images Bank


골드핑거 : 쿠버네티스 클러스터 시각화

인간은 시각적 동물이다. 그래프와 차트를 보면 큰 그림을 쉽게 이해할 수 있다. 쿠버네티스 클러스터의 범위와 복잡성을 감안하면 가능한 모든 시각적 도움을 얻는 것이 좋다.

블룸버그 기술 사업부가 오픈소스로 공개한 골드핑거(Goldpinger)는 쿠버네티스 클러스터 내에서 실행되면서 노드 간 관계를 인터랙티브한 지도로 표시하는 간단한 툴이다. 정상적인 노드는 녹색, 비정상적인 노드는 빨간색으로 표시된다. 노드를 클릭하면 세부 내용을 볼 수 있다. 스웨거(Swagger)로 API를 맞춤 설정해서 부가적인 보고, 지표를 비롯한 다양한 요소를 통합할 수 있다.


K9s : 전체 화면의 쿠버네티스 CLI UI

관리자는 ‘하나의 창’으로 구성된 유틸리티를 좋아한다. K9s는 쿠버네티스 클러스터를 위한 전체 화면 CLI(Command Line Interface) UI다. 실행 중인 파드, 로그, 배포를 한눈에 확인하고 셸에 빠르게 액세스할 수 있다. 참고로 K9s가 정상적으로 작동하려면 사용자 및 네임스페이스 수준에서 사용자에게 쿠버네티스 읽기 권한을 부여해야 한다.


캅스 : 쿠버네티스 클러스터를 위한 명령줄

쿠버네티스 팀이 개발한 캅스(Kops)는 명령줄에서 쿠버네티스 클러스터를 관리할 수 있게 해준다. AWS, GCE에서 실행되는 클러스터를 지원하며 VM웨어 v스피어를 비롯한 다른 환경도 지원하는 작업이 진행 중이다. 캅스는 설정 및 해체 프로세스를 자동화하는 것 외에 다른 종류의 자동화에도 도움이 된다. 예를 들어 테라폼(Terraform)을 사용해서 클러스터를 재배포할 수 있도록 테라폼 구성을 생성하는 기능이 있다.


큐브박스 : 쿠버네티스를 위한 터미널 콘솔

쿠버네티스를 위한 고급 터미널 콘솔인 큐브박스(Kubebox)는 단순히 쿠버네티스와 API에 대한 보기 좋은 셸 이상의 역할을 한다. 메모리와 CPU 사용률, 파드 목록, 실행 중인 로그, 구성 편집기를 인터랙티브하게 표시한다. 가장 좋은 점은 리눅스, 윈도우, 맥OS용 독립 애플리케이션으로 제공된다는 것이다.


큐브-어플라이어 : 쿠버네티스 파드 정의 적용

쿠버네티스 서비스로 실행되는 큐브-어플라이어(Kube-applier)는 깃(Git) 리포지토리에서 쿠버네티스 클러스터에 대한 선언적 구성 파일을 가져와서 클러스터의 파드에 적용한다. 정의 파일이 변경될 때마다 리포지토리에서 가져와 파드에 적용한다. 큐브-어플라이어는 기본적으로 구글 스캐폴드(Skaffold)와 비슷한데, 단일 앱이 아닌 전체 쿠버네티스 클러스터를 관리한다는 점에서 차이가 난다.

큐브-어플라이어는 예약, 또는 요청에 따라 구성 변경을 적용할 수 있다. 실행될 때마다 동작을 로깅하며 프로메테우스(Prometheus)와 호환되는 지표를 제공하므로 클러스터 동작에 미치는 영향도 알 수 있다.


큐브헬퍼 : 웹 기반 쿠버네티스 대시보드

올인원 대시보드를 좋아하지 않을 사람이 있을까? 큐브헬퍼(Kubehelper)는 다양한 일반적인 관리 작업과 정보 보기를 하나의 하향식 웹 인터페이스로 통합한다. 사용자는 클러스터에서 리소스를 검색하고, 명령을 실행하고, 보안 세부 사항을 점검하고, 라벨/주석/셀렉터를 다루거나 크론(cron) 작업을 관리할 수 있으며, 그 외에도 많은 작업을 할 수 있다.


큐브-ps1 : 똑똑한 쿠버네티스 명령 프롬프트

큐브-ps1(Kube-ps1)이라는 이름을 보고 쿠버네티스용 1세대 소니 플레이스테이션 에뮬레이터라고 생각한다면, 그건 오해다(에뮬레이터라면 좋긴 하겠지만 말이다). 큐브-ps1은 배시(Bash)에 추가되는 간단한 요소로, 현재의 쿠버네티스 컨텍스트와 네임스페이스를 프롬프트에 표시한다. 큐브-셸(Kube-shell)에도 이런 기능이 있고 그 외에도 유용한 기능이 많지만, 필요한 것이 똑똑한 프롬프트가 전부라면 오버헤드가 거의 없는 큐브-ps1이 적격이다.


큐브-프롬프트 : 인터랙티브 쿠버네티스 클라이언트

미니멀하면서 유용한 또 다른 쿠버네티스 CLI 수정판인 큐브-프롬프트(Kube-prompt)는 쿠버네티스 클라이언트를 사용해서 인터랙티브한 명령 세션으로 진입할 수 있게 해준다. 큐브-프롬프트는 모든 명령 앞에 kubectl을 붙이는 수고를 덜어주며, 각 명령의 컨텍스트 정보와 함께 자동 완성 기능을 제공한다.


큐브스파이 : 쿠버네티스 리소스 실시간 모니터링

풀루미(Pulumi)에서 개발한 큐브스파이(Kubespy)는 쿠버네티스 리소스에 대한 변경을 실시간으로 추적할 수 있게 해주며, 현 상황에 대한 텍스트 뷰 대시보드를 제공하는 진단 툴이다. 예를 들어 사용자는 파드 정의가 Etcd에 작성되고, 파드가 노드에서 실행되도록 예약되고, 노드의 큐블릿(Kubelet)이 파드를 생성하고, 최종적으로 파드가 실행 중인 것으로 표시되기까지 부팅 과정에서 변경되는 파드의 상태를 지켜볼 수 있다. 큐브스파이는 독립형 바이너리, 또는 Kubectl의 플러그인으로 실행이 가능하다.


큐브이발 : 쿠버네티스 구성 검증

쿠버네티스의 YAML 구성 파일은 사람이 읽을 수 있도록 작성되지만, 그렇다고 사람이 항상 검증할 수 있다는 의미는 아니다. 쉼표 누락, 이름의 오타를 놓치는 경우가 다반사다. 그래서 큐브이발(Kubeval)을 사용한다. 로컬 또는 CI/CD 파이프라인에 통합되어 사용되는 큐브이발은 쿠버네티스 YAML 구성 정의를 취해 그 유효성을 보고한다. JSON 또는 TAP 형식의 출력을 생성할 수 있으며, 헬름(Helm) 차트 구성에 참조된 소스 템플릿을 부가적인 입력 없이 파싱할 수도 있다.


큐브-옵스-뷰 : 여러 쿠버네티스 클러스터를 위한 대시보드

쿠버네티스에는 범용 모니터링을 위한 괜찮은 대시보드가 있지만, 쿠버네티스 커뮤니티는 쿠버네티스 관리자에게 유용한 데이터를 표시하는 다양한 방법을 실험 중이다. 큐브-옵스-뷰(Kube-ops-view)는 이런 실험 가운데 하나로, 여러 쿠버네티스 클러스터를 일목요연하게 그래픽으로 표시한다. 클러스터의 CPU와 메모리 사용량, 파드 상태를 한눈에 볼 수 있다. 단, 전적으로 시각화를 위한 툴이므로 명령을 호출할 수는 없다. 그러나 이 시각화는 매우 강력하고 효율적이며, 운영 센터의 벽면 모니터에 띄워 두기 좋다.


미주 : 쿠버네티스 API 트래픽 시각화

시각화는 쿠버네티스 클러스터 구성요소 내부와 구성요소 사이에서 일어나는 상황을 파악하기 위한 열쇠다. 미주(Mizu)는 ‘사이’의 시각화를 담당한다. 미주는 여러 일반적인 프로토콜(HTTP, AMQP, 카프카, 레디스)에 대해 마이크로서비스 간 API 트래픽의 실행 중인 로그를 표시하며 모든 파드, 정규식과 일치하는 파드 부분집합, 또는 하나의 특정 파드의 트래픽을 볼 수 있다. 또한 정규식 기반 규칙 또는 오픈API 사양에 규정된 계약을 기준으로 트래픽을 검증할 수도 있다.


리오 : 쿠버네티스용 앱 배포 엔진

랜처 랩스(Rancher Labs)의 프로젝트인 리오(Rio)는 깃에서의 지속적 배포, A/B 또는 블루/그린 배포와 같은 쿠버네티스의 일반적인 애플리케이션 배포 패턴을 구현한다. 커밋할 때마다 리오가 새 버전의 앱을 배포할 수 있으므로 DNS, HTTPS, 서비스 메시와 같은 복잡성을 관리하는 데 유용하다.


스턴 및 큐브테일 : 쿠버네티스를 위한 로그 테일링

스턴(Stern)은 쿠버네티스의 파드와 컨테이너에서 컬러 코딩된 출력을 생성할 수 있게 해준다(tail 명령). 여러 리소스의 모든 출력을 한눈에 읽을 수 있는 하나의 스트림으로 신속하게 보내는 수단(컬러 코딩)이며 스트림을 한눈에 구분하는 데도 유용하다. 

큐브테일(Kubetail)도 여러 파드의 로그를 하나의 스트림으로 집계하고 다양한 파드와 컨테이너에 컬러 코딩을 적용한다. 단, 큐브테일은 배시 스크립트이므로 셸만 있으면 된다.
editor@itworld.co.kr

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

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

Copyright © 2024 International Data Group. All rights reserved.