Skip to main content
Glama

agentctl

K8s 네이티브 에이전트/모델 워크로드 operator로, SAM 메시 등록 및 MCP 운영 평면을 제공합니다. 프로세스 생성 방식 오케스트레이터(vllm-orchestrator)를 선언적 K8s 리소스로 대체합니다. 모든 작업은 LangGraph/LangChain 워크플로우 구성용 MCP 도구로 노출됩니다.

아키텍처

LangGraph agent ──MCP──▶ agentctl ops plane (:8091)
                              │
                    ┌─────────┼─────────┐
                    ▼         ▼         ▼
              workload_*   fleet_*   sam_*
              tools        tools     tools
                    │         │         │
                    ▼         ▼         ▼
              K8s API    K8s API   SAM node
              (CRDs)    (pods)    (discovery)

Related MCP server: k8s-aiops

설치

pip install agentctl
# or
uv pip install agentctl

설치 (클러스터)

kubectl apply -f https://github.com/moreWax/agentctl/releases/latest/download/install.yaml

이 설치는 agentctl-system에 CRD, operator, MCP 운영 평면을 설치합니다. 운영 평면은 클러스터 내에서 http://agentctl-mcp.agentctl-system.svc.cluster.local:8091/mcp (stateless Streamable HTTP)로 접근할 수 있습니다.

사용법

예제 워크로드 배포

kubectl apply -f examples/qwen3.8-27b.yaml        # Qwen3.8-27B, TP2 on 2 GPUs
kubectl apply -f examples/qwen3.8-27b-fp8.yaml    # FP8 variant, single GPU
kubectl apply -f examples/litellm-gateway.yaml    # LiteLLM proxy gateway

소스에서 (개발)

uv venv && uv pip install -e ".[dev]"
kubectl apply -f crd/agentctl-crd.yaml
agentctl serve          # operator (kopf controllers)
agentctl mcp --port 8091  # MCP ops-plane server (stateless Streamable HTTP)

모델 워크로드 배포

kubectl apply -f examples/qwen3.8-27b.yaml        # Qwen3.8-27B, TP2 on 2 GPUs
kubectl apply -f examples/qwen3.8-27b-fp8.yaml    # FP8 variant, single GPU
kubectl apply -f examples/litellm-gateway.yaml     # LiteLLM proxy gateway

LiteLLM 게이트웨이는 OpenAI 호환 요청을 vLLM 백엔드로 라우팅합니다. 에이전트를 http://litellm-gateway:4000/v1로 지정하고 qwen3.8-27b 또는 qwen3.8-27b-fp8 같은 모델 이름을 사용하세요.

MCP 도구 (LangGraph / 에이전트 구성용)

20개 도구 모두 상태 비저장이며, 구조화된 JSON을 반환하고, 파괴적 작업은 승인 플래그를 통해서만 수행됩니다.

Fleet 조회

도구

설명

fleet_status

집계 보기: 단계별 워크로드, GPU 총계

fleet_gpus

노드별 GPU 용량 / 할당 / 여유 + 소비자

fleet_pods

파드별 세부 정보: 노드, 부팅 단계, GPU, 재시작

footprint_check

드라이런: N개 GPU를 수용할 수 있는 노드 — 부팅 전 호출

health_check

서비스별 엔드포인트 준비 상태

sam_services

SAM 메시 서비스 검색

워크로드 수명 주기

도구

설명

workload_list

단계, GPU, 핀 상태와 함께 워크로드 나열

workload_status

파드별 부팅 단계를 포함한 전체 세부 정보

workload_logs

파드별 최근 컨테이너 로그

workload_scale

복제본 크기 조정 (0 = 대기; 핀된 워크로드는 force=true가 아니면 축소 거부)

workload_delete

워크로드 삭제 — approved=true 필요

deploy_model

모델 워크로드 생성 (멱등)

undeploy_model

모델 워크로드 제거

kill_pod

멈춘 파드 강제 삭제 — approved=true 필요; Deployment가 다시 생성

model_pin / model_unpin

핀은 축소를 방지합니다 (모델 상주 상태 유지)

model_sleep / model_wake

일시 중지/재개. FMA 워크로드(sleepWake.enabled): llm-d fast-model-actuation을 통한 초 단위 일시 중지, GPU는 다른 모델에 해제 — docs/fma.md 참조. 네이티브 워크로드: 전체 중지 / 콜드 부팅

부팅 오케스트레이션

도구

설명

boot_model

배포 + 선택적 서버 측 대기(wait_seconds); outcome: ready/failed/timeout 반환

boot_status

부팅 진행 상황 폴링: 파드 단계 + vLLM 로그 마커(LoadingWeights → SizingKVCache → CapturingGraphs → Serving) + 백분율

에이전트 부팅 대기 패턴 (LangGraph 루프):

boot_model(model_id="qwen38-27b", image="vllm/vllm-openai:v0.18.0", gpu_count=2)
while True:
    s = boot_status(model_id="qwen38-27b")
    if s["ready"]:  break          # proceed to inference
    if s["failed"]: ...            # inspect s["pods"], kill_pod + retry
    time.sleep(10)                 # poll again

개발

uv venv && uv pip install -e ".[dev]"
pytest tests/ -q

라이선스

MIT

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers