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 es una herramienta de consola ligera Mini Kubernetes AI Dashboard impulsada por IA, diseñada para simplificar la gestión de clústeres. Está construida sobre AMIS y utiliza kom como cliente de la API de Kubernetes. k8m tiene integrado Qwen2.5-Coder-7B, admite capacidades de interacción con el modelo deepseek-ai/DeepSeek-R1-Distill-Qwen-7B y también permite conectar su propio modelo de lenguaje privado (incluyendo ollama).

Experiencia rápida

Este proyecto proporciona una dirección de acceso en línea cnb k8m

  1. Después de hacer fork de este proyecto,

  2. Haga clic en el botón 🛫 Despegar en la esquina superior derecha del repositorio,

  3. Seleccione Cloud IDE,

  4. Ingrese a la terminal

  5. Ingrese cd letsfly/justforfun/k8m && docker-compose up -d && docker-compose ps

  6. Ingrese al puerto (a la derecha de la pestaña de la terminal)

  7. Cree un reenvío de puerto, ingrese 8888, confirme

  8. Haga clic en la dirección de reenvío generada para abrir la página de inicio de sesión de k8m

  9. Ingrese el nombre de usuario y la contraseña: k8m k8m.

  10. 🛫

Documentación

Características principales

  • Diseño miniaturizado: todas las funciones están integradas en un único archivo ejecutable, lo que facilita la implementación y el uso.

  • Fácil de usar: interfaz de usuario amigable y flujo de trabajo intuitivo, lo que hace que la gestión de Kubernetes sea más sencilla. Admite tipos de clústeres como k8s estándar, aws eks, k3s, kind, k0s, etc.

  • Alto rendimiento: el backend está construido con Golang y el frontend se basa en Baidu AMIS, lo que garantiza una alta utilización de recursos y una respuesta rápida.

  • Integración impulsada por IA: basado en ChatGPT para implementar explicación de términos, guías de recursos, traducción automática de atributos YAML, interpretación de información Describe, diagnóstico de registros con IA, recomendación de comandos de ejecución, e integra la función k8s-gpt para proporcionar visualización en chino y soporte inteligente para la gestión de k8s.

  • Funcionalidad basada en plugins: las funciones características son modulares, se activan bajo demanda y no consumen recursos si no se utilizan.

  • Integración MCP: gestión visual de MCP, logrando que el modelo de lenguaje llame a herramientas. Incluye 49 herramientas MCP para múltiples clústeres de k8s, que se pueden combinar para realizar cientos de operaciones de clúster. Puede utilizarse como servidor MCP para otro software de modelos de lenguaje. Registra fácilmente cada llamada MCP. Admite servicios principales de mcp.so.

  • Permisos MCP integrados: los permisos de gestión de múltiples clústeres se integran con los permisos de llamada del modelo de lenguaje MCP. En resumen: quien usa el modelo de lenguaje, utiliza sus permisos para ejecutar MCP. Uso seguro, sin preocupaciones, evitando la extralimitación de operaciones.

  • Gestión de múltiples clústeres: identifica automáticamente el modo InCluster dentro del clúster, escanea automáticamente los archivos de configuración en el mismo directorio después de configurar la ruta kubeconfig, registra y gestiona múltiples clústeres simultáneamente, y admite detección de latidos y reconexión automática.

  • Gestión de permisos de múltiples clústeres: admite la autorización de usuarios y grupos de usuarios, se puede autorizar por clúster, incluyendo tres permisos: solo lectura de clúster, comando Exec y administrador de clúster. Después de autorizar a un grupo de usuarios, todos los usuarios del grupo obtienen la autorización correspondiente. Admite la configuración de listas blancas y negras de espacios de nombres.

  • Admite las últimas características de k8s: admite características como APIGateway, OpenKruise, etc.

  • Gestión de archivos de Pod: en el árbol de archivos a la izquierda de la interfaz de la consola, el menú contextual admite la navegación, edición, carga, descarga y eliminación de archivos dentro del Pod, simplificando las operaciones diarias.

  • Gestión de ejecución de Pod: admite la visualización de registros de Pod en tiempo real, la descarga de registros y la ejecución directa de comandos Shell dentro del Pod. Admite la búsqueda con Ctrl+F, similar a la búsqueda resaltada grep -A -B.

  • API abierta: admite la creación de API KEY, acceso externo de terceros y proporciona una página de gestión de interfaces swagger.

  • Soporte de inspección de clústeres: admite inspección programada de múltiples clústeres, reglas de inspección personalizadas y reglas de script lua. Admite el envío a grupos de DingTalk, grupos de WeChat, grupos de Lark y webhooks personalizados. Admite resumen por IA.

  • Reenvío de eventos de k8s: admite el reenvío de eventos de k8s de múltiples clústeres a webhooks, se puede filtrar por clúster, palabra clave, espacio de nombres, nombre, etc., para establecer múltiples canales de reenvío de monitoreo especializados. Admite resumen por IA.

  • Gestión de CRD: puede descubrir y gestionar automáticamente recursos CRD, enumerar todos los CRD en forma de árbol, mejorando la eficiencia del trabajo.

  • Mercado Helm: admite la adición libre de repositorios Helm, instalación, desinstalación y actualización de aplicaciones Helm con un solo clic, y admite actualizaciones automáticas.

  • Soporte multiplataforma: compatible con Linux, macOS y Windows, y admite varias arquitecturas como x86, ARM, etc., asegurando una ejecución fluida en múltiples plataformas.

  • Soporte para múltiples bases de datos: admite varias bases de datos como SQLite, MySql, PostgreSql, etc.

  • Código abierto: todo el código fuente está abierto, sin restricciones, se puede personalizar y ampliar libremente, y se puede utilizar comercialmente.

