

 **協助改進此頁面** 

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

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

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

# 連接混合節點
<a name="hybrid-nodes-join"></a>

**注意**  
下列步驟適用於執行 Bottlerocket 以外的相容作業系統的混合節點。如需連線執行 Bottlerocket 的混合節點的步驟，請參閱 [使用 Bottlerocket 連接混合節點](hybrid-nodes-bottlerocket.md)。

本主題會說明如何將混合節點連接至 Amazon EKS 叢集。混合節點加入叢集後，其即會在 Amazon EKS 主控台和 Kubernetes 相容工具 (例如 kubectl) 中顯示為「未就緒」狀態。完成此頁面上的步驟後，請繼續 [設定混合節點的 CNI](hybrid-nodes-cni.md)，以讓您的混合節點準備好執行應用程式。

## 先決條件
<a name="_prerequisites"></a>

將混合節點連接至 Amazon EKS 叢集之前，請確保您已完成先決條件步驟。
+ 您的內部部署環境與託管您的 Amazon EKS 叢集的 AWS 區域之間已建立網路連線。如需詳細資訊，請參閱「[準備混合節點的聯網](hybrid-nodes-networking.md)」。
+ 您已在內部部署主機上安裝了適用於混合節點的相容作業系統。如需詳細資訊，請參閱「[準備混合節點的作業系統](hybrid-nodes-os.md)」。
+ 您已建立混合節點 IAM 角色，並設定內部部署憑證提供者 (AWS Systems Manager 混合啟用或 AWS IAM Roles Anywhere)。如需詳細資訊，請參閱「[準備混合節點的憑證](hybrid-nodes-creds.md)」。
+ 您已建立了已啟用混合節點的 Amazon EKS 叢集。如需詳細資訊，請參閱「[建立具有混合節點的 Amazon EKS 叢集](hybrid-nodes-cluster-create.md)」。
+ 您已將混合節點 IAM 角色與 Kubernetes 角色型存取控制 (RBAC) 許可建立關聯。如需詳細資訊，請參閱「[準備混合節點的叢集存取](hybrid-nodes-cluster-prep.md)」。

## 步驟 1：在每個內部部署主機上安裝混合節點 CLI (`nodeadm`)
<a name="_step_1_install_the_hybrid_nodes_cli_nodeadm_on_each_on_premises_host"></a>

如果您在預先建置的作業系統映像中包含 Amazon EKS 混合節點 CLI (`nodeadm`)，則可以略過此步驟。如需 `nodeadm` 混合節點版本的詳細資訊，請參閱 [混合節點 `nodeadm` 參考](hybrid-nodes-nodeadm.md)。

`nodeadm` 的混合節點版本託管於前端為 Amazon CloudFront 的 Amazon S3 中。若要在每個內部部署主機上安裝 `nodeadm`，您可以從內部部署主機執行下列命令。

 **對於 x86\_64 主機：**

```
curl -OL 'https://hybrid-assets.eks.amazonaws.com/releases/latest/bin/linux/amd64/nodeadm'
```

 **對於 ARM 主機** 

```
curl -OL 'https://hybrid-assets.eks.amazonaws.com/releases/latest/bin/linux/arm64/nodeadm'
```

在每個主機上，為下載的二進位檔新增可執行檔許可。

```
chmod +x nodeadm
```

## 步驟 2：使用 `nodeadm` 安裝混合節點相依性
<a name="_step_2_install_the_hybrid_nodes_dependencies_with_nodeadm"></a>

如果您要在預先建置的作業系統映像中安裝混合節點相依性，則可以略過此步驟。`nodeadm install` 命令可用於安裝混合節點所需的所有相依性。混合節點相依性包括 containerd、kubelet、kubectl 和 AWS SSM 或 AWS IAM Roles Anywhere 元件。如需 `nodeadm install` 所安裝元件和檔案位置的詳細資訊，請參閱 [混合節點 `nodeadm` 參考](hybrid-nodes-nodeadm.md)。如需 `nodeadm install` 程序必須在內部部署防火牆中允許的網域的詳細資訊，請參閱混合節點的 [準備混合節點的聯網](hybrid-nodes-networking.md)。

執行以下命令，以在您的內部部署主機上安裝混合節點相依性。以下命令必須由主機上具有 sudo/root 存取權的使用者執行。

**重要**  
混合節點 CLI (`nodeadm`) 必須由主機上具有 sudo/root 存取權的使用者執行。
+ 使用 Amazon EKS 叢集的 Kubernetes 次要版本取代 `K8S_VERSION`，例如 `1.31`。如需支援的 Kubernetes 版本的清單，請參閱 [Amazon EKS 支援的版本](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html)。
+ 使用您正在使用的內部部署憑證提供者取代 `CREDS_PROVIDER`。AWS SSM 的有效值為 `ssm`，而 AWS IAM Roles Anywhere 的有效值為 `iam-ra`。

```
nodeadm install {{K8S_VERSION}} --credential-provider {{CREDS_PROVIDER}}
```

## 步驟 3：將混合節點連接至您的叢集
<a name="_step_3_connect_hybrid_nodes_to_your_cluster"></a>

