教程:部署 Kubernetes 控制面板 (Web UI) - Amazon EKS
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

教程:部署 Kubernetes 控制面板 (Web UI)

本教程指导您完成将 Kubernetes 控制面板部署到 Amazon EKS 集群的过程,包括 CPU 和内存指标。它还帮助您创建可用于安全地连接到控制面板以查看和控制集群的 Amazon EKS 管理员服务账户。


            Kubernetes 控制面板

Prerequisites

本教程假定:

步骤 1:部署 Kubernetes Metrics Server

Kubernetes Metrics Server 是集群中资源使用情况数据的聚合器,它在 Amazon EKS 集群中默认不部署。Kubernetes 控制面板使用指标服务器来收集集群的指标,例如 CPU 和内存随时间的使用情况。

部署 Metrics Server

  1. 使用以下命令部署 Metrics Server:

    kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.7/components.yaml
  2. 使用以下命令验证 metrics-server 部署是否运行所需数量的 Pod:

    kubectl get deployment metrics-server -n kube-system

    输出

    NAME READY UP-TO-DATE AVAILABLE AGE metrics-server 1/1 1 1 6m

步骤 2:部署 Kubernetes 控制面板

完成与集群所在的区域对应的选项的说明。

  • 中国以外的所有区域北京和宁夏

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.5/aio/deploy/recommended.yaml
  • 北京和宁夏 中国

    1. 使用下面的命令下载 Kubernetes 控制面板清单。

      curl -o recommended.yaml https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.5/aio/deploy/recommended.yaml
    2. 使用以下步骤编辑清单文件。

      1. 查看您下载的一个或多个清单文件,并记下映像名称。使用以下命令在本地下载映像。

        docker pull image:<tag>
      2. 使用以下命令标记要推送到中国区域内的 Amazon Elastic Container Registry 存储库的映像。

        docker tag image:<tag> <aws_account_id>.dkr.ecr.<cn-north-1>.amazonaws.com/image:<tag>
      3. 使用以下命令将映像推送到中国区域内的 Amazon ECR 存储库。

        docker push image:<tag> <aws_account_id>.dkr.ecr.<cn-north-1>.amazonaws.com/image:<tag>
      4. 更新一个或多个 Kubernetes 清单文件或以引用您所在区域内的 Amazon ECR 映像 URL。

    3. 使用以下命令将清单应用于集群。

      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

步骤 3:创建 eks-admin 服务账户和集群角色绑定

默认情况下,Kubernetes 控制面板用户的权限是有限的。在此部分中,您创建一个可用于使用管理员级别权限安全地连接到控制面板的 eks-admin 服务账户和集群角色绑定。有关更多信息,请参阅 Kubernetes 文档中的管理服务账户

创建 eks-admin 服务账户和集群角色绑定

重要

使用此过程创建的示例服务账户在集群上具有完整的 cluster-admin (超级用户) 特权。有关更多信息,请参阅 Kubernetes 文档中的使用 RBAC 授权

  1. 使用以下文本创建一个名为 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
  2. 将此服务账户和集群角色绑定应用到您的集群。

    kubectl apply -f eks-admin-service-account.yaml

    输出:

    serviceaccount "eks-admin" created clusterrolebinding.rbac.authorization.k8s.io "eks-admin" created

步骤 4:连接到控制面板

现在,已将 Kubernetes 控制面板部署到集群,并且您已具有可用于查看和控制集群的管理员服务账户,您可使用该服务账户连接到控制面板。

连接到 Kubernetes 控制面板

  1. 检索 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>
  2. 启动 kubectl proxy

    kubectl proxy
  3. 要访问控制面板终端节点,请使用 Web 浏览器打开以下链接:http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#!/login

  4. 选择 Token (令牌),将上一个命令中的 <authentication_token> 输出粘贴到 Token (令牌) 字段中,然后选择 SIGN IN (登录)

    
                        Kubernetes 令牌身份验证
    注意

    可能需要等待几分钟,之后 CPU 和内存指标才会显示在控制面板中。

步骤 5:后续步骤

在连接到 Kubernetes 控制面板之后,可使用 eks-admin 服务账户查看和控制集群。有关使用控制面板的更多信息,请参阅 上的项目文档GitHub。