kubectl-ai - Kubernetes용 AI 어시스턴트 치트시트
kubectl-ai는 Kubernetes용 AI 기반 어시스턴트 (Google Cloud)로 자연 언어 요청을 해석하고 kubectl 작업으로 변환합니다. 실행 중인 것을 설명하고, 매니페스트를 생성하고, 실패한 pod를 진단하고, 다단계 조사를 연결할 수 있습니다 — 대화형 에이전트 또는 일회성 명령어로 실행합니다. 모델 불가지론적입니다: Gemini, OpenAI, 또는 Ollama를 통한 로컬 모델, 클러스터 세부사항을 호스팅 API로 보내고 싶지 않다면 중요합니다.
에이전트는 클러스터 작업을 실행할 수 있습니다. 파괴적인 것을 승인하기 전에 제안을 검토하고, 탐색할 때 읽기 전용 컨텍스트를 선호합니다.
설치
모델 설정
| 백엔드 | 설정 |
|---|
| Gemini | export GEMINI_API_KEY=... (기본값) |
| OpenAI | export OPENAI_API_KEY=... 및 --llm-provider=openai |
| Ollama (로컬) | --llm-provider=ollama --model=llama3.1 |
| Azure OpenAI | 제공자 + 엔드포인트 환경 변수 |
| Grok / 기타 | 지원되는 제공자 플래그 |
# 완전히 로컬 — 클러스터 데이터가 기계를 떠나지 않음
kubectl-ai --llm-provider=ollama --model=gemma3:12b
사용 모드
| 모드 | 명령어 |
|---|
| 대화형 | kubectl-ai (채팅 세션) |
| 일회성 | kubectl-ai "list pods not in Running state" |
| 파이프된 입력 | cat error.log | kubectl-ai "what is failing here?" |
| 플러그인으로 | kubectl ai "scale the api deployment to 5" |
잘 처리할 항목
| 작업 | 예제 프롬프트 |
|---|
| 검사 | ”which pods restarted in the last hour?” |
| 진단 | ”why is the checkout deployment not ready?” |
| 매니페스트 생성 | ”create a deployment for nginx with 3 replicas and a service” |
| 설명 | ”explain what this CRD does” |
| 다단계 심사 | ”find failing pods and show their recent logs” |
| 리소스 수학 | ”which namespaces use the most CPU requests?” |
대화형 세션 명령어
| 명령어 | 수행 |
|---|
models | 사용 가능한 모델 나열 |
model <name> | 세션 중간에 모델 전환 |
clear | 대화 재설정 |
exit / quit | 세션 떠나기 |
| 후속 | 컨텍스트에서 요청: “now show me its logs” |
안전 제어
| 제어 | 목적 |
|---|
| 확인 프롬프트 | 실행 전 명령어 승인 |
--quiet | 비대화형 (스크립팅; 신중히 사용) |
| 읽기 전용 kubeconfig 컨텍스트 | 가장 강력한 가드레일 |
| 네임스페이스 범위 | 피해 반경 제한 |
| 생성된 YAML 검토 | kubectl apply 전에 |
가장 안정적인 안전 조치는 플래그가 아닙니다 — 그것은 자격증명이 프로덕션을 변경할 수 없는 컨텍스트에 도구를 가리킵니다.
MCP 통합
kubectl-ai는 MCP 서버 또는 클라이언트로 작동하여 Kubernetes 작업을 다른 AI 클라이언트에 도구로 노출하거나 (또는 세션 중 외부 MCP 도구를 사용).
| 모드 | 플래그 |
|---|
| MCP 서버 | --mcp-server |
| MCP 클라이언트 | 외부 MCP 서버 설정 |
실제 워크플로우
# 실패한 서비스 심사, 로컬 호스팅 모델
kubectl-ai --llm-provider=ollama --model=llama3.1
> why are pods in the payments namespace crashlooping?
> show me the last 50 log lines from the worst offender
> what would you change in the resource limits?
출력을 지식 있는 제안으로 취급합니다. 절대권이 아닙니다 — 인용하는 기본 kubectl 출력을 검증합니다.
kubectl-ai vs 관련 도구
| 측면 | kubectl-ai | k9s | kubectl + 문서 |
|---|
| 인터페이스 | 자연 언어 | TUI | 수동 명령어 |
| 진단 도움 | 예 (추론) | 시각 검사 | 자신의 지식 |
| 로컬 모델 옵션 | 예 (Ollama) | N/A | N/A |
| 최적 대상 | 설명/진단, YAML 드래프팅 | 빠른 클러스터 네비게이션 | 정밀 제어 |
k9s 네비게이션 및 kubectl 정확한 작업을 보완합니다.
리소스