將混合節點連接至您的叢集之前，請確保您已獲得內部部署防火牆和叢集的安全群組中的必要存取權，允許往返 Amazon EKS 控制平面與混合節點之間的通訊。此步驟中的大多數問題都與防火牆組態、安全群組組態或混合節點 IAM 角色組態相關。

**重要**  
混合節點 CLI (`nodeadm`) 必須由主機上具有 sudo/root 存取權的使用者執行。

1. 在每個主機上建立包含部署值的 `nodeConfig.yaml` 檔案。如需可用組態設定的完整說明，請參閱 [混合節點 `nodeadm` 參考](hybrid-nodes-nodeadm.md)。如果您的混合節點 IAM 角色沒有 `eks:DescribeCluster` 動作的許可，您必須在 `nodeConfig.yaml` 的叢集區段中傳遞 Kubernetes API 端點、叢集 CA 套件和 Kubernetes Service IPv4 CIDR。

   1. 如果您為內部部署憑證提供者使用 AWS SSM 混合啟用，請使用下列 `nodeConfig.yaml` 範例。

      1. 使用您叢集的名稱取代 `CLUSTER_NAME`。

      1. 使用託管叢集的 AWS 區域取代 `AWS_REGION`。例如 `us-west-2`。

      1. 使用您在建立 AWS SSM 混合啟用時收到的啟用代碼取代 `ACTIVATION_CODE`。如需詳細資訊，請參閱「[準備混合節點的憑證](hybrid-nodes-creds.md)」。

      1. 使用您在建立 AWS SSM 混合啟用時收到的啟用 ID 取代 `ACTIVATION_ID`。您可以從 AWS Systems Manager 主控台或 AWS CLI `aws ssm describe-activations` 命令擷取此資訊。

         ```
         apiVersion: node.eks.aws/v1alpha1
         kind: NodeConfig
         spec:
           cluster:
             name: CLUSTER_NAME
             region: AWS_REGION
           hybrid:
             ssm:
               activationCode: ACTIVATION_CODE
               activationId: ACTIVATION_ID
         ```

   1. 如果您為內部部署憑證提供者使用 AWS IAM Roles Anywhere，請使用下列 `nodeConfig.yaml` 範例。

      1. 使用您叢集的名稱取代 `CLUSTER_NAME`。

      1. 使用託管叢集的 AWS 區域取代 `AWS_REGION`。例如 `us-west-2`。

      1. 使用您節點的名稱取代 `NODE_NAME`。如果您已使用 `"sts:RoleSessionName": "${aws:PrincipalTag/x509Subject/CN}"` 資源條件設定混合節點 IAM 角色的信任政策，則節點名稱必須與主機上的憑證的 CN 相符。您使用的 `nodeName` 不可超過 64 個字元。

      1. 使用您在準備混合節點憑證的步驟中設定的信任錨的 ARN 取代 `TRUST_ANCHOR_ARN`。

      1. 使用您在 [準備混合節點的憑證](hybrid-nodes-creds.md) 的步驟中設定的信任錨的 ARN 取代 `PROFILE_ARN`。

      1. 使用混合節點 IAM 角色的 ARN 取代 `ROLE_ARN`。

      1. 使用磁碟中節點憑證的路徑取代 `CERTIFICATE_PATH`。如未指定，預設為 `/etc/iam/pki/server.pem`。

      1. 使用磁碟中憑證私有金鑰的路徑取代 `KEY_PATH`。如未指定，預設為 `/etc/iam/pki/server.key`。

         ```
         apiVersion: node.eks.aws/v1alpha1
         kind: NodeConfig
         spec:
           cluster:
             name: CLUSTER_NAME
             region: AWS_REGION
           hybrid:
             iamRolesAnywhere:
               nodeName: NODE_NAME
               trustAnchorArn: TRUST_ANCHOR_ARN
               profileArn: PROFILE_ARN
               roleArn: ROLE_ARN
               certificatePath: CERTIFICATE_PATH
               privateKeyPath: KEY_PATH
         ```

1. 使用您的 `nodeConfig.yaml` 執行 `nodeadm init` 命令，以將混合節點連接至 Amazon EKS 叢集。

   ```
   nodeadm init -c file://nodeConfig.yaml
   ```

如果上述命令成功完成，則您的混合節點已加入您的 Amazon EKS 叢集。您可以在 Amazon EKS 主控台中透過導覽至叢集的 Compute (運算) 索引標籤 ([確保 IAM 主體具有檢視許可](view-kubernetes-resources.md#view-kubernetes-resources-permissions)) 或使用 `kubectl get nodes` 來驗證這一點。

**重要**  
您的節點將處於 `Not Ready` 狀態，這在意料之中，因為您的混合節點上並未執行 CNI。如果您的節點未加入叢集，請參閱 [故障診斷混合節點](hybrid-nodes-troubleshooting.md)。

## 步驟 4：設定混合節點的 CNI
<a name="_step_4_configure_a_cni_for_hybrid_nodes"></a>

要讓您的混合節點準備好執行應用程式，請繼續執行 [設定混合節點的 CNI](hybrid-nodes-cni.md) 上的步驟。