Skip to main content
Glama

weibaohui%2Fk8m | Trendshift

GitHub Repo Stars GitHub Repo Forks

License MIT Go Report Card GitHub Release GitHub Downloads (all assets, all releases) GitHub Repo Issues Trust Score zread Repobeats analytics image

English | 中文

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

  1. 이 프로젝트를 fork한 후,

  2. 저장소 오른쪽 상단의 🛫이륙(起飞) 버튼을 클릭하고,

  3. 클라우드 IDE를 선택한 다음,

  4. 터미널로 진입하여

  5. cd letsfly/justforfun/k8m && docker-compose up -d && docker-compose ps를 입력합니다.

  6. 포트로 진입합니다 (터미널 탭 페이지 오른쪽).

  7. 새 포트 포워딩을 생성하고 8888을 입력한 후 확인을 누릅니다.

  8. 생성된 포워딩 주소를 클릭하여 k8m 로그인 페이지를 엽니다.

  9. 사용자 이름과 비밀번호를 입력합니다: k8m k8m.

  10. 🛫

문서

주요 특징

  • 미니멀리즘 설계: 모든 기능이 단일 실행 파일에 통합되어 있어 배포가 편리하고 사용이 간편합니다.

  • 간편한 사용성: 사용자 친화적인 인터페이스와 직관적인 작업 흐름으로 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 클러스터를 쉽게 관리할 수 있도록 돕습니다.

실행

  1. 다운로드: GitHub release에서 최신 버전을 다운로드합니다.

  2. 실행: ./k8m 명령어로 시작하고 http://127.0.0.1:3618에 접속합니다.

  3. 로그인 사용자 이름 및 비밀번호:

    • 사용자 이름: k8m

    • 비밀번호: k8m

    • 서비스 시작 후 사용자 이름과 비밀번호를 변경하고 2단계 인증을 활성화하십시오.

  4. 매개변수:

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-demo

k8m을 클러스터에 배포하여 체험하기

설치 스크립트

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.yaml

ChatGPT 설정 가이드

내장 GPT

v0.0.8 버전부터 GPT가 내장되어 별도의 설정이 필요 없습니다. 자신의 GPT를 사용해야 하는 경우 다음 문서를 참조하십시오.

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端口

http://localhost:3000 접속

도움 및 지원

추가 질문이 있거나 도움이 필요하시면 언제든지 저에게 연락해 주십시오!

특별 감사

zhaomingcheng01: 매우 수준 높은 제안을 많이 해주셨으며, k8m의 사용 편의성을 높이는 데 탁월한 공헌을 했습니다~

La0jin: 온라인 리소스를 제공하고 유지 관리하여 k8m의 전시 효과를 크게 향상시켰습니다.

eryajf: 매우 유용한 github actions를 제공하여 k8m에 자동화된 릴리스, 빌드, 배포 등의 기능을 추가했습니다.

호스팅 배포

Fronteir AI에서 호스팅 배포를 이용할 수 있습니다.

연락처 (Lark 그룹)

이미지 설명

-
security - not tested
A
license - permissive license
-
quality - not tested

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