소개
Freelens는 Kubernetes 클러스터를 시각적으로 관리하기 위한 무료 오픈소스 IDE입니다. Freelens Authors가 개발한 이 애플리케이션은 macOS, Windows, Linux에서 동작하며, 복잡한 쿠버네티스 운영을 직관적인 인터페이스로 간소화하는 것을 목표로 합니다. 클러스터 리소스 조회, 포드 로그 확인, 컨테이너 상호작용 등 일상적인 쿠버네티스 작업을 데스크톱 환경에서 직접 처리할 수 있도록 돕습니다.
상세정보
클러스터 및 노드 관리
- 클러스터 로딩 및 이벤트 조회, 사이드바 페이지 탐색
- Nodes 목록에서 인스턴스 유형, 노드 그룹, capacity, pods 컬럼 및 리소스 요청 오버레이 확인
- SOCKS5 프록시를 통한 exec, attach, port-forward 요청 지원
- kubectl.kubernetes.io/default-container 어노테이션을 존중하여 지정된 컨테이너를 대상으로 동작
포드 및 컨테이너 작업
- 포드 목록 표시 및 선택
- 선택한 포드의 실시간 로그 조회 및 로그 파일 다운로드
- Attach, Pod Shell, Pod Logs 액션을 통한 컨테이너 상호작용
- 노드 및 포드 메트릭 확인
리소스 및 정책 관리
- ValidatingAdmissionPolicy 및 ValidatingAdmissionPolicyBinding 리소스 지원
- events.k8s.io/v1 API 이벤트의 소스 및 반복 횟수 표시
- Prometheus/Thanos 메트릭 쿼리 및 실패한 쿼리의 서버 오류 메시지 로깅
확장 기능
- Open Lens용으로 작성된 많은 확장이 이미 Freelens용으로 변환되어 사용 가능
- 누구나 자체 확장 개발 및 제안 가능
Windows 설치
- WinGet 사용:
winget install Freelensapp.Freelens(–silent, –scope user, –scope machine 옵션 지원) - Scoop 사용:
scoop bucket add extras후scoop install freelens - EXE(NSIS) 또는 MSI 인스톨러 직접 다운로드, Portable EXE는 설치 없이 실행 가능
macOS 설치
- PKG 또는 DMG 패키지를 림스 페이지에서 내려받아 설치
- Homebrew 사용:
brew install --cask freelens
Linux 설치
- DEB, RPM, AppImage 중 시스템에 맞는 패키지 다운로드
- AppImage 실행 시
sudo apt install libfuse2 zlib1g-dev필요 - Flatpak:
flatpak install flathub app.freelens.Freelens후flatpak run app.freelens.Freelens - Snap:
snap install freelens --classic - APT 저장소 추가 후 설치, AUR의 freelens-bin 패키지 사용 가능
기본 사용 흐름
- Freelens를 실행하고 Kubernetes 클러스터에 연결
- 좌측 포드 목록에서 원하는 포드를 선택
- 하단 터미널 창에서 해당 포드의 로그를 실시간으로 확인
- 필요 시 Download 버튼을 클릭하여 로그 파일 저장
활용 예시
Freelens는 다음과 같은 쿠버네티스 운영 시나리오에서 활용할 수 있습니다.
- 운영 클러스터의 포드 로그를 실시간으로 모니터링하고 파일로 보관
- 다중 클러스터 환경에서 사이드바를 통해 노드, 이벤트, 메트릭 정보를 한 화면에서 비교
- kubectl 명령을 직접 입력하지 않고 Attach, Pod Shell, Pod Logs 액션으로 컨테이너에 접근
- ValidatingAdmissionPolicy 및 관련 바인딩 리소스를 UI에서 직접 조회 및 관리
- SOCKS5 프록시 뒤에 있는 클라우스트에서 exec, attach, port-forward 기능 사용
제한 및 라이선스
Freelens는 MIT 라이선스 하에 배포되는 오픈소스 소프트웨어입니다. 쿠버네티스 1.22 미만 클러스터는 번들된 kubectl로 폴백되지만 정상 동작하지 않을 수 있으며, Preferences에서 다른 kubectl을 지정할 수 있습니다. Linux AppImage는 libz.so 및 libfuse.so.2가 필요하며, MSI 패키지의 버전 번호는 마지막 4번째 자리가 항상 0으로 고정되는 패키지 형식적 제한이 있습니다.
화면으로 보는 주요 기능
포드 목록 및 로그 보기

포드 목록이 표시된 화면에서 'alertmanager-kube-prometheus-sts' 포드를 선택하고, 하단 터미널 창에서 해당 포드의 로그를 확인하고 있다. 로그는 JSON 형식의 메시지로 구성되어 있으며, 'debug' 레벨과 'http.logging.go:21' 호출을 포함하고 있다. 터미널 창 상단에는 'Pod podinfo-6f4579f7f9-m2mzl' 탭이 열려 있고, 'podinfo' 네임스페이스와 'ReplicaSet podinfo-6f4579f7f9-m2mzl' 컨테이너를 선택한 상태이다. 로그의 시작 날짜는 '07/08/2024, 21:19:26'이며, 'Show timestamps'와 'Show previous terminated container' 옵션은 비활성화되어 있다. 오른쪽 하단에는 'Download' 버튼이 있다.
포드 로그 탐색

포드 목록 화면에서 'alertmanager-kube-prometheus-sts' 포드가 선택된 상태이며, 하단 터미널 창에서 'podinfo-6f4579f7f9-m2mzl' 포드의 로그를 확인하고 있다. 로그는 JSON 형식의 메시지로 구성되어 있으며, 'debug' 레벨과 'http.logging.go:21' 호출을 포함하고 있다. 터미널 창 상단에는 'Pod podinfo-6f4579f7f9-m2mzl' 탭이 열려 있고, 'podinfo' 네임스페이스와 'ReplicaSet podinfo-6f4579f7f9-m2mzl' 컨테이너를 선택한 상태이다. 로그의 시작 날짜는 '07/08/2024, 21:19:26'이며, 'Show timestamps'와 'Show previous terminated container' 옵션은 비활성화되어 있다. 오른쪽 하단에는 'Download' 버튼이 있다.
시스템 요구사항
Array


