Logo
Section 1 / 2

Kubernetes Web 界面

了解 Kubernetes Dashboard 是什么以及它如何使用。

导入

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 后,我们应该会看到登录页面。

...
Kubernetes dashboard login page

我们可以选择两种认证方式:使用 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”作为认证方式,并输入此命令输出的令牌进行登录。

...
Dashboard sign in page

登录后,我们会看到一个漂亮的仪表板,列出集群中所有正在运行的内容。

...
An overview of dashboard

例如,我们可以点击“创建”按钮来应用一个清单文件,这与执行 kubectl apply -f path/to/file.yaml 效果相同。

...
Applying manifest in a dashboard

我们还可以查看容器日志、开启交互式会话、扩缩容部署等。

我们不会详细介绍 Dashboard 中的每一个功能,但大多数通过 kubectl 能完成的操作,在这里也能实现。你可以随意点击探索。

如果集群运行在云服务商上,情况也是一样:只需运行 kubectl proxy,就能从本地机器访问 Dashboard,而无需将其暴露给外部网络。多么方便!

理解 kubeconfig 文件

本地搭建 Kubernetes