2025. 4. 28. 21:08 ㆍ개발 이야기/오픈소스
안녕하세요, 오늘은 쿠버네티스 다중 클러스터 관리를 획기적으로 개선해주는 오픈소스 도구인 k8s-pilot을 소개해드리려고 합니다. 이 도구는 여러 쿠버네티스 클러스터를 중앙에서 효율적으로 관리할 수 있게 해주는 경량화된 중앙 제어 서버입니다.
🔍 k8s-pilot이란?
k8s-pilot은 말 그대로 쿠버네티스 클러스터들의 파일럿(조종사) 역할을 합니다. 여러 쿠버네티스 클러스터를 동시에 관리해야 하는 엔지니어와 DevOps팀에게 단일 접점(single point of control)을 제공하여 작업 효율성을 크게 향상시켜줍니다.
이 도구는 MCP(Model Context Protocol)를 기반으로 하고 있어, Claude AI와 같은 고급 모델과도 원활하게 연동됩니다. 이는 AI 기반의 클러스터 관리 자동화로 나아가는 첫 걸음이라고 볼 수 있습니다.
✨ 주요 기능
다중 클러스터 관리
쿠버네티스 환경을 운영하다 보면 다양한 이유로 여러 클러스터를 관리해야 하는 상황이 발생합니다. 개발, 스테이징, 프로덕션 환경을 분리하거나, 지역별로 클러스터를 분산시키는 경우가 대표적입니다. k8s-pilot은 이러한 다중 클러스터 환경에서:
- 여러 쿠버네티스 클러스터 간 원활한 전환 지원
- 컨텍스트 인식 기반 작업 수행
- MCP 프롬프트를 통한 간편한 클러스터 전환
리소스 관리
k8s-pilot은 대부분의 쿠버네티스 리소스에 대한 CRUD(생성, 조회, 업데이트, 삭제) 작업을 지원합니다:
- Deployments, Services, Pods
- ConfigMaps, Secrets, Ingresses
- StatefulSets, DaemonSets
- Roles, ClusterRoles
- PersistentVolumes 및 PersistentVolumeClaims
네임스페이스 작업
네임스페이스는 쿠버네티스에서 리소스를 논리적으로 분리하는 중요한 기능입니다. k8s-pilot은 다음과 같은 네임스페이스 관련 작업을 지원합니다:
- 네임스페이스 생성 및 삭제
- 네임스페이스 내 모든 리소스 목록 조회
- 라벨 및 리소스 할당량 관리
노드 관리
클러스터의 물리적 또는 가상 컴퓨팅 리소스인 노드를 효과적으로 관리할 수 있습니다:
- 노드 세부 정보 및 상태 확인
- 노드 cordon/uncordon 작업
- 노드 라벨 및 taint 관리
- 노드별 파드 목록 조회
🛠️ 설치 및 사용 방법
사전 요구사항
- Python 3.13 이상
- uv 패키지 관리자
- 쿠버네티스 클러스터 접근 권한 (~/.kube/config 또는 in-cluster 설정)
uv 패키지 관리자 설치 방법:
# macOS용
brew install uv
# Linux용
curl -LsSf https://astral.sh/uv/install.sh | sh
설치 과정
# 저장소 클론
git clone https://github.com/bourbonkk/k8s-pilot.git
cd k8s-pilot
# uv + MCP로 실행
uv run --with mcp[cli] mcp run k8s_pilot.py
Claude Desktop과 함께 사용하기
Claude Desktop에서 k8s_pilot MCP 서버를 실행하기 위한 설정:
{
"mcpServers": {
"k8s_pilot": {
"command": "uv",
"args": [
"--directory",
"<저장소-경로>/k8s-pilot",
"run",
"--with",
"mcp[cli]",
"mcp",
"run",
"k8s_pilot.py"
]
}
}
}
<저장소-경로>를 실제 저장소를 클론한 디렉토리로 변경해주세요.
💡 활용 사례
다음은 k8s-pilot을 사용하여 pypy 네임스페이스에 nginx 이미지를 사용하는 Deployment를 생성하고, 이에 연결되는 Service를 생성하는 시나리오입니다:
이런 방식으로 Claude나 다른 AI 기반 인터페이스를 통해 자연어로 쿠버네티스 리소스를 관리할 수 있습니다.
다음은 에러가 있는 파드를 k8s-pilot을 통해 찾아내는 시나리오입니다.
마지막으로 r
eplicas를 조정하는 시나리오입니다.
🌟 왜 k8s-pilot을 사용해야 할까요?
- 중앙 집중화된 관리: 여러 클러스터를 하나의 인터페이스에서 관리
- 시간 절약: 복잡한 쿠버네티스 명령어 대신 직관적인 인터페이스 사용
- 자동화 가능성: MCP 지원으로 AI 기반 자동화 가능
- 일관된 작업 방식: 모든 클러스터에 동일한 방식으로 작업 수행 가능
- 오류 감소: 컨텍스트 전환 실수 감소
🔮 향후 전망
k8s-pilot은 쿠버네티스 다중 클러스터 관리 방식에 혁신을 가져올 수 있는 잠재력을 가지고 있습니다. 특히 AI와의 통합을 통해 자연어로 복잡한 쿠버네티스 작업을 지시하고 관리할 수 있는 미래를 열어가고 있습니다.
MCP 프로토콜을 통한 Claude와의 통합은 단순한 명령어 실행 이상의 의미를 갖습니다. 이는 AI가 컨텍스트를 이해하고 상황에 맞는 최적의 작업을 제안하거나 실행할 수 있는 기반을 마련합니다.
🔚 마무리
k8s-pilot은 오픈소스 프로젝트로, MIT 라이선스 하에 제공됩니다. 쿠버네티스 다중 클러스터 환경에서 작업하는 모든 DevOps 엔지니어와 SRE(Site Reliability Engineer)에게 큰 도움이 될 것입니다.
이 프로젝트에 관심이 있으시다면 GitHub 저장소(https://github.com/bourbonkk/k8s-pilot)를 방문하여 스타를 눌러주시고, 기여도 환영합니다!
쿠버네티스의 복잡성을 단순화하고 다중 클러스터 관리를 효율화하는 여정에 k8s-pilot과 함께해보세요. 여러분의 쿠버네티스 비행을 안전하고 효율적으로 만들어 드립니다. ✈️
'개발 이야기 > 오픈소스' 카테고리의 다른 글
GraphQL: REST를 넘어서는 데이터 쿼리 언어 (3) | 2024.12.05 |
---|---|
오픈소스 Clymene와 Druid를 이용한 k8s 모니터링 시스템 구축 (0) | 2023.02.05 |
오픈소스를 이용한 다중 k8s 클러스터 환경의 Node/POD 리소스 사용량과 로그 모니터링 (1) | 2022.08.17 |
# 오픈소스를 이용한 다중 k8s 클러스터 환경의 모니터링 시스템 구축 (0) | 2022.08.03 |
# 오픈소스 OpenTracing - Zipkin (0) | 2022.03.20 |