2018.03.15

쿠버네티스 '관리 지옥'에서 탈출하는 필수 툴 10가지

Serdar Yegulalp | InfoWorld
쿠버네티스(Kubernetes)가 컨테이너 애플리케이션을 대규모로 배포하는 표준 방법으로 빠르게 자리를 잡고 있다. 이미 표준이 됐다고 말하는 사람도 많다. 쿠버네티스를 이용하면 어렵고 복잡한 컨테이너 배포 작업을 간편하게 처리할 수 있지만, 안타깝게도 쿠버네티스 자체가 쓰기에 그리 편하지 않다. 너무 복잡하고 혼란스러워, 쿠버네티스 자체를 관리하는 작업이 일이다.



물론 쿠버네티스 사용자가 늘어나고 기능이 개선되면서 관리 어려움도 점차 해소되고 있다. 그러나 이러한 점진적 개선 작업이 너무 느리다고 느끼는 일부 사용자는 자체 솔루션을 만들어 내놓고 있다. 그 결과가 여기서 소개하는 10개 프로젝트다. 다양한 방법으로 쿠버네티스 관리를 간소화한다. CLI(command-line interactions) 개선부터 애플리케이션 배포 문법 단순화, AWS와의 통합까지 다양하다. 멀티 클러스터를 단일 창으로 관리할 수 있는 툴도 있다.

'비트나미 캐빈', iOS와 안드로이드용 쿠버네티스 대시보드
오늘날 모바일 인터페이스 지원은 모든 웹 애플리케이션과 서비스의 기본 중 기본이다. 캐빈(Cabin)을 이용하면 쿠버네티스 관리자가 iOS나 안드로이드 스마트폰에서 쿠버네티스 대시보드에 접속할 수 있다. 모바일로 접속한 후에는 헬름 차트와 대규모 배포, 팟로그 읽기, 쿠버네티스 기반 웹 앱 접속 등 쿠버네티스 대시보드 기능 대부분을 실행할 수 있다.

'캐지', 쿠버네티스 배포 정의 간소화
쿠버네티스에 대한 가장 많은 불만이 매니페스트(manifest) 혹은 애플리케이션 정의가 너무 복잡하고 장황하다는 것이다. 이는 결국 작성의 어려움, 관리의 어려움으로 이어진다. 대안으로 등장한 것이 캐지(Kedge)다. 캐지는 더 단순하고 간결한 구문을 제공한다. 간단한 쿠버네티스 정의 파일을 입력하면 캐지가 쿠버네티스 완전한 대체재로 변신한다. 비슷한 기능의 코키 쇼트(Koki Short)와 달리, 캐지는 선언 파일에 모듈러 구문을 사용하지 않는다. 단지 애플리케이션 정의를 일반적인 단축키로 줄일 뿐이다.

'코키 쇼트', 관리 가능한 쿠버네티스 매니페스트
코키 쇼트(Koki Short)는 쿠버네티스 내에서 사용하는 애플리케이션 정의 방법이나 매니페스트를 개선하는 프로젝트다. 캐지와 마찬가지로 쿠버네티스 팟을 기술하는 간결한 구문을 지원한다. 쇼트를 사용하지 않은 완전한 구문으로 전환할 수 있고 다시 돌리는 것도 가능하다. 또한, 쇼트는 캐지와 달리 모듈식으로 구성됐다. 즉, 한 곳에서 선언한 쇼트의 세부 내용을 다른 곳에서 재사용할 수 있다. 따라서 공통 요소를 가진 많은 팟을 간결하게 정의할 수 있다.

'쿠베-ps1', 똑똑한 쿠버네티스 명령 프롬프트
쿠베-ps1(Kube-ps1)은 (당연하게도!) 쿠버네티스용 1세대 소니 플레이스테이션 에뮬레이터가 아니다(물론 재치있는 생각이라는 것은 인정한다). 배시(Bash)에 간단한 기능을 추가한 것으로, 현재 쿠버네티스의 컨텍스트와 네임스페이스를 프롬프트에 표시해준다. 쿠베-ps1은 쿠베 셸(Kube-shell)에 포함된 많은 추가 요소 중 하나다. 쿠베 셸의 다른 기능은 필요 없고 스마트 프롬프트만 사용하고 싶다면 쿠베-ps1이 정답이다.

