2020.05.11

쿠버네티스를 더 쉽게 쓸 수 있는 툴 12가지

Serdar Yegulalp | InfoWorld
쿠버네티스는 컨테이너화된 애플리케이션을 대규모로 배포하는 툴로, 사실상 표준으로 자리 잡았다. 그러나 쿠버네티스가 복잡하게 얽힌 컨테이너를 쉽게 배포할 수 있게 도와주는 것처럼, 쿠버네티스 자체를 더 쉽게 쓰는 방법은 없을까? 쿠버네티스는 관리하기 복잡하고 골치 아프기로 유명하기 때문이다. 물론 앞으로 쿠버네티스가 성장하고 발전하는 과정에서 더 많은 부분이 개선될 것이다. 그러나 그때까지 마냥 기다리는 대신 직접 해결책을 내놓은 이들이 늘어나고 있다. 지금부터 그 성과를 살펴보자.
 
© Getty Images Bank


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

인간은 시각적 동물이다. 그래프와 차트를 통해 상황을 더 쉽게 이해할 수 있다. 쿠버네티스 클러스터의 범위와 복잡성을 고려하면 가능한 모든 시각적 도움을 받는 것이 좋다. 골드핑거(Goldpinger)가 바로 이 시각화 툴이다. 블룸버그 기술 사업부가 오픈소스로 공개한 간단한 툴로, 쿠버네티스 클러스터 내부의 노드 간 관계를 나타내는 인터랙티브한 지도를 만들어 보여준다. 정상 노드는 녹색으로, 비정상 노드는 빨간색으로 표시된다. 노드를 클릭하면 세부 정보를 볼 수 있다. 스웨거(Swagger)로 API를 맞춤 설정해 부가적인 리포트나 지표 등 다른 기능을 통합해 사용할 수 있다.
 

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

관리자는 누구나 '하나의 창' 역할을 하는 유틸리티를 좋아한다. K9s는 쿠버네티스 클러스터의 전체화면 CLI UI다. 실행 중인 팟(pod), 로그, 배포를 한눈에 볼 수 있고, 셸에 신속하게 액세스할 수도 있다. 참고로 K9s를 제대로 사용하려면 사용자와 네임스페이스 수준에서 쿠버네티스 읽기 권한을 부여해야 한다.
 

캅스: 쿠버네티스 클러스터용 명령줄 툴

쿠버네티스 팀이 개발한 캅스(Kops)는 명령줄로 쿠버네티스 클러스터를 관리하는 툴이다. AWS와 GCE를 지원하며, VM웨어 v스피어를 비롯한 다른 환경을 지원하는 개발 작업이 현재 진행 중이다. 캅스는 설정과 해체 프로세스 외에도 다른 작업까지 자동화할 수 있도록 지원한다. 예를 들어 테라폼(Terraform)을 구성해 테라폼 클러스터 재배포할 수 있다.
 

큐브박스: 쿠버네티스용 터미널 콘솔

큐브박스(Kubebox)는 쿠버네티스용 고급 터미널 콘솔이다. 쿠버네티스와 그 API를 위한 셸 확장 기능으로, 메모리와 CPU 사용량, 팟 목록, 실행 중인 로그, 구성 편집기를 보여주는 인터랙티브 디스플레이를 제공한다. 최대 장점은 리눅스, 윈도우, 맥OS용 개별 애플리케이션으로 제공된다는 것이다.
 

큐브-어플라이어

쿠버네티스 서비스로 실행되는 큐브-어플라이어(Kube-applier)는 깃(Git) 리포지토리에서 쿠버네티스 클러스터에 대한 선언형 구성 파일을 가져와 클러스터의 팟에 적용한다. 정의 파일을 변경할 때마다 리포지토리에서 불러와 해당 팟에 적용한다. 큐브-어플라이어는 단일 앱이 아닌 쿠버네티스 클러스터 전체를 관리한다는 점을 제외하면 기본적으로 구글의 스캐폴드(Skaffold)와 같다. 일정에 따라 또는 필요할 때 구성 변경을 적용할 수 있으며, 실행할 때마다 자체 동작을 로깅해 프로메테우스(Prometheus)와 호환되는 지표를 제공하므로 클러스터 동작에 미치는 영향을 확인할 수 있다.
 

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

큐브-ps1(Kube-ps1)은 쿠버네티스용 1세대 소니 플레이스테이션 에뮬레이터가 아니다(안타깝게도!). 대신 큐브-ps1은 간단한 배시(Bash) 추가 기능으로, 프롬프트에서 현재 쿠버네티스 컨텍스트와 네임스페이스를 보여준다. 큐브-셸(Kube-shell)도 같은 기능을 제공하고 그 외의 다른 비슷한 툴이 많지만 스마트한 프롬프트만으로 충분하다면 큐브-ps1이 안성맞춤이다.
 

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

미니멀하면서도 유용한 또 다른 쿠버네티스 CLI 모드가 큐브-프롬프트(Kube-prompt)다. 이를 사용하면 쿠버네티스 클라이언트로 인터랙티브 명령 세션에 접근할 수 있다. 모든 명령 앞에 kubectl을 입력하지 않아도 되고, 각 명령의 컨텍스트 정보를 사용한 자동 완성 기능까지 제공한다.
 

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

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

