Kubernetes MCP 서버 - 프로젝트 상세 정보
프로젝트 개요
Kubernetes MCP 서버는 Kubernetes 클러스터 관리를 위해 특별히 설계된 모델 콘텐츠 프로토콜(Model Content Protocol) 서버입니다. AI 에이전트(예: Claude)가 자연어 명령을 통해 Kubernetes 클러스터에 연결하고 관리할 수 있도록 하여 컨테이너 오케스트레이션 및 클러스터 운영의 복잡성을 크게 줄입니다.
프로젝트 주소: https://github.com/Flux159/mcp-server-kubernetes
핵심 기능
🎯 클러스터 연결 및 관리
- 현재 kubectl 컨텍스트 구성의 클러스터에 자동 연결
- 다양한 Kubernetes 환경 지원 (minikube, Rancher Desktop, GKE 등)
- 기존 kubeconfig 구성과 완전 호환
📦 Pod 및 배포 관리
- Pod 작업: Pod 생성, 설명, 삭제
- 배포 관리: 모든 배포 목록 표시, 복제본 수 업데이트
- 사용자 정의 구성: 사용자 정의 Pod 및 배포 구성 생성 지원
- 로그 보기: Pod 로그를 가져와 디버깅 (Pod, 배포, 작업 및 레이블 선택기 지원)
🌐 서비스 및 네트워크 관리
- 서비스 작업: 서비스 생성, 설명, 삭제, 업데이트
- 포트 포워딩: Pod 또는 서비스의 포트 포워딩 지원
- 네트워크 구성: 완전한 Kubernetes 네트워크 관리 지원
🗂️ 리소스 및 구성 관리
- 네임스페이스: 모든 네임스페이스 목록 표시, 새 네임스페이스 생성
- ConfigMap: 구성 맵 생성, 가져오기, 업데이트, 삭제
- 노드 관리: 클러스터 노드 목록 표시 및 설명
- 예약 작업: CronJob 생성, 목록 표시 및 설명
⚙️ Helm 통합 지원
- 차트 설치: 사용자 정의 값을 사용하여 Helm 차트 설치
- 버전 관리: 버전 사양 및 사용자 정의 저장소 지원
- 릴리스 관리: 기존 릴리스 제거 및 업그레이드
- 네임스페이스 지원: 완전한 네임스페이스 격리
🔧 고급 기능
- kubectl 지원: kubectl explain 및 kubectl api-resources 명령
- 이벤트 모니터링: 클러스터 이벤트 정보 가져오기
- 비파괴 모드: 읽기 및 생성/업데이트 작업만 허용하는 안전 모드
- 실시간 모니터링: 클러스터 상태의 실시간 보기 지원
시스템 아키텍처
아키텍처 다이어그램
Client (Claude/AI Agent)
↓
StdioTransport (통신 전송 계층)
↓
MCP Server (프로토콜 처리)
↓
Request Handler (요청 라우팅)
↓
KubernetesManager (K8s 관리자)
↓
Kubernetes API (클러스터 API)
요청 흐름
- 클라이언트 요청: AI 에이전트가 STDIO를 통해 요청 전송
- 전송 계층: StdioTransport가 요청을 MCP 서버로 전달
- 라우팅 처리: 서버가 요청을 해당 처리기로 라우팅
- 도구 실행: KubernetesManager가 특정 K8s 작업 실행
- API 호출: Kubernetes API와 상호 작용
- 응답 반환: 처리 결과가 계층별로 클라이언트에 반환
설치 및 구성
환경 요구 사항
- kubectl: PATH에 설치 및 구성됨
- kubeconfig: 유효한 kubeconfig 파일 및 컨텍스트 구성
- Kubernetes 클러스터: 액세스 가능한 클러스터 (minikube, GKE, EKS 등)
- Helm v3: 선택 사항, Helm 기능 사용 시 필요
- Node.js: 런타임 환경
빠른 설치
NPM을 통한 설치 (권장)
# 전역 설치
npm install -g mcp-server-kubernetes
# 또는 npx를 사용하여 직접 실행
npx mcp-server-kubernetes
Claude Desktop 통합
claude_desktop_config.json
파일 편집:
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": ["mcp-server-kubernetes"]
}
}
}
연결 확인
설치 완료 후 다음을 수행할 수 있습니다.
- Claude에게 Pod 목록을 요청
- 테스트 배포 생성
- 오류가 발생하면 터미널에서
kubectl get pods
를 실행하여 연결 확인
개발 환경 구축
로컬 개발
# 저장소 복제
git clone https://github.com/Flux159/mcp-server-kubernetes.git
cd mcp-server-kubernetes
# 종속성 설치 (bun 필요)
bun install
# 개발 모드 시작 (파일 변경 감지)
bun run dev
# 단위 테스트 실행
bun run test
# 프로젝트 빌드
bun run build
사용 시나리오 및 예제
🚀 일상적인 운영 시나리오
- "모든 Pod의 상태를 나열해 줘" - 클러스터 상태를 빠르게 확인
- "nginx 배포를 3개의 복제본으로 만들어 줘" - 애플리케이션을 빠르게 배포
- "default 네임스페이스에서 오류가 발생한 Pod 로그를 확인해 줘" - 문제 해결
- "애플리케이션 포트를 로컬 8080으로 포워딩해 줘" - 로컬 디버깅
📊 모니터링 및 디버깅
- "클러스터의 모든 이벤트를 표시해 줘" - 클러스터 활동 모니터링
- "node-1 노드의 자세한 정보를 설명해 줘" - 리소스 분석
- "최근 CronJob 실행 상황을 확인해 줘" - 예약 작업 모니터링
🛠️ 애플리케이션 배포
- "Helm을 사용하여 Redis 차트를 설치해 줘" - 미들웨어를 빠르게 배포
- "web-app 배포의 복제본 수를 5로 업데이트해 줘" - 확장 작업
- "프로덕션 환경의 ConfigMap을 만들어 줘" - 구성 관리
고급 구성
비파괴 모드
환경 변수를 설정하여 안전 모드 활성화:
export ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS=true
이 모드에서는 읽기 및 생성/업데이트 작업만 허용하고 삭제 작업은 금지됩니다.
SSE 전송 프로토콜
서버 푸시 이벤트 전송 프로토콜을 지원합니다. 자세한 구성은 프로젝트의 ADVANCED_README.md
를 참조하십시오.
클러스터 인증
다양한 Kubernetes 인증 방식을 지원합니다.
- 인증서 인증
- 토큰 인증
- OIDC 인증
- 클라우드 공급자 IAM 통합
기술 스택 및 종속성
핵심 기술
- 런타임: Node.js + Bun
- 프로토콜: Model Content Protocol (MCP)
- Kubernetes 클라이언트: Official Kubernetes JavaScript Client
- 전송 계층: STDIO Transport
- 패키지 관리: Helm v3
주요 종속성
@kubernetes/client-node
: Kubernetes 공식 JS 클라이언트
@modelcontextprotocol/sdk
: MCP 프로토콜 SDK
commander
: 명령줄 매개변수 구문 분석
yaml
: YAML 파일 처리
관련 프로젝트 및 생태계
MCP 생태계
- mcp-chat: MCP 서버의 CLI 채팅 클라이언트
- MCP Inspector: MCP 프로토콜 디버깅 도구
- Claude Desktop: MCP를 지원하는 AI 도우미 데스크톱 애플리케이션
Kubernetes 도구 체인
- kubectl: 공식 명령줄 도구
- Helm: 패키지 관리자
- minikube: 로컬 개발 환경
- Rancher Desktop: 데스크톱 Kubernetes 환경
응용 전망 및 가치
🎯 운영 효율성 향상
자연어로 Kubernetes 클러스터를 조작하여 학습 곡선을 낮추고 운영 효율성을 향상시킵니다. 초보자도 복잡한 클러스터 관리 작업을 빠르게 시작할 수 있습니다.
🤖 지능형 운영
AI 에이전트의 지능형 분석 기능과 결합하여 다음을 구현할 수 있습니다.
- 자동 오류 진단
- 지능형 리소스 추천
- 예측 유지 관리
- 자동화된 배포 최적화
🔗 원활한 통합
기존 Kubernetes 생태계와 완전히 호환되므로 기존 워크플로를 변경할 필요 없이 AI 지원 운영을 점진적으로 도입할 수 있습니다.
📈 미래 발전 방향
- 더 많은 Kubernetes 리소스 유형 지원
- 더 많은 클라우드 네이티브 도구 통합
- 보안 및 권한 제어 강화
- 다중 클러스터 관리 지원
- 그래픽 사용자 인터페이스
결론
Kubernetes MCP 서버 프로젝트는 AI와 클라우드 네이티브 기술의 결합을 나타내는 혁신적인 시도입니다. 자연어 인터페이스를 통해 Kubernetes 클러스터 관리의 복잡성을 단순화하여 운영자가 컨테이너화된 애플리케이션을 보다 직관적이고 효율적으로 관리할 수 있도록 합니다.
Kubernetes 초보자이든 숙련된 운영 전문가이든 이 도구는 작업 효율성을 크게 향상시킬 수 있습니다. Claude와 같은 AI 도우미와의 통합을 통해 지능형 운영을 위한 새로운 가능성을 열어주며 현대 DevOps 도구 체인의 강력한 추가 기능입니다.
클라우드 네이티브 기술의 지속적인 발전과 AI 기술의 지속적인 발전으로 인해 이러한 유형의 도구가 미래의 IT 운영에서 점점 더 중요한 역할을 할 것이라고 믿습니다.