檢視 AWS 管理主控台 中的 Kubernetes 資源 - Amazon EKS

協助改進此頁面

若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。

檢視 AWS 管理主控台 中的 Kubernetes 資源

您可以檢視部署至使用 AWS 管理主控台 的叢集的 Kubernetes 資源。您無法檢視具有 AWS CLI 或 eksctl 的 Kubernetes 資源。若要使用命令列工具檢視 Kubernetes 資源,請使用 kubectl

注意

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

  1. 開啟 Amazon EKS 主控台

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

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

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

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

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

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

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

所需的許可

若要檢視 AWS 管理主控台 中的資源索引標籤和運算索引標籤上的節點區段,您使用的 IAM 主體必須具有特定的最低 IAM 和 Kubernetes 許可。完成以下步驟,將所需的許可指派給您的 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 Connector 將主體映射至 Kubernetes 使用者。

  2. 建立繫結至 Kubernetes roleclusterrolerolebindingclusterrolebinding,且該種 Kubernetes 角色具有檢視 Kubernetes 資源的必要許可。若要進一步了解 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 編輯

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

  2. ConfigMap 檢視目前的映射項目。使用您叢集的名稱取代 my-cluster。使用叢集所在的 AWS 區域取代 region-code

    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
  3. 為角色新增映射項目。此範例假設您在第一個步驟中將 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
  4. 為使用者新增映射項目。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
  5. 再次檢視 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

手動編輯 ConfigMap

如需新增使用者或角色到 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. 儲存檔案並結束您的文字編輯器。