큐비발: 쿠버네티스 구성의 유효성 확인

쿠버네티스의 YAML 구성 파일은 사람이 읽을 수 있는 형식이지만, YAML 구성 파일의 유효성을 확인하는 것은 이와는 또 다른 문제다. 쉼표 누락이나 오타를 놓치고 뒤늦게 발견하는 것도 이 때문이다. 이때 유용한 툴이 바로 큐비발(Kubeval)이다. 로컬로 사용하거나 CI/CD 파이프라인에 통합해 사용할 수 있으며, 쿠버네티스 YAML 구성 정의를 검토해 유효성을 알려준다. JSON 또는 TAP 형식으로 결과를 출력하며, 사용자의 추가 개입 없이 헬름(Helm) 차트 구성에 참조된 소스 템플릿을 파싱할 수 있다.
 

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

쿠버네티스에는 범용 모니터링을 위한 좋은 대시보드가 있지만, 쿠버네티스 커뮤니티는 쿠버네티스 관리자에게 효율적으로 데이터를 표시하는 다른 여러 툴을 개발하고 있다. 큐브-옵스-뷰(Kube-ops-view)는 이러한 노력 중 하나다. 여러 쿠버네티스 클러스터에 대한 정보를 일목요연하게 그래픽으로 보여준다. 클러스터 전반에서 CPU와 메모리 사용량, 팟 상태를 한눈에 확인할 수 있다. 철저한 시각화 용도의 툴인 만큼 명령 호출은 지원하지 않지만, 눈에 잘 들어오고 효율적이며 운영 센터의 벽면 모니터로 보기에도 안성맞춤이다.
 

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

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

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

스턴(Stern)을 이용하면 쿠버네티스의 팟과 컨테이너에서 (tail 명령에 따라) 색 구분된 출력을 생성할 수 있다. 이렇게 하면 여러 리소스의 모든 출력을 일목요연하게 볼 수 있는 하나의 스트림으로 신속하게 연결할 수 있다. 또한 색으로 구분되므로 스트림을 구별하기도 쉽다. 큐브테일(Kubetail)도 스턴과 비슷하다. 여러 팟의 로그를 하나의 스트림으로 모으고, 각 팟과 컨테이너를 색깔로 구분해 준다. 단, 큐브테일은 배시 스크립트이므로 셸만 있으면 바로 사용할 수 있다. editor@itworld.co.kr


2020.05.11

쿠버네티스를 더 쉽게 쓸 수 있는 툴 12가지

Serdar Yegulalp | InfoWorld
쿠버네티스는 컨테이너화된 애플리케이션을 대규모로 배포하는 툴로, 사실상 표준으로 자리 잡았다. 그러나 쿠버네티스가 복잡하게 얽힌 컨테이너를 쉽게 배포할 수 있게 도와주는 것처럼, 쿠버네티스 자체를 더 쉽게 쓰는 방법은 없을까? 쿠버네티스는 관리하기 복잡하고 골치 아프기로 유명하기 때문이다. 물론 앞으로 쿠버네티스가 성장하고 발전하는 과정에서 더 많은 부분이 개선될 것이다. 그러나 그때까지 마냥 기다리는 대신 직접 해결책을 내놓은 이들이 늘어나고 있다. 지금부터 그 성과를 살펴보자.
 
© Getty Images Bank


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

인간은 시각적 동물이다. 그래프와 차트를 통해 상황을 더 쉽게 이해할 수 있다. 쿠버네티스 클러스터의 범위와 복잡성을 고려하면 가능한 모든 시각적 도움을 받는 것이 좋다. 골드핑거(Goldpinger)가 바로 이 시각화 툴이다. 블룸버그 기술 사업부가 오픈소스로 공개한 간단한 툴로, 쿠버네티스 클러스터 내부의 노드 간 관계를 나타내는 인터랙티브한 지도를 만들어 보여준다. 정상 노드는 녹색으로, 비정상 노드는 빨간색으로 표시된다. 노드를 클릭하면 세부 정보를 볼 수 있다. 스웨거(Swagger)로 API를 맞춤 설정해 부가적인 리포트나 지표 등 다른 기능을 통합해 사용할 수 있다.
 

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

관리자는 누구나 '하나의 창' 역할을 하는 유틸리티를 좋아한다. K9s는 쿠버네티스 클러스터의 전체화면 CLI UI다. 실행 중인 팟(pod), 로그, 배포를 한눈에 볼 수 있고, 셸에 신속하게 액세스할 수도 있다. 참고로 K9s를 제대로 사용하려면 사용자와 네임스페이스 수준에서 쿠버네티스 읽기 권한을 부여해야 한다.
 

캅스: 쿠버네티스 클러스터용 명령줄 툴