'쿠베-프롬프트', 대화형 쿠버네티스 클라이언트
쿠버네티스 CLI를 변경하는, 소소하지만 유용한 툴이다. 쿠베-프롬프트(Kube-prompt)를 이용하면 다양한 명령을 대화형 세션에 입력할 수 있다. 모든 명령어 앞에 kubectl를 입력할 필요가 없으며, 각 명령에 따라 상황을 인식해 자동으로 명령어를 완성해 준다.


'쿠베-셸', 쿠버네티스 CLO용 셸
쿠버네티스 명령 줄은 강력하다. 그러나 다른 명령 줄 앱이 그렇 듯, 사용해야 하는 옵션이 장황하다. 쿠베 셸(Kube-shell)은 표준 쿠버네티스 명령 줄에 명령 자동 완성과 자동 제안 기능을 제공한다. 서비스 명 같은 쿠버네티스 서버가 지원하는 내용도 제안도 포함된다. 이밖에 강화된 명령 히스토리 기능과 vi 스타일 편집 모드, 사용자와 네임스페이스, 클러스트, 다른 설치 사양 세부 사항에 대한 실행 정보 등도 제공한다.

AWS용 쿠버네티스 인그레스 컨트롤러
쿠버네티스는 인그레스(Ingress)라고 불리는 서비스를 통해 클러스터에 대한 외부 로드밸런싱과 네트워크 서비스를 지원한다. AWS도 로드밸런싱 기능을 지원하지만 이들 서비스를 자동으로 쿠버네티스 기능과 연동하지는 못한다. 이 간극을 메우는 것이 바로 AWS용 쿠버네티스 인그레스 컨트롤러(Kubernetes Ingress Controller for AWS)다.

AWS용 쿠버네티스 인그레스 컨트롤러는 클러스터내 개별 인그레스 객체에 대한 AWS 자원을 자동으로 관리한다. 예를 들어 새 인그레스 자원에 대한 로드 밸런스를 생성하고 제거한 자원에 대한 로드 밸런서는 삭제한다. 이 과정에서 클러스터의 오류를 막기 위해 AWS 클라우드포메이션을 이용한다. 이밖에도 SSL 인증서와 EC2 오토 스케일링 그룹 등 클러스터 내에서 사용되는 다른 요소도 자동으로 관리한다.

'쿠베-옵스-뷰', 멀티 쿠버네티스 클러스터용 대시보드
쿠버네티스는 일반적인 모니터링 용도의 대시보드를 지원한다. 그러나 일부 쿠버네티스 사용자는 여기에 만족하지 못하고 더 직관적으로 데이터를 보여주는 다른 대안을 찾는다. 그런 노력 중 하나가 바로 '쿠베-옵스-뷰(Kube-ops-view)'다. 여러 쿠버네티스 클러스터 현황을 한눈에 볼 수 있다. CPU와 메모리 사용량, 팟 상황 등을 여러 클러스터의 상황을 확인할 수 있다. 단, 명령은 실행할 수는 없다. 온전히 보여주는 역할만 한다. 그러나 이 시각화가 매우 직관적이고 효과적이어서 운영센터 상황판 모니터에 안성맞춤이다.

'스턴', 쿠버네티스 로그 분석기
배의 꼬리 부분, 즉 '선미'를 의미하는 그 '스턴(stern)'이다. 이를 이용하면 쿠버네티스의 팟과 컨테이너 같은 자원에서 테일 명령으로 컬러 코드 결과물을 만들 수 있다. 이는 이들 자원의 모든 결과물을 단일 스트림으로 연결해 한눈에 볼 수 있는 빠른 방법이기도 하다. 또한 컬러 코딩을 한번에 볼 수 있으므로 여러 스트림을 구분하기도 더 쉽다.

'테레사', 쿠버네티스 기반의 간단한 PaaS
테레사(Teresa)는 쿠버네티스 위에서 실행되는 간단한 PaaS형 애플리케이션 배포 시스템이다. 팀으로 구성된 사용자가 애플리케이션을 배포, 관리할 수 있다. 특히 정해진 애플리케이션을 사용하는 신뢰할 수 있는 사용자 그룹이 업무를 더 쉽게 처리할 수 있도록 지원하며, 이 과정에서 쿠버네티스를 직접 다룰 필요 없다는 것이 장점이다. ciokr@idg.co.kr 
2018.03.15

