將外部 Kubernetes 叢集連線至 Amazon EKS 管理主控台 - Amazon EKS

協助改進此頁面

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

將外部 Kubernetes 叢集連線至 Amazon EKS 管理主控台

您可使用下列程序中的多種方法,將外部 Kubernetes 叢集連接到 Amazon EKS。此程序包含兩個步驟:向 Amazon EKS 註冊叢集,以及在叢集中安裝 eks-connector 代理程式。

重要

您必須在完成第一個步驟後的 3 天內完成第二個步驟,以免註冊過期。

考量事項

安裝代理程式時,您可以使用 YAML 資訊清單。或者,如果您使用 AWS 管理主控台 或 AWS 命令列介面註冊叢集,則可以使用 Helm。但是,如果您使用 eksctl 註冊叢集,則無法使用 Helm 安裝代理程式。

先決條件

  • 確認已建立 Amazon EKS 連接器代理程式角色。請遵循建立 Amazon EKS 連接器代理程式角色中的步驟操作。

  • 您必須擁有以下許可才能註冊叢集:

    • eks:RegisterCluster

    • ssm:CreateActivation

    • ssm:DeleteActivation

    • iam:PassRole

步驟 1:註冊叢集

若要將叢集註冊至 Amazon EKS 連接器,您可使用以下工具之一:

AWS CLI

  1. 必須安裝 AWS CLI。若要安裝或升級,請參閱安裝 AWS CLI

  2. 對於連接器組態,請指定 Amazon EKS 連接器代理程式 IAM 角色。如需詳細資訊,請參閱 Amazon EKS 連接器的必要 IAM 角色

    aws eks register-cluster \ --name my-first-registered-cluster \ --connector-config roleArn=arn:aws:iam::111122223333:role/AmazonEKSConnectorAgentRole,provider="OTHER" \ --region aws-region

    範例輸出如下。

    { "cluster": { "name": "my-first-registered-cluster", "arn": "arn:aws:eks:region:111122223333:cluster/my-first-registered-cluster", "createdAt": 1627669203.531, "ConnectorConfig": { "activationId": "xxxxxxxxACTIVATION_IDxxxxxxxx", "activationCode": "xxxxxxxxACTIVATION_CODExxxxxxxx", "activationExpiry": 1627672543.0, "provider": "OTHER", "roleArn": "arn:aws:iam::111122223333:role/AmazonEKSConnectorAgentRole" }, "status": "CREATING" } }

    您會在接下來的步驟中使用 aws-regionactivationIdactivationCode 值。

AWS 管理主控台

  1. 開啟 Amazon EKS 主控台

  2. 選擇 Add cluster (新增叢集),然後選取 Register (註冊) 以顯示組態頁面。

  3. Configure cluster (設定叢集) 區段上,填寫下列欄位:

    • Name (名稱) – 叢集的唯一名稱。

    • Provider (供應商) – 選擇以顯示 Kubernetes 叢集供應商的下拉式清單。若沒有相符的特定供應商,請選取其他

    • EKS Connector role (EKS 連接器角色):選取用於連接叢集的角色。

  4. 選取 Register cluster (註冊叢集)。

  5. 系統隨即會顯示叢集概觀頁面。如果您想使用 Helm Chart,請複製 helm install 命令並繼續下一個步驟。如果您想要使用 YAML 清單檔案,請選擇下載 YAML 檔案,將清單檔案檔案下載至本機磁碟機。

    重要

    這是您複製 helm install 命令或下載此檔案的唯一機會。請勿離開此頁面,以免連結無法存取;若已離開此頁,則必須取消註冊叢集並從頭開始執行步驟。

    僅能針對已註冊叢集使用命令或清單檔案檔案一次。如果從 Kubernetes 叢集刪除資源,您必須重新註冊叢集並取得新的清單檔案檔案。

繼續執行下一步,將清單檔案檔案套用到 Kubernetes 叢集。

