Install | Guide | Releases | Source Code
A single binary to manage your multiple kubernetes clusters.
kubewall provides a simple and rich real time interface to manage and investigate your clusters.
Key features of KubeWall include:
- Single binary deployment: KubeWall can be easily deployed as a single binary, eliminating the need for complex configurations.
- Browser-based access: KubeWall can be accessed directly from your favorite web browser, providing a seamless user experience.
- Real-time cluster monitoring: KubeWall offers a rich, real-time interface that displays the current state of your Kubernetes clusters, allowing you to quickly identify and address issues.
- Cluster management: KubeWall enables you to manage multiple Kubernetes clusters from a single pane of glass, reducing the overhead of switching between different tools and interfaces.
- Detailed cluster insights: KubeWall provides comprehensive insights into your Kubernetes clusters, manifest info of your pods, services, config and others.
Important
Please keep in mind that kubewall is still under active development.
docker run -p 7080:7080 -v kubewall:/.kubewall ghcr.io/kubewall/kubewall:latestTo access local kind cluster you can use "--network host" docker flag.
helm install kubewall oci://ghcr.io/kubewall/charts/kubewall -n kubewall-system --create-namespaceWith helm kubewall runs on port
8443with self-signed certificates. see charts
brew install kubewall/tap/kubewallsudo snap install kubewallyay -S kubewall-binwinget install --id=kubewall.kubewall -escoop bucket add kubewall https://github.com/kubewall/scoop-bucket.git
scoop install kubewallMacOS Binary ( Multi-Architecture )
Linux (Binaries) amd64 | arm64 | i386
Windows (Exe) amd64 | arm64 | i386
FreeBSD (Binaries) amd64 | arm64 | i386
Manually Download the pre-compiled binaries from the Release! page and copy them to the desired location or system path.
Tip
After installation, you can access kubewall at http://localhost:7080
If you're running it in a Kubernetes cluster or on an on-premises server, we recommend using HTTPS. When not used over HTTP/2 SSE suffers from a limitation to the maximum number of open connections. Mozzila⤴
You can start kubewall with HTTPS using the following command:
$ kubewall --certFile=/path/to/cert.pem --keyFile=/path/to/key.pem
Since kubewall runs as binary there are few of flag you can use.
> kubewall --help
Usage:
kubewall [flags]
kubewall [command]
Available Commands:
completion Generate the autocompletion script for the specified shell
help Help about any command
version Print the version of kubewall
Flags:
--certFile string absolute path to certificate file
-h, --help help for kubewall
--k8s-client-burst int Maximum burst for throttle (default 50)
--k8s-client-qps int maximum QPS to the master from client (default 50)
--keyFile string absolute path to key file
--no-open-browser Do not open the default browser
-p, --port string port to listen on (default ":7080")
Use "kubewall [command] --help" for more information about a command.You can use your own certificates or create new local trusted certificates using mkcert⤴.
Important
You'll need to install mkcert⤴ separately.
- Install mkcert on your computer.
- Run the following command in your terminal or command prompt:
mkcert kubewall.test localhost 127.0.0.1 ::1
- This command will generate two files: a certificate file and a key file (the key file will have
-key.pemat the end of its name). - To use these files with kubewall, use
--certFile=and--keyFile=flags.
kubewall --certFile=kubewall.test+3.pem --keyFile=kubewall.test+3-key.pemWhen using Docker
When using Docker, you can attach volumes and provide certificates by using specific flags.
In the following example, we mount the current directory from your host to the /.certs directory inside the Docker container:
docker run -p 7080:7080 \
-v kubewall:/.kubewall \
-v $(pwd):/.certs \
ghcr.io/kubewall/kubewall:latest \
--certFile=/.certs/kubewall.test+3.pem \
--keyFile=/.certs/kubewall.test+3-key.pemYou can run kubewall on any port you like. by using -p or --port flag
kubewall -p 7080-
/client/index.html- 前端的入口 HTML 文件。
- 定义了一个
div容器(id="root"),用于挂载 React 应用。 - 加载了主脚本文件
/src/main.tsx。
-
/client/src/main.tsx- React 应用的主入口文件。
- 配置了全局的 Redux 状态管理和路由。
- 使用
ThemeProvider提供主题支持,并通过Toaster提供全局通知功能。 - 渲染了
RouterProvider,用于管理应用的路由。
-
/client/src/KubeWall.tsx- 应用的核心组件,负责整体布局和导航。
- 包含侧边栏(
Sidebar)和主内容区域(App或Outlet)。 - 通过 Redux 管理集群数据,并动态加载集群相关信息。
- 提供了顶部导航和集群切换功能。
index.html是整个前端的入口文件,加载了main.tsx。main.tsx初始化了应用的全局配置,包括 Redux、路由和主题,并渲染了KubeWall组件。KubeWall.tsx是应用的核心组件,负责整体布局和导航逻辑,集成了侧边栏和主内容区域。- 这些文件共同构成了前端的基础架构,确保应用能够正常加载和运行。
index.html └── main.tsx ├── routes/index.tsx (路由配置) ├── KubeWall.tsx (主框架组件) │ ├── Sidebar (左侧导航栏) │ └── App (主内容区域) │ ├── KubeConfiguration (子页面组件) │ ├── KwList (子页面组件) │ └── KwDetails (子页面组件) ├── redux/store.ts (全局状态管理) └── components/ui/ (基础 UI 组件)
Table/ ├── data-table.tsx # 表格主组件 ├── index.css # 表格样式 ├── index.ts # 导出模块 ├── TableCells/ # 单元格渲染逻辑 │ ├── conditionCell.tsx # 条件单元格 │ ├── currentByDesiredCell.tsx # 当前值/目标值单元格 │ ├── defaultCell.tsx # 默认单元格 │ ├── index.tsx # 单元格导出 │ ├── multiValueCell.tsx # 多值单元格 │ ├── nameCell.tsx # 名称单元格 │ ├── selectCell.tsx # 选择单元格 │ ├── statusCell.tsx # 状态单元格 │ └── timeCell.tsx # 时间单元格 ├── TableDelete/ # 删除功能 │ └── index.tsx # 删除组件 ├── TableFacetedFilter/ # 多维筛选功能 │ └── index.tsx # 筛选组件 ├── TableHeaders/ # 列头组件 │ └── default-header.tsx # 默认列头 ├── TableToolbar/ # 工具栏组件 │ └── index.tsx # 工具栏组件 └── TableViewOptions/ # 视图选项组件 └── index.tsx # 视图选项组件
-
进入前端目录并安装依赖:
cd client npm install -
启动开发服务器:
npm run dev
-
在浏览器中访问
http://localhost:5173。
-
进入后端目录并构建后端:
cd backend go build -o kubewall main.go -
启动后端:
./kubewall
-
在浏览器中访问
http://localhost:7080
-
构建前端:
cd client npm run build -
将前端静态文件移动到后端:
mv client/dist backend/routes/static
-
启动后端:
cd backend ./kubewall -
在浏览器中访问
http://localhost:7080。
This project welcomes your PR and issues. For example, refactoring, adding features, correcting English, etc.
If you need any help, you can contact us from the above Developers sections.
Thanks to all the people who already contributed and using the project.
kubewall is licensed under Apache License, Version 2.0
