공개SW 기술팁



itworld

글: Serdar Yegulalp | InfoWorld / 2017-5-23



컨테이너화된 워크로드를 위한 클러스터 관리자인 쿠베르네티스(Kubernetes)가 대세다. 까다로운 로드밸런싱과 작업 관리는 쿠베르네티스에 맡기고 사용자는 다른 부분에 집중할 수 있다.

그러나 거의 모든 오픈소스 프로젝트가 그렇듯이 쿠베르네티스 역시 아직 만들어가는 과정이다. 쿠베르네티스를 사용하다 보면 누구나 필연적으로 부족한 부분과 불편한 점을 발견하게 된다. 쿠베르네티스 클러스터 관리에 따르는 부담을 덜어주는 4가지 프로젝트를 소개한다.

큐브-어플라이어(Kube-applier)
쿠베르네티스 성공의 핵심은 구글이 아닌 다른 IT 브랜드들도 채택하고 있다는 것이다. 클라우드 스토리지 업체 박스(Box)는 내부 배치에 사용했던 쿠베르네티스용 코드 일부를 오픈소스화했는데, 큐브-어플라이어도 그러한 프로젝트 중 하나다.

큐브-어플라이어는 쿠베르네티스 서비스로 실행되며, 깃(Git) 리포지토리에 호스팅되는 쿠베르네티스 클러스터용 선언 구성 파일 집합을 받아 이를 클러스터의 팟(pod)에 지속적으로 적용한다. 정의 파일에 변경 사항이 발생할 때마다 자동으로 리포지토리에서 가져와 해당 팟에 적용한다.

변경 내용은 일정을 기반으로 적용할 수도, 필요에 따라 그때그때 적용할 수도 있다. 큐브-어플라이어는 실행될 때마다 작업을 로그로 기록하며 프로메테우스(Prometheus)와 호환되는 메트릭을 제공하므로 이 툴이 클러스터의 작동에 미치는 영향을 파악할 수 있다.

큐브톱(Kubetop)
가장 단순한 툴이 가장 유용할 때가 있다. 파이썬으로 작성된 큐브톱은 현재 실행 중인 모든 노드, 노드의 모든 팟, 그리고 팟의 모든 컨테이너를 목록화하고 각각의 CPU 및 메모리 사용량을 보여준다. 유닉스/리눅스의 top 명령과 비슷하다. 이 툴은 아주 간단한 정보만 생성하므로 본격적인 로깅 또는 보고 툴 대용으로 사용해서는 안 된다. 그러나 쿠베르네티스 클러스터에 대한 간결하고 일목요연한 보고 기능으로 충분한 경우라면 아주 유용하다.

명령줄을 사용하는 중에 지금 클러스터 사용량이 많은 요소가 무엇인지 빠르게 알아야 한다면 이 툴이 딱 맞다. 쿠베르네티스의 kubectl도 비슷한 기능을 하지만 큐브톱의 출력이 더 깔끔하다.

Kubectx/K8senv
쿠베르네티스에는 구성 데이터가 서로 다른 개별 클러스터를 참조하기 위한 “컨텍스트”라는 개념이 있다. 기본 kubectl 명령줄 툴을 사용해서 컨텍스트에서 컨텍스트로 전환하기는 때로 불편하고 거추장스럽다. 그래서 서드파티를 통해 간단히 컨텍스트를 전환할 수 있는 방법이 등장했다.

Kubectx라는 간단한 셸 스크립트를 사용하면 쿠베르네티스 컨텍스트에 짧은 이름을 부여해서 이 이름을 사용해 컨텍스트 전환이 가능하다. Kuberctx에 대시(-)를 전달하면 이름을 기억할 필요도 없이 이전 컨텍스트로 전환된다. 이 스크립트는 탭을 사용한 이름 완성도 지원하므로 긴 이름을 일일이 입력하지 않아도 된다.

또 다른 셸 스크립트인 K8senv는 훨씬 더 단순한 대신 기능은 그만큼 떨어진다. 예를 들어 현재 인스턴스와 지난 인스턴스 사이를 전환하는 기능이 없다.

kubeadm-dind-cluster
테스트를 위해 로컬로 단일 노드 쿠베르네티스 인스턴스를 구동해야 한다면 쿠베르네티스에서 제공하는 기본 툴인 미니큐브(Minikube)로도 충분하다. 그러나 쿠베르네티스 자체 테스트와 개발을 위해 다중 노드 클러스터를 구동하려면 미란티스(Mirantis)의 kubeadm-dind-cluster(KDC)를 사용하는 것이 좋다.

KDC는 쿠베르네티스의 kubeadm 앱을 사용해서 VM이 아닌 도커 컨테이너로 구성된 클러스터를 실행한다. 이를 통해 쿠베르네티스 작업 시 클러스터를 더 빠르게 재시작하고, 따라서 각 코드 변경이 미치는 영향을 더 신속하게 파악할 수 있다. 지속적 통합 환경에서도 “중첩 가상화에 따른 문제 없이” KDC를 사용할 수 있다. KDC는 리눅스, 맥OS, 윈도우 등 플랫폼을 가리지 않고 실행되며, 쿠베르네티스의 도커화된(Dockerized) 빌드를 사용하므로 고(Go) 설치도 필요 없다.



※ 본 내용은 한국IDG(주)(http://www.itworld.co.kr)의 저작권 동의에 의해 공유되고 있습니다.
Copyright ⓒITWORLD. 무단전재 및 재배포 금지


[원문출처 : http://www.itworld.co.kr/news/104887]

조회 수 :
677
등록일 :
2017.05.23
16:51:31 (*.162.249.76)
List of Articles
번호 제목
자료년도
날짜 조회 수
508 [인공신경망] (3) 신경망 번역, 데이터베이스 확보와 오픈소스 플랫폼 경쟁 시작 2017  2017-10-10 213
507 [OS] 소규모 서버의 간편한 활용을 위한 대안 ClearOS 2017  2017-08-21 421
506 디자이너를 위한 오픈소스 프로젝트 2017  2017-08-18 368
505 [웹로그분석툴] Google Analytics를 대체할만한 오픈소스 웹 로그 분석 도구 Piwik 소개 2017  2017-08-16 1048
504 [Chrome] How-To : 크롬에서 일어나는 플래시 충돌 오류 해결하기 2017  2017-08-04 385
503 [IT열쇳말] 쇼단 2017  2017-07-13 604
502 [임베디드] 사물인터넷 향한 디지털 해바라기, 임베디드 운영체제 ③ 2017  2017-06-26 931
501 [임베디드] 사물인터넷 향한 디지털 해바라기, 임베디드 운영체제 ② 2017  2017-06-26 663
500 [임베디드] 사물인터넷 향한 디지털 해바라기, 임베디드 운영체제 ① 2017  2017-06-26 725
499 [인공신경망] (2) 인공신경망 번역 기술 확보 경쟁은 지금부터! 2017  2017-05-29 822


사이트하단 로고, 하단메뉴, 트위터 바로가기

퀵메뉴모음
퀵메뉴열기
퀵메뉴닫기