
Web Kubectl帮助您管理kubernetes集群的凭据,并在Web浏览器中运行kubectl命令,从而不必在本地PC或其他服务器上安装kubectl,并且Web Kubectl也适用于团队多人同时使用,此外还可以使用API集成到您自己的应用中。
_______________________________________________________________________
| Local Network | DMZ | VPC/Datacenter |
| | | |
| | _______________ | ---------------- |
| --------------- | | | /~~~~~>| Kubernetes A | |
| | Your Laptop |~~~~~~~>| Web Kubectl | / | ---------------- |
| --------------- | | | \ | |
| | --------------- \ | ---------------- |
| | \~~~~>| Kubernetes B | |
| | | ---------------- |
-----------------------------------------------------------------------
Web Kubectl 使用webkubectl/gotty在Web浏览器中运行基于JavaScript的Shell终端。
当打开一个新会话时,将为该会话创建一个临时Linux命名空间,以确保所有会话都是隔离的,每个会话都有自己的命名空间和存储,同时为当前会话生成.kube/config文件。
会话结束后,临时命名空间和存储将被删除。
$ docker run --name="webkubectl" -p 8080:8080 -d --privileged kubeoperator/webkubectl
高级环境变量
| ENV | Type | Default Value | Description |
|---|---|---|---|
| SESSION_STORAGE_SIZE | string | 10M | 单会话的存储大小限制 |
| KUBECTL_INSECURE_SKIP_TLS_VERIFY | bool | true | kubectl命令是否跳过tls验证 |
| GOTTY_OPTIONS | string | --port 8080 --permit-write --permit-arguments | 查看 Gotty Options |
| WELCOME_BANNER | string | Welcome to Web Kubectl, try kubectl --help. | Web终端打开后的欢迎横幅 |
在浏览器中打开下方的网址。
http://<webkubectl-address>:<port>
在打开的页面中,您可以管理您自己的kubeconfig文件或bearer token凭据,这些凭据存储在您本地浏览器的Local Storage中。然后选择一个会话,单击“连接”在弹出的Web终端中使用kubectl命令。


$ curl http://<webkubectl-address>:<port>/api/kube-token -X POST -d '{"name":"gks-hk-dev","apiServer":"https://k8s-cluster:6443","token":"token-content"}'
#response
$ {"success":true,"token":"mkolj4hgbutfgy1thgp1","message":""}
请求参数
| 参数名 | 参数类型 | 参数描述 |
|---|---|---|
| name | string | 会话名称 |
| apiServer | string | Kubernetes API Server地址 |
| token | string | Kubernetes Bearer Token |
响应结果
| 参数名 | 参数类型 | 参数描述 |
|---|---|---|
| success | bool | 请求处理成功为true,否则false |
| token | string | 打开终端时使用的Token |
| message | string | 错误信息 |
$ curl http://<webkubectl-address>:<port>/api/kube-config -X POST -d '{"name":"k8s-cluster-bj1","kubeConfig":"<Kubernetes config file content base64 encoded>"}'
#response
$ {"success":true,"token":"mkolj4hgbutfgy1thgp1","message":""}
请求参数
| 参数名 | 参数类型 | 参数描述 |
|---|---|---|
| name | string | 会话名称 |
| kubeConfig | string | Base64编码后的kubeconfig文件内容 |
响应结果
| 参数名 | 参数类型 | 参数描述 |
|---|---|---|
| success | bool | 请求处理成功为true,否则false |
| token | string | 打开终端时使用的Token |
| message | string | 错误信息 |
http://<webkubectl-address>:<port>/terminal/?token=<API响应中的Token>
Copyright (c) 2014-2024 FIT2CLOUD 飞致云
Web Kubectl is licensed under the Apache License, Version 2.0.
KubeOperator
KubeOperator 是一个开源项目,在离线网络环境下,通过可视化 Web UI 在 VMware、Openstack 或者物理机上部署和管理生产级别的 Kubernetes 集群。
$ claude mcp add webkubectl \
-- python -m otcore.mcp_server <graph>