쿠버네티스 '관리 지옥'에서 탈출하는 필수 툴 10가지

Serdar Yegulalp | InfoWorld
쿠버네티스(Kubernetes)가 컨테이너 애플리케이션을 대규모로 배포하는 표준 방법으로 빠르게 자리를 잡고 있다. 이미 표준이 됐다고 말하는 사람도 많다. 쿠버네티스를 이용하면 어렵고 복잡한 컨테이너 배포 작업을 간편하게 처리할 수 있지만, 안타깝게도 쿠버네티스 자체가 쓰기에 그리 편하지 않다. 너무 복잡하고 혼란스러워, 쿠버네티스 자체를 관리하는 작업이 일이다.



물론 쿠버네티스 사용자가 늘어나고 기능이 개선되면서 관리 어려움도 점차 해소되고 있다. 그러나 이러한 점진적 개선 작업이 너무 느리다고 느끼는 일부 사용자는 자체 솔루션을 만들어 내놓고 있다. 그 결과가 여기서 소개하는 10개 프로젝트다. 다양한 방법으로 쿠버네티스 관리를 간소화한다. CLI(command-line interactions) 개선부터 애플리케이션 배포 문법 단순화, AWS와의 통합까지 다양하다. 멀티 클러스터를 단일 창으로 관리할 수 있는 툴도 있다.

'비트나미 캐빈', iOS와 안드로이드용 쿠버네티스 대시보드
오늘날 모바일 인터페이스 지원은 모든 웹 애플리케이션과 서비스의 기본 중 기본이다. 캐빈(Cabin)을 이용하면 쿠버네티스 관리자가 iOS나 안드로이드 스마트폰에서 쿠버네티스 대시보드에 접속할 수 있다. 모바일로 접속한 후에는 헬름 차트와 대규모 배포, 팟로그 읽기, 쿠버네티스 기반 웹 앱 접속 등 쿠버네티스 대시보드 기능 대부분을 실행할 수 있다.

'캐지', 쿠버네티스 배포 정의 간소화
쿠버네티스에 대한 가장 많은 불만이 매니페스트(manifest) 혹은 애플리케이션 정의가 너무 복잡하고 장황하다는 것이다. 이는 결국 작성의 어려움, 관리의 어려움으로 이어진다. 대안으로 등장한 것이 캐지(Kedge)다. 캐지는 더 단순하고 간결한 구문을 제공한다. 간단한 쿠버네티스 정의 파일을 입력하면 캐지가 쿠버네티스 완전한 대체재로 변신한다. 비슷한 기능의 코키 쇼트(Koki Short)와 달리, 캐지는 선언 파일에 모듈러 구문을 사용하지 않는다. 단지 애플리케이션 정의를 일반적인 단축키로 줄일 뿐이다.

'코키 쇼트', 관리 가능한 쿠버네티스 매니페스트
코키 쇼트(Koki Short)는 쿠버네티스 내에서 사용하는 애플리케이션 정의 방법이나 매니페스트를 개선하는 프로젝트다. 캐지와 마찬가지로 쿠버네티스 팟을 기술하는 간결한 구문을 지원한다. 쇼트를 사용하지 않은 완전한 구문으로 전환할 수 있고 다시 돌리는 것도 가능하다. 또한, 쇼트는 캐지와 달리 모듈식으로 구성됐다. 즉, 한 곳에서 선언한 쇼트의 세부 내용을 다른 곳에서 재사용할 수 있다. 따라서 공통 요소를 가진 많은 팟을 간결하게 정의할 수 있다.

'쿠베-ps1', 똑똑한 쿠버네티스 명령 프롬프트
쿠베-ps1(Kube-ps1)은 (당연하게도!) 쿠버네티스용 1세대 소니 플레이스테이션 에뮬레이터가 아니다(물론 재치있는 생각이라는 것은 인정한다). 배시(Bash)에 간단한 기능을 추가한 것으로, 현재 쿠버네티스의 컨텍스트와 네임스페이스를 프롬프트에 표시해준다. 쿠베-ps1은 쿠베 셸(Kube-shell)에 포함된 많은 추가 요소 중 하나다. 쿠베 셸의 다른 기능은 필요 없고 스마트 프롬프트만 사용하고 싶다면 쿠베-ps1이 정답이다.

