Blazor k8s
一个使用C# Blazor编写的Kubernetes管理工具,集成了ChatGPT的大模型。它具有用户友好的界面,便于高效地进行Kubernetes的管理。特别适合初学者,它提供了各种便利功能帮助新手掌握Kubernetes知识。
- 直观多彩地展示Kubernetes资源。
- 模板定义的字段被分析并以树状结构显示,附带文档。此外,可以使用大模型进行翻译,不用担心遗忘定义。
- 详细解释Kubernetes资源字段,确保不再有选项数量和含义的模糊性。点击链接查看官方文档。
- 将官方示例集成在目录树格式中,方便浏览、参考和复制字段。
- 支持高效编辑YAML资源,可以在页面一侧编写YAML字段的同时参考字段定义。
- 支持在Pod页显示对应的Service和Ingress,并且支持在Service和Ingress页显示后端Pod。
- 使用大模型进行Yaml生成、问题分析、安全检查。
- 支持对话式k8s功能操作,例如使用语义命令检查默认命名空间中Pod的运行状态。
- 动态显示资源使用情况(需要安装度量服务器),并支持查看详细统计数据。
- 集成kubectl describe、kubectl explain、kubectl top等高频命令,通过用户界面上的简单点击即可访问。
- 在集群页面添加检测功能,对主要资源对象进行常见错误检查并提供详细列表。
- 支持中文、英语以及法语、德语、意大利语、俄语、西班牙语、日语、韩语等12种语言。
- 通过拓扑图直观展示工作负载资源之间的关系和状态。
- 支持GatewayAPI,包括GatewayClass、Gateway、HTTPRoute、GRPCRoute、TCPRoute和UDPRoute。
- 支持使用Mermaid.js直观清晰地可视化HttpRoute资源。
☀️ 许可证
k8s 安装
使用KinD、MiniKube创建一个小型Kubernetes集群。
KinD方式
- 在mac上使用
brew
安装KinD。
brew install kind
- 创建一个新的Kubernetes集群。
kind create cluster --name k8sgpt-demo
部署BlazorK8s到集群并体验:
kubectl应用yaml
kubectl apply -f https://raw.githubusercontent.com/weibaohui/blazork8s/main/deploy/deployment.yaml
- 查看ui: 默认情况下使用NodePort访问。请访问端口31999,或自行配置Ingress。 http://NodePortIP:31999
启动Docker镜像进行体验
x86运行
注意:使用Docker Desktop时,需要自行处理API服务器的访问域名地址。确保它在Docker环境中可访问。
docker run -it --rm -v ~/.kube/:/root/.kube/ -p 4000:8080 ghcr.io/weibaohui/blazork8s:0.2.6
ARM运行(Mac M1/2/3)
docker run -it --rm -v ~/.kube/:/root/.kube/ -p 4000:8080 ghcr.io/weibaohui/blazork8s:0.2.6-arm
- 查看:http://IP:4000 (不要使用127.0.0.1/localhost)
调试
git clone git@github.com:weibaohui/blazork8s.git
cd blazork8s/BlazorApp
dotnet watch run
界面语言配置
界面默认显示中文。要将默认显示设置为其他语言,请修改源代码BlazorApp
目录或镜像内的/app/appsettings.json
中的appsettings.json
。
"SimpleI18n": {
"LocaleFilesPath": "wwwroot/lang",
"DefaultCultureName": "LANGUAGE"
}
LANGUAGE
的可用值包括
{
"en-US": "English",
"zh-CN": "中文(Chinese)",
"es": "Español (Spanish)",
"ru": "Русский (Russian)",
"pt-br": "Português (Portuguese)",
"pl": "Polski (Polish)",
"ko": "한국어 (Korean)",
"ja": "日本語 (Japanese)",
"fr": "Français (French)",
"de": "Deutsch (German)",
"hi": "हिंदी (Hindi)",
"it": "Italiano (Italian)"
}
ChatGPT配置
- √ MoonShot AI
- √ Google Gemini
- √ 阿里Qwen
- √ 讯飞星火
- √ OpenAI
- √ One-API 与OpenAI相同
- √ LM Studio 与OpenAI相同
- √ Ollama 与OpenAI相同
- √ SiliconFlow 与OpenAI相同
修改BlazorApp目录中的appsettings.json
或镜像中的/app/appsettings.json
。
"AI": {
"Enable": true, //开启
"Select": "OpenAI" //选择以下模型之一
},
"OpenAI": {
"Token": "sk-kkkkkkkkkkkkkkkkkkkk",
"Model": "alibaba/Qwen2-7B-Instruct",
"BaseUrl": "https://api.siliconflow.cn/v1"
},
"GeminiAI": {
"APIKey": "AIxxxxxxx7dd3494880a7920axxxxxxxxx",
"Model": "gemini-pro"
}
效果
DocTree以树形结构展开YAML定义,再也不必担心忘记定义。
字段含义解释
点击资源详情页面字段旁边的问号。
- 使用kubectl获取Kubernetes解释
- 使用配置的AI大模型进行智能解释,结果如下:
生成部署YAML
通过提示获取k8s部署YAML并执行
智能分析
在每个资源上添加智能分析和安全分析按钮。
工作负载图
通过拓扑图直观展示工作负载资源之间的关系和状态。
GatewayAPI支持
- GatewayClass
- Gateway
- HTTPRoute
- GRPCRoute
- TCPRoute
- UDPRoute