2019.01.21

'쿠버네티스 길들이기' 전방위 쿠버네티스 배치 간소화 프로젝트 19선

Serdar Yegulalp | InfoWorld
쿠버네티스는 컨테이너화된 애플리케이션을 대규모로 배치하기 위한 표준적인 방법으로 확고하게 자리를 잡았다. 쿠버네티스가 복잡하게 얽힌 컨테이너 배포를 간소화하는 데 도움이 된다고 하는데, 그렇다면 쿠버네티스 자체를 간소화하는 데 도움이 되는 툴은 무엇일까? 쿠버네티스 역시 복잡하게 얽히고 관리가 어려워질 수 있다.

ⓒ GettyImagesBank

물론 쿠버네티스가 앞으로 더 성장하고 발전함에 따라 내부적으로도 거친 부분이 다듬어질 것이다. 그러나 쿠버네티스를 사용한 작업이 더 쉬워질 때까지 기다리기보다는 스스로 솔루션을 만들어 프로덕션의 쿠버네티스와 관련된 다양한 일반적인 문제에 대처하는 사람들도 있다.

편리한 명령줄 사용부터 애플리케이션 배포 구문 간소화, AWS 통합, 그리고 여러 클러스터에 대한 가시성에 이르기까지 다양한 방법으로 쿠버네티스를 간소화하는 19가지 프로젝트를 소개한다.
 

비트나미 캐빈(Bitnami Cabin): iOS와 안드로이드용 쿠버네티스 대시보드

현대적인 웹 애플리케이션 또는 서비스라면 모바일 인터페이스는 필수다. 캐빈은 쿠버네티스 관리자에게 iOS 또는 안드로이드 스마트폰에서 액세스할 수 있는 쿠버네티스 대시보드 버전을 제공한다. 헬름 차트, 배치 확장, 팟 로그 읽기, 쿠버네티스로 호스팅되는 웹 기반 앱 액세스 등 정식 쿠버네티스 대시보드 기능 중 상당수를 캐빈에서 실행할 수 있다.
 

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

사람은 시각적 존재다. 그래프와 차트는 전체적인 그림을 보다 쉽게 이해할 수 있게 해준다. 쿠버네티스 클러스터의 범위와 복잡함을 감안하면 가능한 시각적 도움을 모두 이용하는 것이 좋다.

이름도 재미있는 골드핑거는 블룸버그(Bloomberg)의 기술 사업부가 오픈소스화한 간단한 툴로, 쿠버네티스 클러스터 내에서 실행되면서 노드 간 관계를 인터랙티브한 지도로 표시한다. 건강한 노드는 초록색으로, 건강하지 않은 노드는 빨간색으로 표시된다. 노드를 클릭하면 세부 정보를 볼 수 있다. 스웨거(Swagger)로 API를 맞춤설정해서 부가적인 보고 기능과 메트릭 및 기타 통합을 이용할 수 있다.
 

켓지(Kedge): 간결한 쿠버네티스 배치 정의

쿠버네티스에 대한 가장 흔한 불만 중 하나는 매니페스트, 즉 애플리케이션 정의의 복잡함과 장황함이다. 작성하기도, 유지하기도 괴롭다. 사람들이 서드파티 툴을 찾는 것도 당연하다. 켓지는 더 단순하고 간결한 구문을 제공한다. 켓지에 쿠버네티스 정의 파일의 단순 버전을 제공하면 켓지가 이 단순한 정의를 완전한 쿠버네티스 정의로 확장해준다. 다음에 소개하는 코키 쇼트(Koki Short)와 달리 켓지는 선언 파일에 모듈형 구문을 사용하지 않고, 단순히 애플리케이션 정의를 일반적인 바로가기로 축약하는 기능을 한다.
 

코키 쇼트(Koki Short): 관리 가능한 쿠버네티스 매니페스트

코키 쇼트는 켓지처럼 쿠버네티스에서 애플리케이션 정의(매니페스트)의 작동 방식을 개선하고자 하는 프로젝트다. 켓지 정의와 마찬가지로 쇼트 정의도 쿠버네티스 팟 설명에 축약 구문을 사용한다. 이 구문을 정식 구문으로 변환할 수 있다. 켓지와 다른 점은 쇼트 정의는 모듈형이므로 한 쇼트 선언의 세부 내용을 다른 선언에서 재사용할 수 있다는 점이다. 따라서 공통 요소가 있는 다수의 팟을 간결하게 정의할 수 있다.
 

캅스(Kops): 쿠버네티스 클러스터를 위한 명령줄 작업

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

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

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

