教學:部署 Kubernetes 儀表板 (Web UI) - Amazon EKS

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

教學:部署 Kubernetes 儀表板 (Web UI)

本教學會逐步引導您將 Kubernetes 儀表板部署到Amazon EKS您的叢集,完成含 CPU 和記憶體指標。它還可協助您建立 Amazon EKS 管理員服務帳戶,您可以使用此帳戶安全地連接到儀表板來檢視和控制您的叢集。


            Kubernetes 儀表板

Prerequisites

本教學課程的假設如下:

步驟 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. 若要存取儀表板端點,請使用網頁瀏覽器開啟以下連結: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