

 **協助改進此頁面** 

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

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

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

# 在現有的 Amazon EKS 叢集上啟用混合節點或修改組態
<a name="hybrid-nodes-cluster-update"></a>

本主題提供可用選項的概觀，並介紹您建立新增、變更或移除 Amazon EKS 叢集的混合節點組態時需要考量的問題。

若要讓 Amazon EKS 叢集使用混合節點，請在 `RemoteNetworkConfig` 組態中新增內部部署節點的 IP 位址 CIDR 範圍和選用的 Pod 網路。EKS 使用此 CIDR 清單來啟用叢集與內部部署網路之間的連線。如需更新叢集組態時選項的完整清單，請參閱《*Amazon EKS API 參考*》中的 [UpdateClusterConfig](https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateClusterConfig.html)。

您可以對叢集中的 EKS 混合節點聯網組態執行下列任何動作：
+  [新增遠端網路組態，以在現有叢集中啟用 EKS 混合節點。](#hybrid-nodes-cluster-enable-existing)
+  [在現有叢集中新增、變更或移除遠端節點網路或遠端 Pod 網路。](#hybrid-nodes-cluster-update-config)
+  [移除所有遠端節點網路 CIDR 範圍，以在現有叢集中停用 EKS 混合節點。](#hybrid-nodes-cluster-disable)

## 先決條件
<a name="hybrid-nodes-cluster-enable-prep"></a>
+ 為混合節點啟用 Amazon EKS 叢集之前，請確保您的環境符合 [混合節點的先決條件設定](hybrid-nodes-prereqs.md) 中概述的要求以及 [準備混合節點的聯網](hybrid-nodes-networking.md)、 [準備混合節點的作業系統](hybrid-nodes-os.md) 和 [準備混合節點的憑證](hybrid-nodes-creds.md) 中詳細說明的要求。
+ 您的叢集必須使用 IPv4 位址系列。
+ 您的叢集必須使用 `API` 或 `API_AND_CONFIG_MAP` 作為叢集身分驗證模式。修改叢集身分驗證模式的程序在 [變更驗證模式以使用存取項目](setting-up-access-entries.md) 中說明。
+ 建議您對 Amazon EKS Kubernetes API 伺服器端點使用公有或私有端點存取，但不能同時使用兩者。如果您選擇「公有和私有」，Amazon EKS Kubernetes API 伺服器端點一律會解析為在 VPC 外部執行的混合節點的公有 IP，以防止您的混合節點加入叢集。修改叢集網路存取的程序在 [叢集 API 伺服器端點](cluster-endpoint.md) 中說明。
+ 在您裝置上安裝和設定的最新版本 AWS 命令列界面 (AWS CLI)。若要檢查您目前的版本，請使用 `aws --version`。適用於 macOS 的 yum、apt-get 或 Homebrew 等套件管理員通常是最新版本 CLI AWS 後面的幾個版本。若要安裝最新版本，請參閱《 AWS 命令列界面使用者指南》中的[安裝或更新至最新版本的 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) 和[設定 AWS CLI 的設定](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config)。
+ 具有在您的 Amazon EKS 叢集上呼叫 [UpdateClusterConfig](https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateClusterConfig.html) 的許可的 [IAM 主體](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles#iam-term-principal)。
+ 將附加元件更新為與混合節點相容的版本。如需與混合節點相容的附加元件版本，請參閱 [設定混合節點的附加元件](hybrid-nodes-add-ons.md)。
+ 如果您執行的附加元件與混合節點不相容，請確保附加元件 [DaemonSet](https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/) 或[部署](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/)具有下列親和性規則，以防止部署到混合節點。如果尚未存在，請新增下列親和性規則。

  ```
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: eks.amazonaws.com/compute-type
            operator: NotIn
            values:
            - hybrid
  ```

## 考量事項
<a name="hybrid-nodes-cluster-enable-consider"></a>

`remoteNetworkConfig` JSON 物件在更新期間具有下列行為：
+ 您未指定的任何現有組態部分均未變更。如果您未指定 `remoteNodeNetworks` 或 `remotePodNetworks`，則該部分將保持不變。
+ 如果您要修改 CIDR 的 `remoteNodeNetworks` 或 `remotePodNetworks` 清單，則必須在最終組態中指定您想要的完整 CIDR 清單。當您指定對 `remoteNodeNetworks` 或 `remotePodNetworks` CIDR 清單的變更時，EKS 會在更新期間取代原始清單。
+ 您的內部部署節點和 Pod CIDR 區塊必須符合下列要求：

  1. 在其中一個 IPv4 RFC-1918 範圍內：10.0.0.0/8、172.16.0.0/12 或 192.168.0.0/16，或在 RFC 6598 定義的 CGNAT 範圍內： `100.64.0.0/10`

  1. Amazon EKS 叢集的 VPC 的所有 CIDR 或您的 Kubernetes Service IPv4 CIDR 不會彼此重疊。

## 在現有叢集上啟用混合節點
<a name="hybrid-nodes-cluster-enable-existing"></a>

您可以使用下列方式，在現有叢集中啟用 EKS 混合節點：
+  [AWS CloudFormation](#hybrid-nodes-cluster-enable-cfn) 
+  [AWS CLI](#hybrid-nodes-cluster-enable-cli) 
+  [AWS 管理主控台](#hybrid-nodes-cluster-enable-console) 

### 在現有叢集中啟用 EKS 混合節點 - AWS CloudFormation
<a name="hybrid-nodes-cluster-enable-cfn"></a>

1. 若要在叢集中啟用 EKS 混合節點，請將 `RemoteNodeNetwork` 和 (選用) `RemotePodNetwork` 新增至 CloudFormation 範本並更新堆疊。請注意，`RemoteNodeNetwork` 是最多包含一個 `Cidrs` 項目的清單，而 `Cidrs` 是多個 IP CIDR 範圍的清單。

   ```
   RemoteNetworkConfig:
     RemoteNodeNetworks:
       - Cidrs: [RemoteNodeCIDR]
     RemotePodNetworks:
       - Cidrs: [RemotePodCIDR]
   ```

1. 繼續進行[準備混合節點的叢集存取](hybrid-nodes-cluster-prep.md)。

### 在現有叢集中啟用 EKS 混合節點 - AWS CLI
<a name="hybrid-nodes-cluster-enable-cli"></a>

1. 執行下列命令以為您的 EKS 叢集啟用 EKS 混合節點的 `RemoteNetworkConfig`。執行命令之前，請使用您的設定取代下列內容。如需設定的完整清單，請參閱《*Amazon EKS API 參考*》中的 [UpdateClusterConfig](https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateClusterConfig.html)。

   1.  `CLUSTER_NAME`：要更新的 EKS 叢集的名稱。

   1.  `AWS_REGION`：EKS 叢集執行所在的 AWS 區域。

   1.  `REMOTE_NODE_CIDRS`：混合節點的內部部署節點 CIDR。

   1.  `REMOTE_POD_CIDRS` (選用)：在混合節點上執行的工作負載的內部部署 Pod CIDR。

      ```
      aws eks update-cluster-config \
          --name CLUSTER_NAME \
          --region AWS_REGION \
          --remote-network-config '{"remoteNodeNetworks":[{"cidrs":["REMOTE_NODE_CIDRS"]}],"remotePodNetworks":[{"cidrs":["REMOTE_POD_CIDRS"]}]}'
      ```

1. 更新叢集需要幾分鐘才能完成。您可以使用下列命令來查詢叢集的狀態。`CLUSTER_NAME` 將 取代為您修改的叢集名稱，並將 `AWS_REGION`取代為您執行叢集的 AWS 區域。在傳回的輸出為 `ACTIVE` 之前，請勿進行下一個步驟。

   ```
   aws eks describe-cluster \
       --name CLUSTER_NAME \
       --region AWS_REGION \
       --query "cluster.status"
   ```

1. 繼續進行[準備混合節點的叢集存取](hybrid-nodes-cluster-prep.md)。

### 在現有叢集中啟用 EKS 混合節點 - AWS 管理主控台
<a name="hybrid-nodes-cluster-enable-console"></a>

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

1. 選擇叢集名稱以顯示您叢集的資訊。

1. 選擇**聯網**索引標籤，然後選擇**管理**。

1. 在下拉式清單中，選擇**遠端網路**。

1.  **選擇設定遠端網路以啟用混合節點**，然後為混合節點指定您的內部部署節點和 Pod CIDR。

1. 選擇 **Save changes** (儲存變更) 以完成操作。等待叢集狀態變回**作用中**。

1. 繼續進行[準備混合節點的叢集存取](hybrid-nodes-cluster-prep.md)。

## 在現有叢集中更新混合節點組態
<a name="hybrid-nodes-cluster-update-config"></a>

您可以使用下列任何一種方式，在現有混合叢集中修改 `remoteNetworkConfig`：
+  [AWS CloudFormation](#hybrid-nodes-cluster-update-cfn) 
+  [AWS CLI](#hybrid-nodes-cluster-update-cli) 
+  [AWS 管理主控台](#hybrid-nodes-cluster-update-console) 

### 更新現有叢集 - AWS CloudFormation 中的混合組態
<a name="hybrid-nodes-cluster-update-cfn"></a>

1. 使用新的網路 CIDR 值更新您的 CloudFormation 範本。

   ```
   RemoteNetworkConfig:
     RemoteNodeNetworks:
       - Cidrs: [NEW_REMOTE_NODE_CIDRS]
     RemotePodNetworks:
       - Cidrs: [NEW_REMOTE_POD_CIDRS]
   ```
**注意**  
更新 `RemoteNodeNetworks` 或 `RemotePodNetworks` CIDR 清單時，請包含所有 CIDR (新的和現有的)。EKS 會在更新期間取代整個清單。從更新請求省略這些欄位將會保留其現有組態。

1. 使用修改過的範本更新 CloudFormation 堆疊，並等待堆疊更新完成。

### 更新現有叢集 - AWS CLI 中的混合組態
<a name="hybrid-nodes-cluster-update-cli"></a>

1. 若要修改遠端網路 CIDR，請執行下列命令。使用您的設定取代這些值：

   ```
   aws eks update-cluster-config
   --name CLUSTER_NAME
   --region AWS_REGION
   --remote-network-config '{"remoteNodeNetworks":[{"cidrs":["NEW_REMOTE_NODE_CIDRS"]}],"remotePodNetworks":[{"cidrs":["NEW_REMOTE_POD_CIDRS"]}]}'
   ```
**注意**  
更新 `remoteNodeNetworks` 或 `remotePodNetworks` CIDR 清單時，請包含所有 CIDR (新的和現有的)。EKS 會在更新期間取代整個清單。從更新請求省略這些欄位將會保留其現有組態。

1. 等待叢集狀態變回「作用中」，然後再繼續。

### 更新現有叢集中的混合組態 - AWS 管理主控台
<a name="hybrid-nodes-cluster-update-console"></a>

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

1. 選擇叢集名稱以顯示您叢集的資訊。

1. 選擇**聯網**索引標籤，然後選擇**管理**。

1. 在下拉式清單中，選擇**遠端網路**。

1. 視需要更新 `Remote node networks` 和 `Remote pod networks - Optional` 下的 CIDR。

1. 選擇**儲存變更**，然後等待叢集狀態返回**作用中**。

## 在現有叢集中停用混合節點
<a name="hybrid-nodes-cluster-disable"></a>

您可以使用下列方式，在現有叢集中停用 EKS 混合節點：
+  [AWS CloudFormation](#hybrid-nodes-cluster-disable-cfn) 
+  [AWS CLI](#hybrid-nodes-cluster-disable-cli) 
+  [AWS 管理主控台](#hybrid-nodes-cluster-disable-console) 

### 在現有叢集中停用 EKS 混合節點 - AWS CloudFormation
<a name="hybrid-nodes-cluster-disable-cfn"></a>

1. 若要停用叢集中的 EKS 混合節點，請在 CloudFormation 範本中將 `RemoteNodeNetworks` 和 `RemotePodNetworks` 設定為空陣列，並更新堆疊。

   ```
   RemoteNetworkConfig:
     RemoteNodeNetworks: []
     RemotePodNetworks: []
   ```

### 在現有叢集中停用 EKS 混合節點 - AWS CLI
<a name="hybrid-nodes-cluster-disable-cli"></a>

1. 執行下列命令以從 EKS 叢集中移除 `RemoteNetworkConfig`。執行命令之前，請使用您的設定取代下列內容。如需設定的完整清單，請參閱《*Amazon EKS API 參考*》中的 [UpdateClusterConfig](https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateClusterConfig.html)。

   1.  `CLUSTER_NAME`：要更新的 EKS 叢集的名稱。

   1.  `AWS_REGION`：EKS 叢集執行所在的 AWS 區域。

      ```
      aws eks update-cluster-config \
          --name CLUSTER_NAME \
          --region AWS_REGION \
          --remote-network-config '{"remoteNodeNetworks":[],"remotePodNetworks":[]}'
      ```

1. 更新叢集需要幾分鐘才能完成。您可以使用下列命令來查詢叢集的狀態。`CLUSTER_NAME` 將 取代為您修改的叢集名稱，並將 `AWS_REGION`取代為您執行叢集的 AWS 區域。在傳回的輸出為 `ACTIVE` 之前，請勿進行下一個步驟。

   ```
   aws eks describe-cluster \
       --name CLUSTER_NAME \
       --region AWS_REGION \
       --query "cluster.status"
   ```

### 在現有叢集中停用 EKS 混合節點 - AWS 管理主控台
<a name="hybrid-nodes-cluster-disable-console"></a>

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

1. 選擇叢集名稱以顯示您叢集的資訊。

1. 選擇**聯網**索引標籤，然後選擇**管理**。

1. 在下拉式清單中，選擇**遠端網路**。

1. 選擇**設定遠端網路以啟用混合節點**，然後移除 `Remote node networks` 和 `Remote pod networks - Optional` 下的所有 CIDR。

1. 選擇 **Save changes** (儲存變更) 以完成操作。等待叢集狀態變回**作用中**。