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

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

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

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


            Kubernetes 控制面板

Prerequisites

本教程假定:

第 1 步:部署 Kubernetes 控制面板

  • 对于北京和宁夏以外的地区,应用 Kubernetes 控制面板。

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.5/aio/deploy/recommended.yaml
  • 对于北京和宁夏地区,请下载、修改 Calico 清单并将其应用到您的集群。

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

      curl -o recommended.yaml https://raw.githubusercontent.com/kubernetes/dashboard/blob/master/aio/deploy/recommended.yaml
    2. 修改清单文件。

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

        docker pull image:<tag>
      2. 使用以下命令标记要推送到中国亚马逊弹性容器注册存储库的图像。

        docker tag image:<tag> <aws_account_id>.dkr.ecr.<cn-north-1>.amazonaws.com.cn/image:<tag>
      3. 更新recommended.yaml以引用您所在地区的亚马逊 ECR 图片 URL。

      4. 更新recommended.yaml文件来引用您所在地区的 Amazon ECR 映像存储库,方法是将以下内容添加到规范中。

        registry: <aws_account_id>.dkr.ecr.<cn-north-1>.amazonaws.com.cn
      5. 应用 Kubernetes 仪表板清单。

        kubectl apply -f recommended.yaml
    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

第 2 步:创建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

第 3 步:Connect 到控制面板

现在,已将 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字段,然后选择登录

    
                        Kubernetes 令牌身份验证
    注意

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

第 4 步:后续步骤

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