什么是 Kubebox
Kubebox 是 Kubernetes
集群的终端控制台,允许使用界面管理和监控集群实时状态。Kubebox 可显示 Pod 资源使用情况、集群监视和容器日志等。此外,用户可轻松导航到所需的命名空间并执行到所需容器,以便快速排障或恢复。
项目地址:https://github.com/astefanutti/kubebox
安装 KubeBox
KubeBox 安装非常的简单,只需根据不同平台下载对应的二进制文件就可以了。
下载二进制文件
1 2 3 4 5 6 7 8
| # Linux $ curl -Lo kubebox https://github.com/astefanutti/kubebox/releases/download/v0.6.1/kubebox-linux && chmod +x kubebox
# OSX $ curl -Lo kubebox https://github.com/astefanutti/kubebox/releases/download/v0.6.1/kubebox-macos && chmod +x kubebox
# Windows $ curl -Lo kubebox.exe https://github.com/astefanutti/kubebox/releases/download/v0.6.1/kubebox-windows.exe
|
运行 KubeBox
下载完成二进制文件后,我们只需直接执行就可以运行 KubeBox。
执行成功之后,我们将会看到如下图一样的运行界面。
如果你觉得上面的方法太麻烦,当然你也可以使用 Docker
一键启动 Kubebox 。
1
| $ docker run -it --rm -v ~/.kube/:/home/node/.kube/:ro astefanutti/kubebox
|
注意:KubeBox 需要依赖本地的 Kuberctl
才能正常启动。你需要提前将 Kubernetes Master 节点下的 Kubeconfig 配置文件放在你所在机器的 ~/.kube/
目录下,并修改 config 文件中 Server 的 IP 为你本地可访问的 IP 地址,或者设置环境变量 KUBECONFIG
。
KubeBox 的基本使用
1. KubeBox 常用操作方式
-
按回车键可进行条目选择。
-
按 M 键可查看内存使用情况。
-
按 C 键可查看 CPU 使用情况。
-
按 T 键可查看网络使用情况。
-
按 R 键可进入 CMD 命令终端。
-
按 Q 键直接退出 KubeBox。
更多操作说明可参考下图中的详细说明。
2. 操作 Namespace
你可以使用 「⬆️⬇️」选择需要操作的 Namespace,按「回车键」确认选择。如果需要再次唤起 Namespace 选项,你可以按「N 键」。
3. 操作 Pod
进入具体的 Namespace 空间后,你可以使用「⬆️⬇️」 选择指定的 Pod,按「回车键」确认选择,此时会显示 Pod 的如下信息。
此时你可以对 Pod 进行以下操作。
-
按「M 键」查看内存使用的具体情况。
-
按「C 键」查看 CPU 使用的具体情况。
-
按「T 键」查看网络使用的具体情况。
-
鼠标点击 Logs 框后,按 「⬆️⬇️」键滚动浏览日志文件。
4. 操作容器
鼠标点击 Pods 框后,你可以按「⬆️⬇️」键选中指定的容器,然后按「R 键」进入容器。如果需要退出容器,你可以输入 exit
命令进行退出。
5. Debug 选项
按「⬅️➡️」键可以进行 Namespace 和 Debug 的菜单切换,或者直接按「2 键」进入 Debug 选项卡。这里将记录一些你在 Kubebox 上的操作日志。
Kubebox Web 模式
Kubebox 不但可以直接运行在终端,你也可以将它直接部署到 Kubernetes 集群中。下面是一个部署的 YAML 资源文件示例,你也可以根据自身实际情况修改。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| # Create Service Account apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kube-system --- # Create ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: admin-user roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: admin-user namespace: kube-system --- # Deploy Kubebox apiVersion: apps/v1 kind: Deployment metadata: name: kube-box namespace: kube-system spec: strategy: type: Recreate selector: matchLabels: k8s-app: kube-box template: metadata: name: kube-box labels: k8s-app: kube-box spec: serviceAccountName: admin-user containers: - image: astefanutti/kubebox:server imagePullPolicy: Always name: kube-box ports: - containerPort: 8080 protocol: TCP --- # Expose kubebox service kind: Service apiVersion: v1 metadata: name: kube-box-service namespace: kube-system spec: ports: - port: 8080 targetPort: 8080 nodePort: 30001 selector: k8s-app: kube-box type: NodePort
|
部署完成后,你可以直接通过 Web 的方式对其进行访问,其默认访问地址为:http://<kubernetes-master-ip>:30001/
。
如果你觉得部署太复杂,你也可以先通过官方的演示地址 https://kube.sh/
提前体验下。
参考文档
-
https://www.google.com
-
https://www.jianshu.com/p/d7c3cae2214f
-
https://blog.csdn.net/qq_21816375/article/details/90765673