Kubernetes 包含一个可用于基本管理操作的 Web 仪表板。 使用此仪表板,可以查看应用程序的基本运行状况状态和指标,创建并部署服务,以及编辑现有应用程序。 本文介绍如何使用 Azure CLI 访问 Kubernetes 仪表板,然后引导你完成一些基本的仪表板操作。
有关 Kubernetes 仪表板的详细信息,请参阅 Kubernetes Web UI 仪表板。 AKS 使用版本 2.0 及更高版本的开源仪表板。
警告
AKS 仪表板加载项已设置为弃用。
- 默认情况下,为运行的 Kubernetes 版本低于 1.18 的群集启用 Kubernetes 仪表板。
- 默认情况下,在 Kubernetes 1.18 或更高版本上创建的所有新群集都将禁用仪表板加载项。
- 从 Kubernetes 1.19 预览版开始,AKS 将不再支持安装托管的 kube-dashboard 加载项。
- 启用了加载项的现有群集不会受到影响。 用户能够继续将开源仪表板作为用户安装的软件手动安装。
本文档详述的步骤假设你已创建 AKS 群集并已通过该群集建立 kubectl
连接。 如果需要创建 AKS 群集,请参阅快速入门:使用 Azure CLI 部署 Azure Kubernetes 服务群集。
还需要安装并配置 Azure CLI 2.6.0 或更高版本。 运行 az --version
即可查找版本。 如果需要进行安装或升级,请参阅安装 Azure CLI。
默认情况下,在 K8s 版本低于 1.18 的群集上启用 kube-dashboard 加载项。 可以通过运行以下命令禁用加载项。
az aks disable-addons -g myRG -n myAKScluster -a kube-dashboard
警告
AKS 仪表板加载项在版本 1.19+ 中已弃用。
若要在群集上启动 Kubernetes 仪表板,请使用 az aks browse 命令。 此命令要求在群集上安装 kube-dashboard 加载项,运行任何低于 Kubernetes 1.18 的版本的群集都默认包含该加载项。
以下示例将为 myResourceGroup 资源组中的 myAKSCluster 群集打开仪表板:
# Enable kube-dashboard addon before start the kubernetes dashboard
az aks enable-addons --addons kube-dashboard --resource-group myResourceGroup --name myAKSCluster
az aks browse --resource-group myResourceGroup --name myAKSCluster
此命令在开发系统与 Kubernetes API 之间创建一个代理,并在 Web 浏览器中打开 Kubernetes 仪表板。 如果 Web 浏览器未打开到 Kubernetes 仪表板,请复制并在 Azure CLI 中粘贴所记录的 URL 地址,通常为 http://127.0.0.1:8001
。
备注
如果在 http://127.0.0.1:8001
没有看到仪表板,则可以手动路由到以下地址。 运行 1.16 或更高版本的群集使用 https 并需要单独的终结点。
- K8s 1.16 或更高版本:
http://127.0.0.1:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy
- K8s 1.15 及更低版本:
http://127.0.0.1:8001/api/v1/namespaces/kube-system/services/kubernetes-dashboard:/proxy
重要
从 Kubernetes 仪表板 v1.10.1 或 kubernetes v1.16 + 开始,由于该版本中的安全修补程序,服务帐户“kubernetes-dashboard”不再能够用于检索资源。 因此,没有身份验证信息的请求会返回 401 未授权错误。 从服务帐户检索的持有者令牌仍可通过此 Kubernetes 仪表板示例中的方式使用,但与早期版本相比,这会影响仪表板加载项的登录流。
如果仍运行 1.16 之前的版本,则仍可向“kubernetes-dashboard”服务帐户授予权限,但不建议这样做:
kubectl create clusterrolebinding kubernetes-dashboard --clusterrole=cluster-admin --serviceaccount=kube-system:kubernetes-dashboard
显示的初始屏幕要求提供 kubeconfig 或令牌。 这两个选项都要求提供资源权限才会在仪表板中显示这些资源。
使用 kubeconfig
对于启用了 Azure AD 的群集和启用了非 Azure AD 的群集,都可以传入kubeconfig。 确保访问令牌有效,如果令牌已过期,则可以通过 kubectl 刷新令牌。
- 使用
az aks get-credentials -a --resource-group <RG_NAME> --name <CLUSTER_NAME>
设置管理员 kubeconfig - 选择
Kubeconfig
并单击Choose kubeconfig file
打开文件选择器 - 选择 kubeconfig 文件(默认为 $HOME/.kube/config)
- 单击
Sign In
使用令牌
- 对于启用了非 Azure AD 的群集,运行
kubectl config view
并复制与群集的用户帐户关联的令牌。 - 登录时,粘贴到令牌选项中。
- 单击
Sign In
对于启用了 Azure AD 的群集,使用以下命令检索 AAD 令牌。 验证是否已替换命令中的资源组和群集名称。
## Update <RESOURCE_GROUP and <AKS_NAME> with your input.
kubectl config view -o jsonpath='{.users[?(@.name == "clusterUser_<RESOURCE GROUP>_<AKS_NAME>")].user.auth-provider.config.access-token}'
成功后,将显示类似如下的页面。
以下步骤要求用户具有对相应资源的权限。
若要查看 Kubernetes 仪表板可以如何降低管理任务的复杂性,让我们创建一个应用程序。 可以从 Kubernetes 仪表板通过提供文本输入、YAML 文件或通过一个图形化向导来创建应用程序。
若要创建应用程序,请完成以下步骤:
- 选择窗口右上角的“创建”按钮。
- 若要使用图形化向导,请选择“创建应用”。
- 为部署提供一个名称,例如 nginx
- 输入要使用的容器映像的名称,例如 nginx:1.15.5
- 若要为 Web 流量公开端口 80,请创建一个 Kubernetes 服务。 在“服务”下,选择“外部”,对于端口和目标端口,都输入 80。
- 准备就绪后,选择“部署”来创建应用。
为 Kubernetes 服务分配公共外部 IP 地址需要一到两分钟时间。 在左侧,在“发现和负载均衡”下,选择“服务”。 此时将列出应用的服务,包括“外部终结点”,如以下示例中所示:
选择终结点地址以在 Web 浏览器窗口中打开默认的 NGINX 页面:
Kubernetes 仪表板可以提供基本的监视指标和故障排除信息,例如日志。
若要查看有关应用程序 Pod 的详细信息,请在左侧菜单中选择“Pod”。 此时会显示可用 Pod 的列表。 选择你的 nginx Pod 来查看信息,例如资源消耗:
除了创建和查看应用程序之外,Kubernetes 仪表板还可以用来编辑和更新应用程序部署。 若要为应用程序提供额外的冗余,让我们来增加 NGINX 副本数。
若要编辑部署,请执行以下操作:
- 在左侧菜单中选择“部署”,然后选择你的 nginx 部署。
- 在右上角的导航栏中选择“编辑”。
- 找到
spec.replica
值,大约在第 20 行。 若要增加应用程序的副本数,请将此值从 1 更改为 3。 - 在完成后,选择“更新”。
在副本集内创建新 Pod 需要花费一些时间。 在左侧菜单上,选择“副本集”,然后选择你的 nginx 副本集。 Pod 列表现在反映了已更新的副本计数,如以下示例输出中所示:
有关 Kubernetes 仪表板的详细信息,请参阅 Kubernetes Web UI 仪表板。