Kubernetes Web 界面
了解 Kubernetes Dashboard 是什么以及它如何使用。
Kubernetes Dashboard
Kubernetes Dashboard 是一个用于 Kubernetes 集群的基于 Web 的用户界面。它不会默认随 Kubernetes 一起部署,但运行起来非常简单。
我们之前通过 kubectl 完成的许多操作,也可以在 Dashboard 中完成,而且能够以可视化的方式查看集群中正在运行的所有内容,这非常方便。
要启动它,我们将使用 Dashboard GitHub 仓库提供的清单文件:
1kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml
这是一个单一的清单文件,将创建一个 deployment、一个 service,以及 Dashboard 运行所需的必要权限。所有这些资源都会被创建在 kubernetes-dashboard 命名空间中。
No configuration found for ID: 21b429bc56c3d506486627a59c5c87fa7d5fb686d467813a758436c61aea6b67
注意:请先点击“RUN”按钮,再点击应用链接。
当所有资源创建完成后,我们就准备好使用 Dashboard 了。我们需要创建一个代理,以便从本地机器连接到 Kubernetes API Server:
1kubectl proxy 2# Starting to serve on 127.0.0.1:8001 3 4# 如果在平台上运行,请执行以下命令 5kubectl proxy --address 0.0.0.0 --accept-hosts='.*'
从命令输出可以看出,我们的代理正在本地的端口 8001 上监听,因此可以使用该端口连接到 Dashboard。
我们可以通过点击上方的 URL 在浏览器中打开 Dashboard。
虽然记起来不太容易,但目前这样就可以了。
打开 URL 后,我们应该会看到登录页面。
我们可以选择两种认证方式:使用 kubeconfig 文件或使用认证令牌。现在我们先用令牌方式。
在另一个终端会话中,运行以下命令获取默认令牌:
1kubectl describe secret default-token 2 3# Name: default-token-f9kl9 4# Namespace: default 5# Labels: <none> 6# Annotations: kubernetes.io/service-account.name: default 7# kubernetes.io/service-account.uid: 0bbbfb03 8# Type: kubernetes.io/service-account-token 9# 10# Data 11# ==== 12# ca.crt: 1025 bytes 13# namespace: 7 bytes 14# token: eyJhbGciOiJS...
然后在登录页面选择“Token”作为认证方式,并输入此命令输出的令牌进行登录。
登录后,我们会看到一个漂亮的仪表板,列出集群中所有正在运行的内容。
例如,我们可以点击“创建”按钮来应用一个清单文件,这与执行 kubectl apply -f path/to/file.yaml 效果相同。
我们还可以查看容器日志、开启交互式会话、扩缩容部署等。
我们不会详细介绍 Dashboard 中的每一个功能,但大多数通过 kubectl 能完成的操作,在这里也能实现。你可以随意点击探索。
如果集群运行在云服务商上,情况也是一样:只需运行 kubectl proxy,就能从本地机器访问 Dashboard,而无需将其暴露给外部网络。多么方便!