eksctl

  1. 必須安裝 eksctl 版本 0.68 或更新版本。若要將其安裝或升級,請參閱 Amazon EKS 入門 – eksctl

  2. 透過提供名稱、供應商和區域來註冊叢集。

    eksctl register cluster --name my-cluster --provider my-provider --region region-code

    輸出範例:

    2021-08-19 13:47:26 [ℹ] creating IAM role "eksctl-20210819194112186040" 2021-08-19 13:47:26 [ℹ] registered cluster "<name>" successfully 2021-08-19 13:47:26 [ℹ] wrote file eks-connector.yaml to <current directory> 2021-08-19 13:47:26 [ℹ] wrote file eks-connector-clusterrole.yaml to <current directory> 2021-08-19 13:47:26 [ℹ] wrote file eks-connector-console-dashboard-full-access-group.yaml to <current directory> 2021-08-19 13:47:26 [!] note: "eks-connector-clusterrole.yaml" and "eks-connector-console-dashboard-full-access-group.yaml" give full EKS Console access to IAM identity "<aws-arn>", edit if required; read https://eksctl.io/usage/eks-connector for more info 2021-08-19 13:47:26 [ℹ] run `kubectl apply -f eks-connector.yaml,eks-connector-clusterrole.yaml,eks-connector-console-dashboard-full-access-group.yaml` before expiry> to connect the cluster

    這會在您的本機電腦上建立檔案。這些檔案必須在 3 天內套用至外部叢集,否則註冊將會過期。

  3. 在可存取叢集的終端機中,套用 eks-connector-binding.yaml 檔案:

    kubectl apply -f eks-connector-binding.yaml

步驟 2:安裝 eks-connector 代理程式

要安裝 eks-connector 代理程式,請使用以下工具之一:

Helm

注意

如果您已向 eksctl 註冊叢集,請使用 YAML 資訊清單方法,而非 Helm Chart 方法。

  1. 如果您在上一個步驟中使用 AWS CLI,請分別以 activationIdactivationCode 值來取代下列命令中的 ACTIVATION_CODEACTIVATION_ID。將 aws-region 取代為您在上一個步驟中使用的 AWS 區域。接著執行命令,在註冊的叢集上安裝 eks-connector 代理程式:

    $ helm install eks-connector \ --namespace eks-connector \ oci://public.ecr.aws/eks-connector/eks-connector-chart \ --set eks.activationCode=ACTIVATION_CODE \ --set eks.activationId=ACTIVATION_ID \ --set eks.agentRegion=aws-region

    如果您在上一個步驟中使用 AWS 管理主控台,請使用您從上一個步驟複製的命令 (已填入這些值)。

  2. 檢查已安裝 eks-connector 部署的健康狀態,並等待 Amazon EKS 中已註冊叢集的狀態成為 ACTIVE

yaml

將 Amazon EKS 連接器清單檔案檔案套用至 Kubernetes 叢集,以便完成連線。若要執行此動作,您必須使用先前描述的方法。如果未於三天內套用資訊清單,Amazon EKS 連接器註冊將到期。如果叢集連線過期,則必須先取消註冊叢集,才能再次連接叢集。

  1. 下載 Amazon EKS 連接器 YAML 檔案。

    curl -O https://amazon-eks.s3.us-west-2.amazonaws.com/eks-connector/manifests/eks-connector/latest/eks-connector.yaml
  2. 編輯 Amazon EKS 連接器 YAML 檔案,以來自上一個步驟輸出的 aws-regionactivationIdactivationCode 來取代 %AWS_REGION%%EKS_ACTIVATION_ID%%EKS_ACTIVATION_CODE% 的所有參考。

    下列範例命令可以取代這些值。

    sed -i "s~%AWS_REGION%~$aws-region~g; s~%EKS_ACTIVATION_ID%~$EKS_ACTIVATION_ID~g; s~%EKS_ACTIVATION_CODE%~$(echo -n $EKS_ACTIVATION_CODE | base64)~g" eks-connector.yaml
    重要

    確認您的啟用代碼格式為 Base64。

  3. 在可存取叢集的終端機中,您可以執行以下命令來套用已更新的清單檔案檔案:

    kubectl apply -f eks-connector.yaml
  4. 將 Amazon EKS 連接器清單檔案,以及角色繫結 YAML 檔案套用至 Kubernetes 叢集後,請確認叢集已成功連線。

    aws eks describe-cluster \ --name "my-first-registered-cluster" \ --region AWS_REGION

    輸出應該包含 status=ACTIVE

  5. (選用) 將標籤新增至您的叢集。如需詳細資訊,請參閱 使用標籤組織 Amazon EKS 資源

後續步驟

如果您對這些步驟有任何問題,請參閱 排解 Amazon EKS 連接器問題

若要授予其他 IAM 主體對 Amazon EKS 主控台的存取權,以檢視已連接叢集中的 Kubernetes 資源,請參閱 授予在 Amazon EKS 主控台上檢視 Kubernetes 叢集資源的存取權