Skip to content

manage k8s using c# blazor enhance by chatgpt ,try something new !使用blazor技术开发的内置OpenAI GPT的k8s 管理界面

License

Notifications You must be signed in to change notification settings

weibaohui/blazork8s

Repository files navigation

Build

Blazor k8s

A Kubernetes management tool written in C# Blazor, integrating the ChatGPT large models. It features a user-friendly interface for easy and efficient Kubernetes administration. Particularly suitable for beginners, it offers various convenient functionalities to help novices grasp Kubernetes knowledge.

  • Colorful and intuitive display of Kubernetes resources.
  • Yaml-defined fields are analyzed and displayed in a tree structure, accompanied by documentation. Additionally, translation using a large model is available, eliminating concerns about forgetting definitions.
  • Detailed explanations of Kubernetes resource fields, ensuring no ambiguity about the number of options and their meanings.Official documentation with clickable links.
  • Integration of official examples in a directory tree format, allowing easy browsing, reference, and field copying.
  • Support efficient editing of YAML resources, enabling writing YAML fields on one side of the page while referring to field definitions at the same time.
  • Support displaying corresponding Service and Ingress on the Pod page, and support displaying backend Pods on the Service and Ingress pages.
  • Generation of Yaml 、Problem analysis、Security checks using a large model.
  • Support conversational k8s functionality operations, such as semantic commands to check the running status of pods in the default namespace.
  • Display resource usage dynamically (requires installation of metric server), and support viewing detailed statistical data* Integration of page functionalities such as kubectl describe, kubectl explain, kubectl top and other high-frequency commands. These can be accessed with a simple click on the user interface.
  • Inspection functionality added to the cluster page, conducting common error checks on major resource objects and providing detailed lists.
  • Supports Chinese, English, as well as French, German, Italian, Russian, Spanish, French, Japanese, Korean, and 12 languages.
  • Visualize the relationships and states between workload resources intuitively through a topology diagram.
  • Supports GatewayAPI, including GatewayClass, Gateway, HTTPRoute, GRPCRoute, TCPRoute, and UDPRoute.
  • Support using Mermaid.js to visualize HttpRoute resources, which is intuitive and clear.

☀️ License

BlazorK8s

k8s install

Create a small Kubernetes cluster using KinDMiniKube

KinD way

  • install KinD on mac with brew.
brew install kind
  • Create a new Kubernetes cluster.
kind create cluster --name k8sgpt-demo

Deploy BlazorK8s to a cluster and experience it:

kubectl apply yaml

kubectl apply -f https://raw.githubusercontent.com/weibaohui/blazork8s/main/deploy/deployment.yaml
  • View the ui: By default, it uses NodePort for access. Please visit port 31999, or configure Ingress on your own. http://NodePortIP:31999 (!Do not use 127.0.0.1/localhost!)

Start a Docker image to experience it

x86 Run

Note: When using Docker Desktop, you need to handle the access domain address of the API server yourself. Ensure that it is accessible within the Docker environment.

docker run -it --rm    -v ~/.kube/:/root/.kube/ -p 4000:8080 ghcr.io/weibaohui/blazork8s:0.2.7

ARM Run (Mac M1/2/3)

docker run -it --rm    -v ~/.kube/:/root/.kube/ -p 4000:8080 ghcr.io/weibaohui/blazork8s:0.2.7-arm

Debug

 git clone git@github.com:weibaohui/blazork8s.git
 cd blazork8s/BlazorApp
 dotnet watch run

Interface Language Configuration

The interface defaults to displaying in Chinese. To set a default display in another language, modify the appsettings.json in the source code's BlazorApp directory or the image's /app/appsettings.json.

"SimpleI18n": {
"LocaleFilesPath": "wwwroot/lang",
"DefaultCultureName": "LANGUAGE"
}

The available values for LANGUAGE include

{
  "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 config

Modify the appsettings.json in the BlazorApp directory or /app/appsettings.json in the image.

  "AI": {
    "Enable": true, //enabled
    "Select": "OpenAI" //choose a model from below
  },
  "OpenAI": {
    "Token": "sk-kkkkkkkkkkkkkkkkkkkk",
    "Model": "alibaba/Qwen2-7B-Instruct",
    "BaseUrl": "https://api.siliconflow.cn/v1"
  },
  "GeminiAI": {
    "APIKey": "AIxxxxxxx7dd3494880a7920axxxxxxxxx",
    "Model": "gemini-pro"
  }

Effectiveness

DocTree expands YAML definitions in a tree-like structure, no longer worry about forgetting the definitions.



Explanation of Field Meanings

Click on the question mark next to the field on the resource details page.

  • Use kubectl to obtain Kubernetes explanations
  • Using a configured AI large model for intelligent interpretation, the results are as follows:

Generate deployment YAML


Obtain k8s deployment YAML through prompts and execute


Intelligent Analysis

Added intelligent analysis and security analysis buttons on each resource.

Workload Diagram

Visualize the relationships and states between workload resources intuitively through a topology diagram

GatewayAPI support

  • GatewayClass
  • Gateway
  • HTTPRoute
  • GRPCRoute
  • TCPRoute
  • UDPRoute

UI preview

click me