教程:部署 Kubernetes 控制面板 (Web UI)
本教程将指导您完成将 Kubernetes 控制面板

先决条件
本教程假定:
-
您已通过执行 开始使用 Amazon EKS 中的步骤创建了一个 Amazon EKS 集群。
-
您已安装 Kubernetes Metrics Server。有关更多信息,请参阅 安装 Kubernetes Metrics Server。
-
控制层面弹性网络接口和节点的安全组采用 Amazon EKS 安全组注意事项 中的推荐设置。
-
您使用的是配置为与 Amazon EKS 集群通信的
kubectl
客户端。
第 1 步:部署 Kubernetes 控制面板
-
对于中国北京和宁夏以外的区域,应用 Kubernetes 控制面板。
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.5/aio/deploy/recommended.yaml
-
对于中国北京和宁夏区域,请下载、修改 Calico 清单并将其应用到您的集群。
-
使用下面的命令下载 Kubernetes 控制面板清单。
curl -o recommended.yaml https://raw.githubusercontent.com/kubernetes/dashboard/blob/master/aio/deploy/recommended.yaml
-
修改清单文件。
-
查看您下载的一个或多个清单文件并记下镜像的名称。使用下面的命令将镜像下载到本地。
docker pull image:<tag>
-
使用以下命令标记要推送到中国 Amazon Elastic Container Registry 存储库的镜像。
docker tag image:<tag> <aws_account_id>.dkr.ecr.<cn-north-1>.amazonaws.com.cn/image:<tag>
-
更新
recommended.yaml
以引用您所在区域的 Amazon ECR 镜像 URL。 -
通过在规范中添加以下内容,更新
recommended.yaml
文件来引用您所在区域的 Amazon ECR 镜像存储库。registry:
<aws_account_id>
.dkr.ecr.<cn-north-1>
.amazonaws.com.cn -
应用 Kubernetes 控制面板清单。
kubectl apply -f recommended.yaml
-
-
使用以下命令将清单应用于集群。
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
的服务账户和集群角色绑定。apiVersion: v1 kind: ServiceAccount metadata: name: eks-admin namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 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
-
将此服务账户和集群角色绑定应用到您的集群。
kubectl apply -f eks-admin-service-account.yaml
输出:
serviceaccount "eks-admin" created clusterrolebinding.rbac.authorization.k8s.io "eks-admin" created
第 3 步:连接到控制面板
现在,已将 Kubernetes 控制面板部署到集群,并且您已具有可用于查看和控制集群的管理员服务账户,您可使用该服务账户连接到控制面板。
连接到 Kubernetes 控制面板
-
检索
eks-admin
服务账户的身份验证令牌。从输出中复制<authentication_token>
值。您可以使用此令牌连接到控制面板。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>
-
启动
kubectl proxy
。kubectl proxy
-
要访问控制面板终端节点,请使用 Web 浏览器打开以下链接:http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#!/login
。 -
选择 Token(令牌),将上一个命令中的
<authentication_token>
输出粘贴到 Token(令牌)字段中,然后选择 SIGN IN(登录)。注意 可能需要等待几分钟,之后 CPU 和内存指标才会显示在控制面板中。
步骤 4:后续步骤
在连接到 Kubernetes 控制面板之后,可使用 eks-admin
服务账户查看和控制集群。有关使用控制面板的更多信息,请参阅 GitHub 上的项目文档