教程:部署 Kubernetes 控制面板 (Web UI)
本教程将指导您完成将 Kubernetes 控制面板
先决条件
本教程假定:
-
您已通过执行 开始使用 Amazon EKS 中的步骤创建了一个 Amazon EKS 集群。
-
您已安装 Kubernetes Metrics Server。有关更多信息,请参阅安装 Kubernetes Metrics Server。
-
控制层面弹性网络接口和节点的安全组采用 Amazon EKS 安全组要求和注意事项 中的推荐设置。
-
您使用的是配置为与 Amazon EKS 集群通信的
kubectl
客户端。
步骤 1:部署 Kubernetes 控制面板
下载、修改控制面板清单并将其应用到您的集群。
-
使用针对集群版本的命令将控制面板清单文件下载到您的设备。
版本 1.22
可用版本的某些功能可能无法在此 Kubernetes 版本上正常使用。有关更多信息,请参阅 GitHub 上的版本
。 版本 1.20 和 1.21
curl -O https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml
-
修改清单文件。
-
识别清单中的容器映像。
cat recommended.yaml | grep image:
输出示例如下。
image: kubernetesui/dashboard:v
2.4.0
image: kubernetesui/metrics-scraper:v1.0.7
-
提取上一步中返回的映像,并将其推送到节点有权访问的存储库。有关如何提取、标记和推送镜像到您自己的存储库的更多信息,请参阅 将容器镜像从一个存储库复制到另一个存储库。
-
将以下命令中的
替换为您的注册表,然后运行修改后的命令,将文件中的your-registry
kubernetesui
替换为您的注册表。sed -i.bak -e 's|kubernetesui|
your-registry
|' recommended.yaml -
将以下命令中的
和your-repository
your-tag
替换为您的存储库和标签,然后运行修改后的命令,将文件中的
替换为您的注册表和标签。dashboard
:v2.4.0
sed -i.bak -e 's|dashboard:v
2.4.0
|your-repository
:your-tag
|' recommended.yaml -
将以下命令中的
和your-repository
your-tag
替换为您的存储库和标签,然后运行修改后的命令,将文件中的
替换为您的注册表和标签。dashboard
:v2.4.0
sed -i.bak -e 's|metrics-scraper:v
1.0.7
|your-repository
:your-tag
|' recommended.yaml
-
-
将 Kubernetes 控制面板清单应用于集群。
kubectl apply -f recommended.yaml
输出示例如下。
namespace/kubernetes-dashboard created serviceaccount/kubernetes-dashboard created service/kubernetes-dashboard created secret/kubernetes-dashboard-certs created secret/kubernetes-dashboard-csrf created secret/kubernetes-dashboard-key-holder created configmap/kubernetes-dashboard-settings created role.rbac.authorization.k8s.io/kubernetes-dashboard created clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created deployment.apps/kubernetes-dashboard created service/dashboard-metrics-scraper created deployment.apps/dashboard-metrics-scraper created
第 2 步:创建 eks-admin
服务账户和集群角色绑定
默认情况下,Kubernetes 控制面板用户的权限是有限的。在此部分中,您创建一个可用于使用管理员级别权限安全地连接到控制面板的 eks-admin
服务账户和集群角色绑定。有关更多信息,请参阅 Kubernetes 文档中的管理服务账户
创建 eks-admin
服务账户和集群角色绑定
重要
使用此过程创建的示例服务账户在集群上具有完整的 cluster-admin
(超级用户) 特权。有关更多信息,请参阅 Kubernetes 文档中的使用 RBAC 授权
-
运行以下命令以创建包含以下文本的名为
eks-admin-service-account.yaml
的文件。此清单定义一个名为eks-admin
的服务账户和集群角色绑定。cat >eks-admin-service-account.yaml <<EOF apiVersion: v1 kind: ServiceAccount metadata: name: eks-admin namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: eks-admin roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: eks-admin namespace: kube-system EOF
-
将此服务账户和集群角色绑定应用到您的集群。
kubectl apply -f eks-admin-service-account.yaml
输出示例如下。
serviceaccount "eks-admin" created clusterrolebinding.rbac.authorization.k8s.io "eks-admin" created
从 Kubernetes 版本
1.24
开始,不再自动生成服务帐号的密钥。必须使用以下命令手动创建它们:kubectl apply -f eks-admin-service-account.yaml << EOF apiVersion: v1 kind: Secret metadata: name: eks-admin namespace: kube-system annotations: kubernetes.io/service-account.name: eks-admin type: kubernetes.io/service-account-token EOF
第 3 步:连接到控制面板
现在,已将 Kubernetes 控制面板部署到集群,并且您已具有可用于查看和控制集群的管理员服务账户,您可使用该服务账户连接到控制面板。
连接到 Kubernetes 控制面板
-
检索
eks-admin
服务账户的身份验证令牌。kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep eks-admin | awk '{print $1}')
输出示例如下。
Name: eks-admin-token-b5zv4 Namespace: kube-system Labels: <none> Annotations: kubernetes.io/service-account.name=eks-admin kubernetes.io/service-account.uid=bcfe66ac-39be-11e8-97e8-026dce96b6e8 Type: kubernetes.io/service-account-token Data ==== ca.crt: 1025 bytes namespace: 11 bytes token:
authentication-token
从输出中复制
值。您可以在稍后的步骤中使用此令牌连接到控制面板。authentication-token
-
启动
kubectl proxy
。kubectl proxy
-
要访问控制面板终端节点,请使用 Web 浏览器打开以下链接:http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#!/login
。 -
选择 Token(令牌),将上一个命令中的
输出粘贴到 Token(令牌)字段中,然后选择 SIGN IN(登录)。authentication-token
登录之后,您会在 Web 浏览器中看到控制面板。
有关使用控制面板的更多信息,请参阅 Kubernetes 文档中的部署和访问 Kubernetes 控制面板
。