News Feed

“개발자와 엔지니어 모두 만족” 쿠버네티스를 위한 멀티클러스터 관리 UI 헤드램프

컨텐츠 정보

  • 조회 727

본문

쿠버네티스는 클라우드 네이티브 스택에 매우 중요하지만, 자체 하드웨어에서 사용하기는 여전히 쉽지 않다. 쿠버네티스가 등장한 지 꽤 오랜 시간이 흘렀다는 점을 고려하면 놀라운 일이다. 물론 애저 쿠버네티스 서비스 같은 매니지드 클라우드 서비스를 사용할 수 있지만, 이런 클라우드 서비스뿐만 아니라 개발 시스템 및 온프레미스 클러스터에서도 작동하는 공통 사용자 인터페이스가 필요하다.

쿠버네티스 개발팀은 이 문제를 인식하고 있으며, 사용자 인터페이스 특별 관심 그룹인 SIG-UI가 해결책을 마련하기 위해 노력하고 있다. 이 그룹은 대시보드(Dashboard)와 헤드램프(Headlamp)라는 두 가지 프로젝트를 진행하고 있다. 이 가운데 헤드램프는 쿠버네티스 핵심 프로젝트의 비교적 새로운 부분으로, 최근 CNCF의 샌드박스 프로그램에서 분리됐다. 이 전환은 최근 런던에서 개최된 KubeCon+CloudNativeCon Europe 2025에서 마이크로소프트의 기조 연설에서 발표되었다.

바로 사용할 수 있는 경험을 위한 인터페이스

헤드램프의 대부분은 독일 마이크로소프트의 킨볼크(Kinvolk)팀이 플랫카(Flatcar) 컨테이너에 최적화된 리눅스 및 eBPF 모니터링 툴 인스펙터 가젯(Inspektor Gadget)과 함께 진행한 작업에서 시작됐다. 마이크로소프트의 앤드류 랜덜이 쿠브컨에서 언급한 것처럼, 이 프로젝트는 초보자와 윈도우 관리자, 즉 기본적으로 바로 사용할 수 있는 경험을 기대하는 사람들을 위해 쿠버네티스를 어떻게 제공할지 고민하면서 시작됐다.

쿠버네티스를 설치한 적이 있다면, 미니쿠브(Minikube) 개발 환경에서라도 헬름을 사용해 필요한 확장 프로그램과 애플리케이션을 설치하기 전에 YAML 및 kubectl을 빠르게 익혀야 한다는 것을 알고 있을 것이다. 첫 번째 장애물을 극복하기 위해서는 일종의 기본 제공 경험이 필요하다는 것은 분명하다.

이것이 헤드램프의 목적이다. 몇 초 만에 스탠드얼론 설치에서 실행 중인 쿠버네티스 환경으로 전환하거나 노트북을 들고 실행 중인 쿠버네티스 환경을 지정해 관리 작업을 시작할 수 있다.

헤드램프 설치와 초기 환경 설정

먼저 우분투 24.10이 설치된 PC에 미니쿠브 환경을 설정했다. 컬(Curl)을 사용해 깃허브에서 바이너리 릴리즈 패키지를 다운로드한 다음 설치 스크립트를 실행하는 비교적 간단한 작업이었다. 몇 가지 전제 조건이 필요하다. 시스템에는 컨테이너 환경이 필요하며, 미니쿠브의 쿠버네티스 환경을 사용할 수 있도록 KVM2와 도커를 설치했다. 모든 것을 작동시키기 위해서는 쿠버네티스 명령줄이 필요하기 때문에 시작하기 전에 kubectl을 설치해 두는 것이 좋다.

미니쿠브가 실행되면 헤드램프를 설치할 수 있다. 여러 가지 설치 옵션이 있지만, 전체 데스크톱 애플리케이션을 설치하기 위해 Flatpak을 선택했다. 레드햇 리눅스를 사용하지 않는다면, Flatpak 지원을 추가한 다음 킨볼크 리포지토리에 대한 액세스를 구성해야 한다. 설치가 완료되면 헤드램프 아이콘이 데스크톱 런처에 추가된다.