La filosofía de diseño de k8m es "impulsado por IA, ligero y eficiente, simplificando lo complejo", ayudando a los desarrolladores y al personal de operaciones a comenzar rápidamente y gestionar fácilmente los clústeres de Kubernetes.

Ejecución

  1. Descarga: descargue la última versión desde GitHub release.

  2. Ejecución: utilice el comando ./k8m para iniciar, acceda a http://127.0.0.1:3618.

  3. Nombre de usuario y contraseña de inicio de sesión:

    • Nombre de usuario: k8m

    • Contraseña: k8m

    • Tenga en cuenta que debe cambiar el nombre de usuario y la contraseña después de la puesta en línea y habilitar la verificación en dos pasos.

  4. Parámetros:

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)

También puede iniciarlo directamente a través de docker-compose (recomendado):

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

Después de iniciar, acceda al puerto 3618, usuario predeterminado: k8m, contraseña predeterminada k8m. Si desea probarlo rápidamente a través de un entorno en línea, puede visitar: k8m

Related MCP server: Kubernetes Monitor

Ejecución en modo de clúster k8s contenedorizado

Utilice KinD o MiniKube para instalar un pequeño clúster de k8s.

Método KinD

  • Crear clúster de Kubernetes KinD

brew install kind
  • Crear un nuevo clúster de Kubernetes:

kind create cluster --name k8sgpt-demo

Implementar k8m en el clúster para probarlo

Script de instalación

kubectl apply -f https://raw.githubusercontent.com/weibaohui/k8m/refs/heads/main/deploy/k8m.yaml
  • Acceso: Se utiliza nodePort de forma predeterminada para abrir, acceda al puerto 31999. O configure Ingress usted mismo http://NodePortIP:31999

Implementación en producción habilitando el plugin de elección principal/respaldo, precauciones

  • La definición del servicio para la ejecución de una sola instancia no debe agregar la etiqueta k8m.io/role: leader, si se agrega, no se puede acceder normalmente.

  • La definición del servicio para la ejecución de múltiples instancias debe agregar la etiqueta k8m.io/role: leader, de lo contrario no cambiará.

  • El yaml para la ejecución de múltiples instancias es el siguiente:

kubectl apply -f https://raw.githubusercontent.com/weibaohui/k8m/refs/heads/main/deploy/k8m-ms.yaml

Guía de configuración de ChatGPT

GPT integrado

A partir de la versión v0.0.8, se integrará GPT, no se requiere configuración. Si necesita usar su propio GPT, consulte la siguiente documentación.

Depuración del estado de ChatGPT

Si después de configurar los parámetros, sigue sin tener efecto, intente usar ./k8m -v 6 para obtener más información de depuración. Se mostrará la siguiente información, verifique los registros para confirmar si ChatGPT está habilitado.

Desarrollo y depuración

Si desea desarrollar y depurar localmente, primero realice una compilación del frontend local para generar automáticamente el directorio dist. Debido a que este proyecto utiliza incrustación binaria, sin el frontend dist, dará un error.

Paso 1: Compilar el frontend

cd ui
pnpm run build

Compilar y depurar el backend

#下载依赖
go mod tidy
#运行
air
#或者
go run *.go 
# 监听localhost:3618端口

Carga en caliente del frontend

cd ui
pnpm run dev
#Vite服务会监听在localhost:3000端口
#Vite转发后端访问到3618端口

Acceda a http://localhost:3000

AYUDA Y SOPORTE

Si tiene más preguntas o necesita ayuda adicional, ¡no dude en ponerse en contacto conmigo!

Agradecimientos especiales

zhaomingcheng01: propuso muchas sugerencias de muy alta calidad, haciendo una contribución sobresaliente a la facilidad de uso de k8m~

La0jin: proporciona recursos en línea y mantenimiento, mejorando enormemente el efecto de visualización de k8m

eryajf: nos proporcionó acciones de github muy útiles, agregando funciones automatizadas de lanzamiento, compilación y publicación a k8m

Implementación alojada

Hay una implementación alojada disponible en Fronteir AI.

Contácteme Grupo de Lark

Ingrese la descripción de la imagen

-
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