k8m
k8m은 AI 기반의 Mini Kubernetes AI Dashboard 경량 콘솔 도구로, 클러스터 관리를 간소화하기 위해 설계되었습니다. AMIS를 기반으로 구축되었으며, kom을 Kubernetes API 클라이언트로 사용합니다. k8m은 Qwen2.5-Coder-7B를 내장하고 있으며, deepseek-ai/DeepSeek-R1-Distill-Qwen-7B 모델과의 상호작용 기능을 지원합니다. 또한, 자체적인 프라이빗 대규모 모델(ollama 포함)을 연결할 수 있습니다.
빠른 체험
본 프로젝트는 cnb 온라인 접속 주소를 제공합니다 k8m
이 프로젝트를 fork한 후,
저장소 오른쪽 상단의 🛫이륙(起飞) 버튼을 클릭하고,
클라우드 IDE를 선택한 다음,
터미널로 진입하여
cd letsfly/justforfun/k8m && docker-compose up -d && docker-compose ps를 입력합니다.포트로 진입합니다 (터미널 탭 페이지 오른쪽).
새 포트 포워딩을 생성하고 8888을 입력한 후 확인을 누릅니다.
생성된 포워딩 주소를 클릭하여 k8m 로그인 페이지를 엽니다.
사용자 이름과 비밀번호를 입력합니다: k8m k8m.
🛫