Flatpak을 통해 설치하고 외부 도구와 함께 헤드램프를 사용하려는 경우, 샌드박스를 통해 액세스를 활성화해야 한다. 이는 단일 명령으로, 헤드램프 문서에서 복사해 붙여넣기 할 수 있다.

또한 윈도우 개발 PC에도 헤드램프를 설치했다. Winget 도구를 사용해 명령줄에서 빠르게 설치할 수 있으며, Chocolatey를 선호하는 경우 헤드램프는 리포지토리에서 사용할 수 있다. Winget과 Chocolatey는 모두 자체 업데이트 메커니즘을 갖추고 있으므로 헤드램프를 최신 상태로 유지할 수 있다.

헤드램프는 데스크톱 애플리케이션일 뿐 아니라, 웹 애플리케이션으로 클러스터에 설치할 수도 있다. 이 마지막 옵션은 중앙 쿠버네티스 플랫폼을 사용하는 팀에 적합하지만, 미니쿠브 같은 개발 도구를 사용하는 경우, 별도의 애플리케이션을 사용하면 헤드램프와 사용자 지정 설정을 매번 다시 설치할 필요 없이 환경을 빠르게 해체하고 재구축할 수 있다.

쿠버네티스에서 헤드램프 사용하기

리눅스에 설치한 헤드램프는 쿠버네티스의 구성 파일을 통해 미니쿠브 설치를 빠르게 감지하고 클러스터를 모니터링하고 관리하기 시작했다. 클러스터 보기는 헤드램프의 핵심이다. 여기에서 관리하는 모든 클러스터를 볼 수 있으며, 네임스페이스별로 필터링할 수도 있다. CPU, 메모리, 사용 중인 노드 및 팟의 수 등 자원 사용량을 한눈에 확인할 수 있다. 클러스터 이벤트를 필터링해 경고만 표시할 수 있으며, 특정 네임스페이스로 파고들어 동작 중인 클러스터에서 문제를 추적할 수 있다.

헤드램프를 사용하면 쿠버네티스 클러스터를 구성하는 다양한 구성 요소를 쉽게 탐색할 수 있다. 다양한 보기를 통해 팟, 배포 등 세부 정보를 확인할 수 있다. 팟 보기는 실행 중인 항목, 각 팟이 사용하는 자원 및 내부 IP 주소를 표시하며, 팟의 사용 기간과 마지막으로 재시작한 시간을 확인할 수 있다. 팟을 클릭하면 해당 컨테이너, 사용 중인 모든 포트 및 환경 변수에 대한 세부 정보를 확인할 수 있다.

다른 옵션을 사용하면 내장 편집기를 통해 서비스 YAML을 빠르게 표시할 수 있으므로 환경을 즉석에서 변경할 수 있다. 컨테이너 내의 로컬 셸과 인터랙션하는 터미널도 있다.

클러스터에 도구가 많을수록 헤드램프가 더 자세한 정보를 표시한다. 프로메테우스(Prometheus)가 설치되어 있으면 내장 플러그인을 사용해 메트릭을 표시한다. 이것이 헤드램프의 장점 중 하나이다. 헤드램프는 확장 가능한 아키텍처를 기반으로 구축되어 커뮤니티에서 계속 성장하는 쿠버네티스 환경에 새로운 기능을 추가할 수 있다. 필요한 기능이 기본 설치에 포함되어 있지 않으면 헤드램프 앱 카탈로그에서 검색한 다음 몇 번의 클릭으로 설치할 수 있다.

애플리케이션 배포 탐색

