注释
仅使用 Kubernetes Azure Stack 市场项将部署群集作为概念证明。 对于 Azure Stack 上支持的 Kubernetes 群集,请使用 AKS 引擎。
Kubernetes 包含可用于基本管理操作的 Web 仪表板。 使用此仪表板可以查看应用程序的基本运行状况和指标、创建和部署服务以及编辑现有应用程序。 本文介绍如何在 Azure Stack Hub 上设置 Kubernetes 仪表板。
Kubernetes 仪表板的先决条件
- Azure Stack Hub Kubernetes 群集:部署到 Azure Stack Hub 的 Kubernetes 群集。 有关详细信息,请参阅 部署 Kubernetes。
- SSH 客户端:用于安全连接到群集中的控制平面节点的 SSH 客户端。 如果使用 Windows,可以使用 PuTTY 。 需要部署 Kubernetes 群集时使用的私钥。
- FTP (PSCP):支持 SSH 和 SSH 文件传输协议的 FTP 客户端,用于将证书从控制平面节点传输到 Azure Stack Hub 管理计算机。 可以使用 FileZilla。 需要部署 Kubernetes 群集时使用的私钥。
启用仪表板的步骤概述
- 从群集中的控制平面节点导出 Kubernetes 证书。
- 将证书导入 Azure Stack Hub 管理计算机。
- 打开 Kubernetes Web 仪表板。
导出来自主节点的证书
可以从群集中的控制平面节点检索仪表板的 URL。
从 Azure Stack Hub 仪表板获取主群集的公共 IP 地址和用户名。 若要获取此信息,
- 在
https://portal.local.azurestack.external/登录到 Azure Stack Hub 门户。 - 选择所有服务>所有资源。 找到群集资源组中的主节点。 主节点名为
k8s-master-<sequence-of-numbers>。
- 在
在门户中打开控制平面节点。 复制 公共 IP 地址。 选择连接,以在使用 VM 本地帐户登录框中获取用户名。 这是在创建群集时设置的相同用户名。 使用公共 IP 地址,而不是连接边栏选项卡中列出的专用 IP 地址。
打开 SSH 客户端以连接到主群集。 如果使用 Windows,可以使用 Putty 来创建连接。 将公共 IP 地址用于控制平面节点、用户名,并添加在创建群集时使用的私钥。
当终端连接时,键入
kubectl打开 Kubernetes 命令行客户端。运行下面的命令:
kubectl cluster-info找到仪表板的 URL。 例如:
https://k8-1258.local.cloudapp.azurestack.external/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy提取自签名证书并将其转换为 PFX 格式。 运行下面的命令:
sudo su openssl pkcs12 -export -out /etc/kubernetes/certs/client.pfx -inkey /etc/kubernetes/certs/client.key -in /etc/kubernetes/certs/client.crt -certfile /etc/kubernetes/certs/ca.crt获取 kube-system 命名空间中的机密列表。 运行下面的命令:
kubectl -n kube-system get secrets记下 kubernetes-dashboard-token-<XXXXX> 值。
获取令牌并将其保存。 将
kubernetes-dashboard-token-<####>更新为前面步骤中的机密值:kubectl -n kube-system describe secret kubernetes-dashboard-token-<####>| awk '$1=="token:"{print $2}'
导入证书
打开 Filezilla 并连接到控制平面节点。 需要以下信息:
- 控制平面节点公共 IP
- 用户名
- 专用机密
- 使用 SFTP - SSH 文件传输协议
将
/etc/kubernetes/certs/client.pfx和/etc/kubernetes/certs/ca.crt复制到 Azure Stack Hub 管理计算机。记下文件位置。 使用该位置更新脚本,然后使用权限提升的提示打开 PowerShell。 运行更新后的脚本:
Import-Certificate -Filepath "ca.crt" -CertStoreLocation cert:\LocalMachine\Root $pfxpwd = Get-Credential -UserName 'Enter password below' -Message 'Enter password below' Import-PfxCertificate -Filepath "client.pfx" -CertStoreLocation cert:\CurrentUser\My -Password $pfxpwd.Password
打开 Kubernetes 仪表板
在 Web 浏览器中禁用弹出窗口阻止程序。
将浏览器指向运行命令
kubectl cluster-info时记录的 URL;例如,https://azurestackdomainnamefork8sdashboard/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy。选择客户端证书。
输入令牌。
重新连接到控制平面节点上的 bash 命令行,并授予
kubernetes-dashboard的权限。 运行下面的命令:kubectl create clusterrolebinding kubernetes-dashboard --clusterrole=cluster-admin --serviceaccount=kube-system:kubernetes-dashboard该脚本提供
kubernetes-dashboard云管理员权限。 有关详细信息,请参阅对于启用了 RBAC 的群集。
现在可以使用仪表板。 有关 Kubernetes 仪表板的详细信息,请参阅 Kubernetes Web UI 仪表板。
故障排除
自定义虚拟网络
如果在将 Kubernetes 部署到 自定义虚拟网络后访问 Kubernetes 仪表板时遇到连接问题,请确保目标子网链接到 AKS 引擎创建的路由表和网络安全组资源。
确保网络安全组规则允许控制平面节点与 Kubernetes 仪表板 Pod IP 之间的通信。 可以使用控制平面节点中的 ping 命令来验证此权限。