큐브DB(KubeDB): 쿠버네티스에서 프로덕션 데이터베이스 실행

쿠버네티스에서 데이터베이스를 매끄럽게 실행하기는 항상 어렵다. 네이티브 쿠버네티스 기능으로는 데이터베이스와 관련된 상당수 문제에 직접 대처할 수 없다.

관리자는 큐브DB를 사용해서 데이터베이스 관리를 위한 쿠버네티스 작업자를 생성할 수 있다. 백업 실행, 복제, 모니터링, 스냅샷, 선언적 데이터베이스 생성 등이 모두 포함된다. 클러스터링도 지원되지만 일부 데이터베이스에 한해서다. 예를 들어 포스트그레SQL에서는 가능하지만 마이SQL에서는 (아직) 안 된다.
 

큐브몽키(Kube-monkey): 쿠버네티스용 카오스 몽키

가장 효과적인 시스템 스트레스 테스트 방법 중 하나는 이것저것을 무작위로 망가뜨리는 것이다. 이 개념을 바탕으로 설계된 툴이 바로 넷플릭스의 카오스 엔지니어링 툴인 카오스 몽키(Chaos Monkey)다. 카오스 몽키는 프로덕션에서 실행 중인 가상머신과 컨테이너를 무작위로 중단시켜 개발자가 더욱 탄력적인 시스템을 구축하도록 “독려”한다. 큐브몽키는 이와 동일한 개념을 쿠버네티스 클러스터 스트레스 테스트에 구현해서, 사용자가 지정하는 클러스터의 팟을 무작위로 중단시킨다. 특정 시간대 내에서 작동하도록 설정할 수 있다.
 

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

이름만 보고 쿠버네티스용 1세대 소니 플레이스테이션 에뮬레이터라고 생각하기 쉽지만, (유감스럽게도) 아니다. 큐브-ps1은 간단한 배시(Bash) 추가 기능으로, 프롬프트에서 현재 쿠버네티스 컨텍스트와 네임스페이스를 보여준다. 큐브-셸(Kube-shell)은 이 기능 외에도 다른 많은 기능을 제공하지만 스마트한 프롬프트만으로 충분하다면 오버헤드가 거의 없는 큐브-ps1이 좋다.
 




2019.01.21

'쿠버네티스 길들이기' 전방위 쿠버네티스 배치 간소화 프로젝트 19선

Serdar Yegulalp | InfoWorld
쿠버네티스는 컨테이너화된 애플리케이션을 대규모로 배치하기 위한 표준적인 방법으로 확고하게 자리를 잡았다. 쿠버네티스가 복잡하게 얽힌 컨테이너 배포를 간소화하는 데 도움이 된다고 하는데, 그렇다면 쿠버네티스 자체를 간소화하는 데 도움이 되는 툴은 무엇일까? 쿠버네티스 역시 복잡하게 얽히고 관리가 어려워질 수 있다.

ⓒ GettyImagesBank

물론 쿠버네티스가 앞으로 더 성장하고 발전함에 따라 내부적으로도 거친 부분이 다듬어질 것이다. 그러나 쿠버네티스를 사용한 작업이 더 쉬워질 때까지 기다리기보다는 스스로 솔루션을 만들어 프로덕션의 쿠버네티스와 관련된 다양한 일반적인 문제에 대처하는 사람들도 있다.

편리한 명령줄 사용부터 애플리케이션 배포 구문 간소화, AWS 통합, 그리고 여러 클러스터에 대한 가시성에 이르기까지 다양한 방법으로 쿠버네티스를 간소화하는 19가지 프로젝트를 소개한다.
 

비트나미 캐빈(Bitnami Cabin): iOS와 안드로이드용 쿠버네티스 대시보드

현대적인 웹 애플리케이션 또는 서비스라면 모바일 인터페이스는 필수다. 캐빈은 쿠버네티스 관리자에게 iOS 또는 안드로이드 스마트폰에서 액세스할 수 있는 쿠버네티스 대시보드 버전을 제공한다. 헬름 차트, 배치 확장, 팟 로그 읽기, 쿠버네티스로 호스팅되는 웹 기반 앱 액세스 등 정식 쿠버네티스 대시보드 기능 중 상당수를 캐빈에서 실행할 수 있다.
 

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

사람은 시각적 존재다. 그래프와 차트는 전체적인 그림을 보다 쉽게 이해할 수 있게 해준다. 쿠버네티스 클러스터의 범위와 복잡함을 감안하면 가능한 시각적 도움을 모두 이용하는 것이 좋다.