쿠버네티스 팀이 개발한 캅스(Kops)는 명령줄로 쿠버네티스 클러스터를 관리하는 툴이다. AWS와 GCE를 지원하며, VM웨어 v스피어를 비롯한 다른 환경을 지원하는 개발 작업이 현재 진행 중이다. 캅스는 설정과 해체 프로세스 외에도 다른 작업까지 자동화할 수 있도록 지원한다. 예를 들어 테라폼(Terraform)을 구성해 테라폼 클러스터 재배포할 수 있다.
 

큐브박스: 쿠버네티스용 터미널 콘솔

큐브박스(Kubebox)는 쿠버네티스용 고급 터미널 콘솔이다. 쿠버네티스와 그 API를 위한 셸 확장 기능으로, 메모리와 CPU 사용량, 팟 목록, 실행 중인 로그, 구성 편집기를 보여주는 인터랙티브 디스플레이를 제공한다. 최대 장점은 리눅스, 윈도우, 맥OS용 개별 애플리케이션으로 제공된다는 것이다.
 

큐브-어플라이어

쿠버네티스 서비스로 실행되는 큐브-어플라이어(Kube-applier)는 깃(Git) 리포지토리에서 쿠버네티스 클러스터에 대한 선언형 구성 파일을 가져와 클러스터의 팟에 적용한다. 정의 파일을 변경할 때마다 리포지토리에서 불러와 해당 팟에 적용한다. 큐브-어플라이어는 단일 앱이 아닌 쿠버네티스 클러스터 전체를 관리한다는 점을 제외하면 기본적으로 구글의 스캐폴드(Skaffold)와 같다. 일정에 따라 또는 필요할 때 구성 변경을 적용할 수 있으며, 실행할 때마다 자체 동작을 로깅해 프로메테우스(Prometheus)와 호환되는 지표를 제공하므로 클러스터 동작에 미치는 영향을 확인할 수 있다.
 

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

큐브-ps1(Kube-ps1)은 쿠버네티스용 1세대 소니 플레이스테이션 에뮬레이터가 아니다(안타깝게도!). 대신 큐브-ps1은 간단한 배시(Bash) 추가 기능으로, 프롬프트에서 현재 쿠버네티스 컨텍스트와 네임스페이스를 보여준다. 큐브-셸(Kube-shell)도 같은 기능을 제공하고 그 외의 다른 비슷한 툴이 많지만 스마트한 프롬프트만으로 충분하다면 큐브-ps1이 안성맞춤이다.
 

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

미니멀하면서도 유용한 또 다른 쿠버네티스 CLI 모드가 큐브-프롬프트(Kube-prompt)다. 이를 사용하면 쿠버네티스 클라이언트로 인터랙티브 명령 세션에 접근할 수 있다. 모든 명령 앞에 kubectl을 입력하지 않아도 되고, 각 명령의 컨텍스트 정보를 사용한 자동 완성 기능까지 제공한다.
 

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

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

큐비발: 쿠버네티스 구성의 유효성 확인

쿠버네티스의 YAML 구성 파일은 사람이 읽을 수 있는 형식이지만, YAML 구성 파일의 유효성을 확인하는 것은 이와는 또 다른 문제다. 쉼표 누락이나 오타를 놓치고 뒤늦게 발견하는 것도 이 때문이다. 이때 유용한 툴이 바로 큐비발(Kubeval)이다. 로컬로 사용하거나 CI/CD 파이프라인에 통합해 사용할 수 있으며, 쿠버네티스 YAML 구성 정의를 검토해 유효성을 알려준다. JSON 또는 TAP 형식으로 결과를 출력하며, 사용자의 추가 개입 없이 헬름(Helm) 차트 구성에 참조된 소스 템플릿을 파싱할 수 있다.
 

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

쿠버네티스에는 범용 모니터링을 위한 좋은 대시보드가 있지만, 쿠버네티스 커뮤니티는 쿠버네티스 관리자에게 효율적으로 데이터를 표시하는 다른 여러 툴을 개발하고 있다. 큐브-옵스-뷰(Kube-ops-view)는 이러한 노력 중 하나다. 여러 쿠버네티스 클러스터에 대한 정보를 일목요연하게 그래픽으로 보여준다. 클러스터 전반에서 CPU와 메모리 사용량, 팟 상태를 한눈에 확인할 수 있다. 철저한 시각화 용도의 툴인 만큼 명령 호출은 지원하지 않지만, 눈에 잘 들어오고 효율적이며 운영 센터의 벽면 모니터로 보기에도 안성맞춤이다.
 

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

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

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

스턴(Stern)을 이용하면 쿠버네티스의 팟과 컨테이너에서 (tail 명령에 따라) 색 구분된 출력을 생성할 수 있다. 이렇게 하면 여러 리소스의 모든 출력을 일목요연하게 볼 수 있는 하나의 스트림으로 신속하게 연결할 수 있다. 또한 색으로 구분되므로 스트림을 구별하기도 쉽다. 큐브테일(Kubetail)도 스턴과 비슷하다. 여러 팟의 로그를 하나의 스트림으로 모으고, 각 팟과 컨테이너를 색깔로 구분해 준다. 단, 큐브테일은 배시 스크립트이므로 셸만 있으면 바로 사용할 수 있다. editor@itworld.co.kr


X