檢視 Kubernetes 資源 - Amazon EKS

協助改善此頁面

想要為此使用者指南做出貢獻嗎? 捲動至此頁面底部,然後選取 [編輯此頁面於] GitHub。您的貢獻將有助於使我們的用戶指南更適合所有人。

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

檢視 Kubernetes 資源

您可以使用 AWS Management Console來檢視部署至叢集的 Kubernetes 資源。您無法使用 AWS CLI 或檢視Kubernetes資源eksctl。若要檢視使用命令列工具的 Kubernetes 資源,請使用 kubectl

先決條件

若要檢視中 [運算] 索引標籤上的 [資源] 索引標籤和 [節點] 區段 AWS Management Console,您使用的 IAM 主體必須具有特定的 Kubernetes IAM 和許可。如需詳細資訊,請參閱 所需的許可

若要檢視Kubernetes資源 AWS Management Console
  1. 在以下網址開啟 Amazon EKS 主控台:https://console.aws.amazon.com/eks/home#/clusters

  2. Clusters (叢集) 清單中,選取包含您要檢視的 Kubernetes 資源的叢集。

  3. 選取 Resources (資源) 標籤。

  4. 選取您要檢視資源的 Resource Type (資源類型) 群組,例如 Workloads (工作負載)。您可以看到該群組中的資源類型清單。

  5. 選取資源類型,例如 Workloads (工作負載) 群組中的 Deployments (部署)。您可以看到資源類型的說明、一個可供獲取有關資源類型詳細資訊的 Kubernetes 文件連結,以及部署在叢集上的該類型資源列表。如果清單是空的,則不會將該類型的資源部署至您的叢集。

  6. 請選取資源以檢視其詳細資訊。請試試看下列範例:

    • 選取 Workloads (工作負載) 群組,選取 Deployments (部署) 資源類型,然後選取 coredns 資源。當您選取資源時,依預設,您位於 Structured view (結構式檢視)。針對某些資源類型,您會在 Structured view (結構式檢視) 看到 Pods 區段。本區段列出由工作負載管理的 Pods。您可以選取任何列出的 Pod 來檢視關於 Pod 的資訊。並非所有資源類型都顯示於 Structured View (結構式檢視)。若選取資源頁面右上角的 Raw view (原始檢視),您可以看到來自 Kubernetes API 對於資源的完整 JSON 回應。

    • 選取 Cluster (叢集) 群組,然後選取 Nodes (節點) 資源類型。您將看到叢集中所有節點的清單。節點可以是任何 Amazon EKS 節點類型。這個列表與您選取叢集的 Compute (運算) 標籤時,在 Nodes (節點)看到的列表為同一列表。從清單中選取節點資源。在 Structured view (結構式檢視) 中,您還會看到 Pods 區段。本區段顯示在節點上運行的所有 Pods。

所需的許可

