

 **協助改進此頁面** 

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

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

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

# 將外部 Kubernetes 叢集連線至 Amazon EKS 管理主控台
<a name="connecting-cluster"></a>

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

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

## 考量事項
<a name="connecting-cluster-considerations"></a>

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

## 先決條件
<a name="connector-prereqs"></a>
+ 確認已建立 Amazon EKS 連接器代理程式角色。請遵循[建立 Amazon EKS 連接器代理程式角色](connector-iam-role.md#create-connector-role)中的步驟操作。
+ 您必須擁有以下許可才能註冊叢集：
  +  `eks:RegisterCluster` 
  +  `ssm:CreateActivation` 
  +  `ssm:DeleteActivation` 
  +  `iam:PassRole` 

## 步驟 1：註冊叢集
<a name="connector-connecting"></a>

若要將叢集註冊至 Amazon EKS 連接器，您可使用以下工具之一：
+  [AWS CLI](#awscli_register_cluster_connect) 
+  [AWS 管理主控台](#console_register_cluster_connect) 
+  [`eksctl`](#eksctl_register_cluster_connect) 

### AWS CLI
<a name="awscli_register_cluster_connect"></a>

1.  必須安裝 AWS CLI。若要安裝或升級，請參閱[安裝 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)。

1. 對於連接器組態，請指定 Amazon EKS 連接器代理程式 IAM 角色。如需詳細資訊，請參閱 [Amazon EKS 連接器的必要 IAM 角色](eks-connector.md#connector-iam-permissions)。

   ```
   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-region`、`activationId` 和 `activationCode` 值。

### AWS 管理主控台
<a name="console_register_cluster_connect"></a>

1. 開啟 [Amazon EKS 主控台](https://console.aws.amazon.com/eks/home#/clusters)。

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

1. 在 **Configure cluster** (設定叢集) 區段上，填寫下列欄位：
   +  **Name** (名稱) – 叢集的唯一名稱。
   +  **Provider** (供應商) – 選擇以顯示 Kubernetes 叢集供應商的下拉式清單。若沒有相符的特定供應商，請選取**其他**。
   +  **EKS Connector role** (EKS 連接器角色)：選取用於連接叢集的角色。

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

1. 系統隨即會顯示叢集概觀頁面。如果您想使用 Helm Chart，請複製 `helm install` 命令並繼續下一個步驟。如果您想要使用 YAML 清單檔案，請選擇**下載 YAML 檔案**，將清單檔案檔案下載至本機磁碟機。
**重要**  
這是您複製 `helm install` 命令或下載此檔案的唯一機會。請勿離開此頁面，以免連結無法存取；若已離開此頁，則必須取消註冊叢集並從頭開始執行步驟。

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

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

### `eksctl`
<a name="eksctl_register_cluster_connect"></a>

1.  必須安裝 `eksctl` 版本 `0.68` 或更新版本。若要將其安裝或升級，請參閱 [Amazon EKS 入門 – `eksctl`](getting-started-eksctl.md)。

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

   ```
   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 天內套用至外部叢集，否則註冊將會過期。

1. 在可存取叢集的終端機中，套用 `eks-connector-binding.yaml` 檔案：

   ```
   kubectl apply -f eks-connector-binding.yaml
   ```

## 步驟 2：安裝 `eks-connector` 代理程式
<a name="eks-connector-apply"></a>

要安裝 `eks-connector` 代理程式，請使用以下工具之一：
+  [Helm](#helm_agent_cluster_connect) 
+  [yaml](#yaml_agent_cluster_connect) 

### Helm
<a name="helm_agent_cluster_connect"></a>

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

1. 如果您在上一個步驟中使用 AWS CLI，請分別以 `activationId` 和 `activationCode` 值來取代下列命令中的 `ACTIVATION_CODE` 和 `ACTIVATION_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 管理主控台，請使用您從上一個步驟複製的命令 (已填入這些值)。

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

### yaml
<a name="yaml_agent_cluster_connect"></a>

將 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
   ```

1. 編輯 Amazon EKS 連接器 YAML 檔案，以來自上一個步驟輸出的 `aws-region`、`activationId` 和 `activationCode` 來取代 `%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。

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

   ```
   kubectl apply -f eks-connector.yaml
   ```

1. 將 Amazon EKS 連接器清單檔案，以及角色繫結 YAML 檔案套用至 Kubernetes 叢集後，請確認叢集已成功連線。

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

   輸出應該包含 `status=ACTIVE`。

1. (選用) 將標籤新增至您的叢集。如需詳細資訊，請參閱 [使用標籤組織 Amazon EKS 資源](eks-using-tags.md)。

## 後續步驟
<a name="eks-connector-next"></a>

如果您對這些步驟有任何問題，請參閱 [排解 Amazon EKS 連接器問題](troubleshooting-connector.md)。

若要授予其他 [IAM 主體](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)對 Amazon EKS 主控台的存取權，以檢視已連接叢集中的 Kubernetes 資源，請參閱 [授予在 Amazon EKS 主控台上檢視 Kubernetes 叢集資源的存取權](connector-grant-access.md)。