문서
주요 특징
미니멀리즘 설계: 모든 기능이 단일 실행 파일에 통합되어 있어 배포가 편리하고 사용이 간편합니다.
간편한 사용성: 사용자 친화적인 인터페이스와 직관적인 작업 흐름으로 Kubernetes 관리가 더욱 쉬워집니다. 표준 k8s, aws eks, k3s, kind, k0s 등 다양한 클러스터 유형을 지원합니다.
고효율 성능: 백엔드는 Golang으로 구축되었으며, 프론트엔드는 Baidu AMIS를 기반으로 하여 높은 리소스 활용도와 빠른 응답 속도를 보장합니다.
AI 기반 융합: ChatGPT를 기반으로 단어 해석, 리소스 가이드, YAML 속성 자동 번역, Describe 정보 해석, 로그 AI 진단, 실행 명령 추천 기능을 구현했습니다. 또한 k8s-gpt 기능을 통합하여 중국어 표시를 지원하며, k8s 관리에 지능적인 지원을 제공합니다.
기능 플러그인화: 특수 기능은 플러그인화되어 필요에 따라 활성화할 수 있으며, 활성화하지 않으면 리소스를 점유하지 않습니다.
MCP 통합: MCP를 시각적으로 관리하여 대규모 모델이 도구(Tools)를 호출할 수 있도록 합니다. 49종의 k8s 다중 클러스터 MCP 도구가 내장되어 있으며, 조합을 통해 100가지 이상의 클러스터 작업을 수행할 수 있습니다. 다른 대규모 모델 소프트웨어에서 사용할 수 있는 MCP 서버로도 활용 가능합니다. 모든 MCP 호출을 상세히 기록하며, mcp.so 주요 서비스를 지원합니다.
MCP 권한 통합: 다중 클러스터 관리 권한과 MCP 대규모 모델 호출 권한이 통합되어 있습니다. 한 문장으로 요약하자면: 대규모 모델을 사용하는 사람의 권한으로 MCP를 실행합니다. 안전하게 사용할 수 있으며 권한 초과 작업에 대한 걱정이 없습니다.
다중 클러스터 관리: 클러스터 내부에서 InCluster 모드를 자동으로 식별하며, kubeconfig 경로 설정 후 동일한 디렉토리의 설정 파일을 자동으로 스캔합니다. 여러 클러스터를 동시에 등록 및 관리하며, 하트비트 감지 및 자동 재연결을 지원합니다.
다중 클러스터 권한 관리: 사용자 및 사용자 그룹에 대한 권한 부여를 지원하며, 클러스터별로 읽기 전용, Exec 명령, 클러스터 관리자 등 세 가지 권한을 부여할 수 있습니다. 그룹에 권한을 부여하면 그룹 내 모든 사용자가 해당 권한을 획득합니다. 네임스페이스 화이트리스트/블랙리스트 설정을 지원합니다.
최신 k8s 기능 지원: APIGateway, OpenKruise 등의 기능 특성을 지원합니다.
Pod 파일 관리: 콘솔 인터페이스 왼쪽의 파일 트리에서 우클릭 메뉴를 통해 Pod 내 파일 탐색, 편집, 업로드, 다운로드, 삭제를 지원하여 일상적인 작업을 간소화합니다.
Pod 실행 관리: 실시간 Pod 로그 확인, 로그 다운로드, Pod 내 직접 Shell 명령 실행을 지원합니다. Ctrl+F 검색을 지원하며, grep -A -B와 유사한 하이라이트 검색이 가능합니다.
API 개방: API KEY 생성을 지원하여 외부 제3자 접근이 가능하며, swagger 인터페이스 관리 페이지를 제공합니다.
클러스터 점검 지원: 다중 클러스터 정기 점검, 사용자 정의 점검 규칙, lua 스크립트 규칙을 지원합니다. DingTalk 그룹, WeChat 그룹, Lark 그룹 및 사용자 정의 webhook으로 전송할 수 있습니다. AI 요약을 지원합니다.
k8s Event 전달: 다중 클러스터 k8s Event를 webhook으로 전달하는 것을 지원하며, 클러스터, 키워드, 네임스페이스, 이름 등으로 필터링하여 여러 개의 전용 모니터링 전달 채널을 구축할 수 있습니다. AI 요약을 지원합니다.
CRD 관리: CRD 리소스를 자동으로 발견하고 관리하며, 모든 CRD를 트리 형태로 나열하여 작업 효율을 높입니다.
Helm 마켓: Helm 저장소 추가를 자유롭게 지원하며, 원클릭 설치, 제거, 업그레이드 및 자동 업데이트를 지원합니다.
크로스 플랫폼 지원: Linux, macOS, Windows와 호환되며 x86, ARM 등 다양한 아키텍처를 지원하여 여러 플랫폼에서 원활하게 실행됩니다.
다중 데이터베이스 지원: SQLite, MySql, PostgreSql 등 다양한 데이터베이스를 지원합니다.
완전 오픈 소스: 모든 소스 코드가 공개되어 있으며 제한 없이 자유롭게 커스터마이징 및 확장할 수 있고 상업적 용도로도 사용 가능합니다.
k8m의 설계 철학은 "AI 기반, 가볍고 효율적이며, 복잡함을 단순함으로"입니다. 개발자와 운영자가 빠르게 시작하고 Kubernetes 클러스터를 쉽게 관리할 수 있도록 돕습니다.
실행
다운로드: GitHub release에서 최신 버전을 다운로드합니다.
실행:
./k8m명령어로 시작하고 http://127.0.0.1:3618에 접속합니다.로그인 사용자 이름 및 비밀번호:
사용자 이름:
k8m비밀번호:
k8m서비스 시작 후 사용자 이름과 비밀번호를 변경하고 2단계 인증을 활성화하십시오.
매개변수:
Usage of ./k8m:
--enable-temp-admin 是否启用临时管理员账户配置,默认关闭
--admin-password string 管理员密码,启用临时管理员账户配置后生效
--admin-username string 管理员用户名,启用临时管理员账户配置后生效
--print-config 是否打印配置信息 (default false)
--connect-cluster 启动集群是是否自动连接现有集群,默认关闭
-d, --debug 调试模式
--in-cluster 是否自动注册纳管宿主集群,默认启用
--jwt-token-secret string 登录后生成JWT token 使用的Secret (default "your-secret-key")
-c, --kubeconfig string kubeconfig文件路径 (default "/root/.kube/config")
--kubectl-shell-image string Kubectl Shell 镜像。默认为 bitnami/kubectl:latest,必须包含kubectl命令 (default "bitnami/kubectl:latest")
--log-v int klog的日志级别klog.V(2) (default 2)
--login-type string 登录方式,password, oauth, token等,default is password (default "password")
--image-pull-timeout Node Shell、Kubectl Shell 镜像拉取超时时间。默认为 30 秒
--node-shell-image string NodeShell 镜像。 默认为 alpine:latest,必须包含`nsenter`命令 (default "alpine:latest")
-p, --port int 监听端口 (default 3618)
-v, --v Level klog的日志级别 (default 2)docker-compose(권장)를 통해 직접 시작할 수도 있습니다:
services:
k8m:
container_name: k8m
image: registry.cn-hangzhou.aliyuncs.com/minik8m/k8m
restart: always
ports:
- "3618:3618"
environment:
TZ: Asia/Shanghai
volumes:
- ./data:/app/data시작 후 3618 포트에 접속하십시오. 기본 사용자: k8m, 기본 비밀번호: k8m.
온라인 환경에서 빠르게 체험하고 싶다면 다음을 방문하십시오: k8m
Related MCP server: Kubernetes Monitor
컨테이너화된 k8s 클러스터 방식으로 실행
KinD, MiniKube를 사용하여 소규모 k8s 클러스터를 설치합니다.
KinD 방식
KinD Kubernetes 클러스터 생성
brew install kind새로운 Kubernetes 클러스터 생성:
kind create cluster --name k8sgpt-demok8m을 클러스터에 배포하여 체험하기
설치 스크립트
kubectl apply -f https://raw.githubusercontent.com/weibaohui/k8m/refs/heads/main/deploy/k8m.yaml접속: 기본적으로 nodePort를 사용하여 개방되므로 31999 포트로 접속하십시오. 또는 직접 Ingress를 설정하십시오. http://NodePortIP:31999
프로덕션 배포 시 마스터-슬레이브 선거 플러그인 활성화 주의사항
단일 인스턴스 실행 시 service 정의에
k8m.io/role: leader라벨을추가하지 마십시오. 추가하면 정상적으로 접속할 수 없습니다.다중 인스턴스 실행 시 service 정의에
k8m.io/role: leader라벨을반드시 추가해야 합니다. 그렇지 않으면 전환되지 않습니다.다중 인스턴스 실행을 위한 yaml은 다음과 같습니다:
kubectl apply -f https://raw.githubusercontent.com/weibaohui/k8m/refs/heads/main/deploy/k8m-ms.yamlChatGPT 설정 가이드
내장 GPT
v0.0.8 버전부터 GPT가 내장되어 별도의 설정이 필요 없습니다. 자신의 GPT를 사용해야 하는 경우 다음 문서를 참조하십시오.
자체 호스팅/사용자 정의 대규모 모델 지원 - 자체 호스팅 방법
Ollama 설정 - Ollama 대규모 모델 설정 방법.
ChatGPT 상태 디버깅
매개변수를 설정한 후에도 효과가 없다면 ./k8m -v 6을 사용하여 더 많은 디버깅 정보를 확인하십시오.
다음 정보가 출력되며, 로그를 확인하여 ChatGPT가 활성화되었는지 확인하십시오.
개발 디버깅
로컬에서 개발 및 디버깅하려면 먼저 로컬 프론트엔드 빌드를 한 번 실행하여 dist 디렉토리를 자동으로 생성하십시오. 본 프로젝트는 바이너리 임베딩을 사용하므로 dist 프론트엔드가 없으면 오류가 발생합니다.
1단계 프론트엔드 컴파일
cd ui
pnpm run build백엔드 컴파일 및 디버깅
#下载依赖
go mod tidy
#运行
air
#或者
go run *.go
# 监听localhost:3618端口프론트엔드 핫 리로드
cd ui
pnpm run dev
#Vite服务会监听在localhost:3000端口
#Vite转发后端访问到3618端口도움 및 지원
추가 질문이 있거나 도움이 필요하시면 언제든지 저에게 연락해 주십시오!
특별 감사
zhaomingcheng01: 매우 수준 높은 제안을 많이 해주셨으며, k8m의 사용 편의성을 높이는 데 탁월한 공헌을 했습니다~
La0jin: 온라인 리소스를 제공하고 유지 관리하여 k8m의 전시 효과를 크게 향상시켰습니다.
eryajf: 매우 유용한 github actions를 제공하여 k8m에 자동화된 릴리스, 빌드, 배포 등의 기능을 추가했습니다.
호스팅 배포
Fronteir AI에서 호스팅 배포를 이용할 수 있습니다.
연락처 (Lark 그룹)

Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/weibaohui/k8m'
If you have feedback or need assistance with the MCP directory API, please join our Discord server