'쿠베-프롬프트', 대화형 쿠버네티스 클라이언트
쿠버네티스 CLI를 변경하는, 소소하지만 유용한 툴이다. 쿠베-프롬프트(Kube-prompt)를 이용하면 다양한 명령을 대화형 세션에 입력할 수 있다. 모든 명령어 앞에 kubectl를 입력할 필요가 없으며, 각 명령에 따라 상황을 인식해 자동으로 명령어를 완성해 준다.


'쿠베-셸', 쿠버네티스 CLO용 셸
쿠버네티스 명령 줄은 강력하다. 그러나 다른 명령 줄 앱이 그렇 듯, 사용해야 하는 옵션이 장황하다. 쿠베 셸(Kube-shell)은 표준 쿠버네티스 명령 줄에 명령 자동 완성과 자동 제안 기능을 제공한다. 서비스 명 같은 쿠버네티스 서버가 지원하는 내용도 제안도 포함된다. 이밖에 강화된 명령 히스토리 기능과 vi 스타일 편집 모드, 사용자와 네임스페이스, 클러스트, 다른 설치 사양 세부 사항에 대한 실행 정보 등도 제공한다.

AWS용 쿠버네티스 인그레스 컨트롤러
쿠버네티스는 인그레스(Ingress)라고 불리는 서비스를 통해 클러스터에 대한 외부 로드밸런싱과 네트워크 서비스를 지원한다. AWS도 로드밸런싱 기능을 지원하지만 이들 서비스를 자동으로 쿠버네티스 기능과 연동하지는 못한다. 이 간극을 메우는 것이 바로 AWS용 쿠버네티스 인그레스 컨트롤러(Kubernetes Ingress Controller for AWS)다.

AWS용 쿠버네티스 인그레스 컨트롤러는 클러스터내 개별 인그레스 객체에 대한 AWS 자원을 자동으로 관리한다. 예를 들어 새 인그레스 자원에 대한 로드 밸런스를 생성하고 제거한 자원에 대한 로드 밸런서는 삭제한다. 이 과정에서 클러스터의 오류를 막기 위해 AWS 클라우드포메이션을 이용한다. 이밖에도 SSL 인증서와 EC2 오토 스케일링 그룹 등 클러스터 내에서 사용되는 다른 요소도 자동으로 관리한다.

'쿠베-옵스-뷰', 멀티 쿠버네티스 클러스터용 대시보드
쿠버네티스는 일반적인 모니터링 용도의 대시보드를 지원한다. 그러나 일부 쿠버네티스 사용자는 여기에 만족하지 못하고 더 직관적으로 데이터를 보여주는 다른 대안을 찾는다. 그런 노력 중 하나가 바로 '쿠베-옵스-뷰(Kube-ops-view)'다. 여러 쿠버네티스 클러스터 현황을 한눈에 볼 수 있다. CPU와 메모리 사용량, 팟 상황 등을 여러 클러스터의 상황을 확인할 수 있다. 단, 명령은 실행할 수는 없다. 온전히 보여주는 역할만 한다. 그러나 이 시각화가 매우 직관적이고 효과적이어서 운영센터 상황판 모니터에 안성맞춤이다.

'스턴', 쿠버네티스 로그 분석기
배의 꼬리 부분, 즉 '선미'를 의미하는 그 '스턴(stern)'이다. 이를 이용하면 쿠버네티스의 팟과 컨테이너 같은 자원에서 테일 명령으로 컬러 코드 결과물을 만들 수 있다. 이는 이들 자원의 모든 결과물을 단일 스트림으로 연결해 한눈에 볼 수 있는 빠른 방법이기도 하다. 또한 컬러 코딩을 한번에 볼 수 있으므로 여러 스트림을 구분하기도 더 쉽다.

'테레사', 쿠버네티스 기반의 간단한 PaaS
테레사(Teresa)는 쿠버네티스 위에서 실행되는 간단한 PaaS형 애플리케이션 배포 시스템이다. 팀으로 구성된 사용자가 애플리케이션을 배포, 관리할 수 있다. 특히 정해진 애플리케이션을 사용하는 신뢰할 수 있는 사용자 그룹이 업무를 더 쉽게 처리할 수 있도록 지원하며, 이 과정에서 쿠버네티스를 직접 다룰 필요 없다는 것이 장점이다. ciokr@idg.co.kr 
X