若要檢視中 [運算] 索引標籤上的 [資源] 索引標籤和節點區段 AWS Management Console,您使用的 IAM 主體必須具有特定的最低 Kubernetes IAM 和許可。完成以下步驟,將所需的許可指派給您的 IAM 主體。

  1. 請確保將 eks:AccessKubernetesApi 和檢視 Kubernetes 資源所需的其他必要 IAM 許可指派給您正在使用的 IAM 主體。如需如何編輯 IAM 主體許可的詳細資訊,請參閱《IAM 使用者指南》中的控制對主體的存取。如需如何編輯角色許可的詳細資訊,請參閱《IAM 使用者指南》中的變更角色許可 (主控台)

    以下範例政策包含主體欲檢視帳戶中所有叢集的 Kubernetes 資源所需必要許可。將 111122223333 取代為您的 AWS 帳戶 ID。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:ListFargateProfiles", "eks:DescribeNodegroup", "eks:ListNodegroups", "eks:ListUpdates", "eks:AccessKubernetesApi", "eks:ListAddons", "eks:DescribeCluster", "eks:DescribeAddonVersions", "eks:ListClusters", "eks:ListIdentityProviderConfigs", "iam:ListRoles" ], "Resource": "*" }, { "Effect": "Allow", "Action": "ssm:GetParameter", "Resource": "arn:aws:ssm:*:111122223333:parameter/*" } ] }

    若要檢視已連線叢集中的節點,Amazon EKS connector IAM 角色應能模擬叢集中的主體。這可讓 Amazon EKS 連接器 將主體對應至 Kubernetes 使用者。

  2. 建立繫結至 Kubernetes roleclusterrole 且具有檢視 Kubernetes 資源所需必要許可的 Kubernetes rolebindingclusterrolebinding。若要進一步了解 Kubernetes 角色和角色繫結,請參閱 Kubernetes 文件中的 Using RBAC Authorization (使用 RBAC 授權)。您可以將以下清單檔案之一套用至建立具備 Kubernetes 所需必要許可的 rolerolebindingclusterroleclusterrolebinding 的叢集:

    檢視所有命名空間中的 Kubernetes 資源

    檔案中的群組名稱為 eks-console-dashboard-full-access-group。使用下列命令套用清單檔案至您的叢集:

    kubectl apply -f https://s3.us-west-2.amazonaws.com/amazon-eks/docs/eks-console-full-access.yaml
    檢視特定命名空間中的 Kubernetes 資源

    此檔案中的命名空間為 default。檔案中的群組名稱為 eks-console-dashboard-restricted-access-group。使用下列命令套用清單檔案至您的叢集:

    kubectl apply -f https://s3.us-west-2.amazonaws.com/amazon-eks/docs/eks-console-restricted-access.yaml

    若您需要變更 Kubernetes 群組名稱、命名空間、許可或檔案中的任何其他組態,請先下載該檔案並進行編輯,然後再將其套用至叢集:

    1. 執行下列其中一個命令,下載檔案:

      curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/docs/eks-console-full-access.yaml
      curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/docs/eks-console-restricted-access.yaml
    2. 視必要編輯檔案。

    3. 使用下列其中一個命令套用清單檔案至您的叢集:

      kubectl apply -f eks-console-full-access.yaml
      kubectl apply -f eks-console-restricted-access.yaml
  3. IAM 主體對應至 aws-auth ConfigMap 中的 Kubernetes 使用者或群組。您可以使用例如 eksctl 的工具來更新 ConfigMap,或者您可以透過編輯來手動更新它。

    重要

    我們建議您使用 eksctl 或其他工具來編輯 ConfigMap。如需有關您可使用的其他工具的資訊,請參閱《Amazon EKS 最佳實務指南》中的使用工具對 aws-authConfigMap 進行變更。格式錯誤的 aws-auth ConfigMap可能會導致您失去叢集存取權。

    eksctl
    先決條件

    已在裝置或 AWS CloudShell上安裝版本 0.183.0 或更新版本的 eksctl 命令列工具。如需有關安裝或更新 eksctl 的指示,請參閱 eksctl 文件中的安裝一節。

    1. ConfigMap 檢視目前的映射項目。使用您叢集的名稱取代 my-clusterregion-code以叢集所 AWS 區域 在的位置取代。

      eksctl get iamidentitymapping --cluster my-cluster --region=region-code

      範例輸出如下。

      ARN USERNAME GROUPS ACCOUNT arn:aws:iam::111122223333:role/eksctl-my-cluster-my-nodegroup-NodeInstanceRole-1XLS7754U3ZPA system:node:{{EC2PrivateDNSName}} system:bootstrappers,system:nodes
    2. 為角色新增映射項目。此範例假設您在第一個步驟中將 IAM 許可連接至名為 my-console-viewer-role 的角色。使用您的帳戶 ID 取代 111122223333

      eksctl create iamidentitymapping \ --cluster my-cluster \ --region=region-code \ --arn arn:aws:iam::111122223333:role/my-console-viewer-role \ --group eks-console-dashboard-full-access-group \ --no-duplicate-arns
      重要

      角色 ARN 不能包含例如 role/my-team/developers/my-role 的路徑。ARN 的格式必須是 arn:aws:iam::111122223333:role/my-role。在此範例中,需移除 my-team/developers/

      範例輸出如下。

      [...]
      2022-05-09 14:51:20 [ℹ]  adding identity "arn:aws:iam::111122223333:role/my-console-viewer-role" to auth ConfigMap
    3. 為使用者新增映射項目。IAM 最佳實務建議您將許可授予角色而非使用者。此範例假設您在第一個步驟中將 IAM 許可連接至名為 my-user 的使用者。使用您的帳戶 ID 取代 111122223333

      eksctl create iamidentitymapping \ --cluster my-cluster \ --region=region-code \ --arn arn:aws:iam::111122223333:user/my-user \ --group eks-console-dashboard-restricted-access-group \ --no-duplicate-arns

      範例輸出如下。

      [...]
      2022-05-09 14:53:48 [ℹ]  adding identity "arn:aws:iam::111122223333:user/my-user" to auth ConfigMap
    4. 再次檢視 ConfigMap 中的映射項目。

      eksctl get iamidentitymapping --cluster my-cluster --region=region-code

      範例輸出如下。

      ARN USERNAME GROUPS ACCOUNT arn:aws:iam::111122223333:role/eksctl-my-cluster-my-nodegroup-NodeInstanceRole-1XLS7754U3ZPA system:node:{{EC2PrivateDNSName}} system:bootstrappers,system:nodes arn:aws:iam::111122223333:role/my-console-viewer-role eks-console-dashboard-full-access-group arn:aws:iam::111122223333:user/my-user eks-console-dashboard-restricted-access-group
    Edit ConfigMap manually

    如需新增使用者或角色到 aws-auth ConfigMap 的詳細資訊,請參閱 將 IAM 主體新增至 Amazon EKS 叢集

    1. 開啟 aws-auth ConfigMap 進行編輯。

      kubectl edit -n kube-system configmap/aws-auth
    2. 新增映射至 aws-auth ConfigMap,但不要取代任何現有映射。以下範例新增了在第一個步驟新增許可的 IAM 主體之間的映射,並新增了在上一個步驟建立的 Kubernetes 群組:

      • my-console-viewer-role 角色和 eks-console-dashboard-full-access-group

      • my-user 使用者和 eks-console-dashboard-restricted-access-group

      這些範例假設您在第一個步驟中將 IAM 許可連接至名為 my-console-viewer-role 的角色和名為 my-user 的使用者。請111122223333以您的 AWS 帳號 ID 取代。

      apiVersion: v1 data: mapRoles: | - groups: - eks-console-dashboard-full-access-group rolearn: arn:aws:iam::111122223333:role/my-console-viewer-role username: my-console-viewer-role mapUsers: | - groups: - eks-console-dashboard-restricted-access-group userarn: arn:aws:iam::111122223333:user/my-user username: my-user
      重要

      角色 ARN 不能包含例如 role/my-team/developers/my-console-viewer-role 的路徑。ARN 的格式必須是 arn:aws:iam::111122223333:role/my-console-viewer-role。在此範例中,需移除 my-team/developers/

    3. 儲存檔案並結束您的文字編輯器。