k8s-pilot: 쿠버네티스 다중 클러스터를 위한 중앙 제어 도구

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 패키지 관리자 설치 방법:

 
bash
# macOS용
brew install uv

# Linux용
curl -LsSf https://astral.sh/uv/install.sh | sh

설치 과정

 
bash
# 저장소 클론
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 서버를 실행하기 위한 설정:

json
{
  "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을 사용해야 할까요?

  1. 중앙 집중화된 관리: 여러 클러스터를 하나의 인터페이스에서 관리
  2. 시간 절약: 복잡한 쿠버네티스 명령어 대신 직관적인 인터페이스 사용
  3. 자동화 가능성: MCP 지원으로 AI 기반 자동화 가능
  4. 일관된 작업 방식: 모든 클러스터에 동일한 방식으로 작업 수행 가능
  5. 오류 감소: 컨텍스트 전환 실수 감소

🔮 향후 전망

k8s-pilot은 쿠버네티스 다중 클러스터 관리 방식에 혁신을 가져올 수 있는 잠재력을 가지고 있습니다. 특히 AI와의 통합을 통해 자연어로 복잡한 쿠버네티스 작업을 지시하고 관리할 수 있는 미래를 열어가고 있습니다.

MCP 프로토콜을 통한 Claude와의 통합은 단순한 명령어 실행 이상의 의미를 갖습니다. 이는 AI가 컨텍스트를 이해하고 상황에 맞는 최적의 작업을 제안하거나 실행할 수 있는 기반을 마련합니다.

🔚 마무리

k8s-pilot은 오픈소스 프로젝트로, MIT 라이선스 하에 제공됩니다. 쿠버네티스 다중 클러스터 환경에서 작업하는 모든 DevOps 엔지니어와 SRE(Site Reliability Engineer)에게 큰 도움이 될 것입니다.

이 프로젝트에 관심이 있으시다면 GitHub 저장소(https://github.com/bourbonkk/k8s-pilot)를 방문하여 스타를 눌러주시고, 기여도 환영합니다!

쿠버네티스의 복잡성을 단순화하고 다중 클러스터 관리를 효율화하는 여정에 k8s-pilot과 함께해보세요. 여러분의 쿠버네티스 비행을 안전하고 효율적으로 만들어 드립니다. ✈️