가장 유용한 기능 중 하나는 헤드램프의 애플리케이션 맵이다. 현재 관리 중인 네임스페이스 목록부터 시작해 개별 팟과 배포로 깊이 탐색할 수 있다. 배포를 보기 시작하면 레플리카셋, 팟, 서비스, 엔드포인트로 구성된 구조를 확인할 수 있다. 맵을 클릭할수록 애플리케이션이 어떻게 구성됐는지, 선택한 컨테이너 상에서 어떻게 구축됐는지 더 자세한 정보를 확인할 수 있다. 여기에서 포트를 포워딩해 코드를 평가하거나, 헬름 같은 도구가 클러스터에 코드를 배포하는 방식을 탐색할 수 있다.

헤드램프는 쿠버네티스 API에 의존하기 때문에 애전 클라우드 전용이 아니며, 대다스 클라우드 서비스 업체의 버전과 일반적인 온프레미스 및 데스크톱 개발 배포판에서 테스트를 거쳤다. 기본 플러그인 모델은 설치를 빠르게 맞춤 지정하고 특정 도구에 대한 링크를 추가할 수 있도록 설계됐다. 플러그인은 헤드램프를 외부 애플리케이션 및 서비스에 연결할 수 있다.

예를 들어 버그 추적기와 통합할 수 있다. 플러그인에 정보 표시가 필요한 경우 헤드램프는 컴포넌트 UI 개발 도구인 스토리북(Storybook)을 사용해 자체 기능 내에서 또는 자체 기능과 함께 작동하는 새로운 시각적 컴포넌트를 만들 수 있도록 지원한다. 헤드램프 설명서에는 코드를 시각적으로 일관성 있게 만드는 방법에 대한 팁이 있다.

헤드램프는 아직 초기 단계의 프로젝트로, 일부 미완성된 부분이 있다. 원격 쿠버네티스 설치에서 몇 가지 문제가 발생했다. 올바른 인증 도구를 구현하려면 필자보다 더 많은 플랫폼 엔지니어링 경험이 필요했다. 키클록(Keycloak)을 OIDC(OpenID Connect) 공급자로 설정하는 데는 약간의 진전이 있었지만, 그 이후에는 진행이 막혔다. 대안 OIDC 도구인 Dex를 사용하면 원격 인증 플랫폼에 더 쉽게 접근할 수 있을 것으로 보인다.

K8s에 주목

로컬 개발 쿠버네티스 시스템에서 헤드램프를 사용하는 것은 훨씬 쉬웠고, 금방 클라우드 네이티브 개발 스택의 필수 구성 요소가 될 가능성이 높다. 그러나 현재 대규모 배포의 경우 올바른 구성을 구현하려면 상당한 쿠버네티스 플랫폼 경험이 필요하다. 헤드램프는 이제 막 쿠버네티스 프로젝트의 일부가 되었기 때문에, 복잡성을 해소하는 것이 최우선 과제가 될 것이며, 이를 통해 적절한 역할과 권한을 가진 쿠버네티스 인스턴스에 더 쉽게 연결하고 작업을 시작할 수 있게 될 것이다.

헤드램프에는 매력이 많다. 개발자와 플랫폼 엔지니어에게 쿠버네티스 환경의 복잡성을 드러내면서, 하나뿐만 아니라 여러 클러스터를 탐색할 수 있도록 도와주는 깔끔하고 이해하기 쉬운 사용자 인터페이스를 제공한다. 물론, 스탠드얼론 애플리케이션에서 멀티클러스터를 지원하는 것이 가장 큰 장점이며, 쿠버네티스의 다른 UI인 대시보드보다 헤드램프를 사용하는 것이 더 바람직한 이유이기도 하다.

앤드류 랜덜은 쿠브컨에서 밝힌 이 프로젝트를 목표를 생각하면, 헤드램프는 정말로 모두가 바로 사용할 수 있는 도구일까? 아직은 아니지만, 매우 유망한 도구다. 오히려 시스템 센터 같은 고전적인 윈도우 관리 도구를 연상시키는 데, 이는 좋은 점이라고 할 수 있다.
dl-itworldkorea@foundryco.com

관련자료

댓글 0
등록된 댓글이 없습니다.