이름도 재미있는 골드핑거는 블룸버그(Bloomberg)의 기술 사업부가 오픈소스화한 간단한 툴로, 쿠버네티스 클러스터 내에서 실행되면서 노드 간 관계를 인터랙티브한 지도로 표시한다. 건강한 노드는 초록색으로, 건강하지 않은 노드는 빨간색으로 표시된다. 노드를 클릭하면 세부 정보를 볼 수 있다. 스웨거(Swagger)로 API를 맞춤설정해서 부가적인 보고 기능과 메트릭 및 기타 통합을 이용할 수 있다.
 

켓지(Kedge): 간결한 쿠버네티스 배치 정의

쿠버네티스에 대한 가장 흔한 불만 중 하나는 매니페스트, 즉 애플리케이션 정의의 복잡함과 장황함이다. 작성하기도, 유지하기도 괴롭다. 사람들이 서드파티 툴을 찾는 것도 당연하다. 켓지는 더 단순하고 간결한 구문을 제공한다. 켓지에 쿠버네티스 정의 파일의 단순 버전을 제공하면 켓지가 이 단순한 정의를 완전한 쿠버네티스 정의로 확장해준다. 다음에 소개하는 코키 쇼트(Koki Short)와 달리 켓지는 선언 파일에 모듈형 구문을 사용하지 않고, 단순히 애플리케이션 정의를 일반적인 바로가기로 축약하는 기능을 한다.
 

코키 쇼트(Koki Short): 관리 가능한 쿠버네티스 매니페스트

코키 쇼트는 켓지처럼 쿠버네티스에서 애플리케이션 정의(매니페스트)의 작동 방식을 개선하고자 하는 프로젝트다. 켓지 정의와 마찬가지로 쇼트 정의도 쿠버네티스 팟 설명에 축약 구문을 사용한다. 이 구문을 정식 구문으로 변환할 수 있다. 켓지와 다른 점은 쇼트 정의는 모듈형이므로 한 쇼트 선언의 세부 내용을 다른 선언에서 재사용할 수 있다는 점이다. 따라서 공통 요소가 있는 다수의 팟을 간결하게 정의할 수 있다.
 

캅스(Kops): 쿠버네티스 클러스터를 위한 명령줄 작업

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

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

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

큐브DB(KubeDB): 쿠버네티스에서 프로덕션 데이터베이스 실행

쿠버네티스에서 데이터베이스를 매끄럽게 실행하기는 항상 어렵다. 네이티브 쿠버네티스 기능으로는 데이터베이스와 관련된 상당수 문제에 직접 대처할 수 없다.

관리자는 큐브DB를 사용해서 데이터베이스 관리를 위한 쿠버네티스 작업자를 생성할 수 있다. 백업 실행, 복제, 모니터링, 스냅샷, 선언적 데이터베이스 생성 등이 모두 포함된다. 클러스터링도 지원되지만 일부 데이터베이스에 한해서다. 예를 들어 포스트그레SQL에서는 가능하지만 마이SQL에서는 (아직) 안 된다.
 

큐브몽키(Kube-monkey): 쿠버네티스용 카오스 몽키

가장 효과적인 시스템 스트레스 테스트 방법 중 하나는 이것저것을 무작위로 망가뜨리는 것이다. 이 개념을 바탕으로 설계된 툴이 바로 넷플릭스의 카오스 엔지니어링 툴인 카오스 몽키(Chaos Monkey)다. 카오스 몽키는 프로덕션에서 실행 중인 가상머신과 컨테이너를 무작위로 중단시켜 개발자가 더욱 탄력적인 시스템을 구축하도록 “독려”한다. 큐브몽키는 이와 동일한 개념을 쿠버네티스 클러스터 스트레스 테스트에 구현해서, 사용자가 지정하는 클러스터의 팟을 무작위로 중단시킨다. 특정 시간대 내에서 작동하도록 설정할 수 있다.
 

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

이름만 보고 쿠버네티스용 1세대 소니 플레이스테이션 에뮬레이터라고 생각하기 쉽지만, (유감스럽게도) 아니다. 큐브-ps1은 간단한 배시(Bash) 추가 기능으로, 프롬프트에서 현재 쿠버네티스 컨텍스트와 네임스페이스를 보여준다. 큐브-셸(Kube-shell)은 이 기능 외에도 다른 많은 기능을 제공하지만 스마트한 프롬프트만으로 충분하다면 오버헤드가 거의 없는 큐브-ps1이 좋다.
 


X