在現有的 Amazon EKS 叢集上啟用混合節點或修改組態 - Amazon EKS

協助改進此頁面

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

在現有的 Amazon EKS 叢集上啟用混合節點或修改組態

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

若要讓 Amazon EKS 叢集使用混合節點,請在 RemoteNetworkConfig 組態中新增內部部署節點的 IP 位址 CIDR 範圍和選用的 Pod 網路。EKS 使用此 CIDR 清單來啟用叢集與內部部署網路之間的連線。如需更新叢集組態時選項的完整清單,請參閱《Amazon EKS API 參考》中的 UpdateClusterConfig

您可以對叢集中的 EKS 混合節點聯網組態執行下列任何動作:

先決條件

  • 為混合節點啟用 Amazon EKS 叢集之前,請確保您的環境符合 混合節點的先決條件設定 中概述的要求以及 準備混合節點的聯網準備混合節點的作業系統準備混合節點的憑證 中詳細說明的要求。

  • 您的叢集必須使用 IPv4 位址系列。

  • 您的叢集必須使用 APIAPI_AND_CONFIG_MAP 作為叢集身分驗證模式。修改叢集身分驗證模式的程序在 變更驗證模式以使用存取項目 中說明。

  • 建議您對 Amazon EKS Kubernetes API 伺服器端點使用公有或私有端點存取,但不能同時使用兩者。如果您選擇「公有和私有」,Amazon EKS Kubernetes API 伺服器端點一律會解析為在 VPC 外部執行的混合節點的公有 IP,以防止您的混合節點加入叢集。修改叢集網路存取的程序在 叢集 API 伺服器端點 中說明。

  • 已在裝置上安裝和設定 AWS 命令列介面 (AWS CLI) 的最新版本。若要檢查您目前的版本,請使用 aws --version。如 yum、apt-get 或適用於 macOS 的 Homebrew 等套件管理工具通常比最新版本的 AWS CLI 落後數個版本之多。若要安裝最新版本,請參閱《AWS 命令列介面使用者指南》中的安裝或更新至最新版本的 AWS CLI設定 AWS CLI 的設定

  • 具有在您的 Amazon EKS 叢集上呼叫 UpdateClusterConfig 的許可的 IAM 主體

  • 將附加元件更新為與混合節點相容的版本。如需與混合節點相容的附加元件版本,請參閱 設定混合節點的附加元件

  • 如果您執行的附加元件與混合節點不相容,請確保附加元件 DaemonSet部署具有下列親和性規則,以防止部署到混合節點。如果尚未存在,請新增下列親和性規則。

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

考量事項

remoteNetworkConfig JSON 物件在更新期間具有下列行為:

  • 您未指定的任何現有組態部分均未變更。如果您未指定 remoteNodeNetworksremotePodNetworks,則該部分將保持不變。

  • 如果您要修改 CIDR 的 remoteNodeNetworksremotePodNetworks 清單,則必須在最終組態中指定您想要的完整 CIDR 清單。當您指定對 remoteNodeNetworksremotePodNetworks CIDR 清單的變更時,EKS 會在更新期間取代原始清單。

  • 您的內部部署節點和 Pod CIDR 區塊必須符合下列要求:

    1. 處於以下 IPv4 RFC-1918 範圍之一:10.0.0.0/8、172.16.0.0/12 或 192.168.0.0/16。

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

在現有叢集上啟用混合節點

您可以使用下列方式,在現有叢集中啟用 EKS 混合節點:

在現有叢集中啟用 EKS 混合節點:AWS CloudFormation

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

    RemoteNetworkConfig: RemoteNodeNetworks: - Cidrs: [RemoteNodeCIDR] RemotePodNetworks: - Cidrs: [RemotePodCIDR]
  2. 繼續進行準備混合節點的叢集存取

在現有叢集中啟用 EKS 混合節點:AWS CLI

  1. 執行下列命令以為您的 EKS 叢集啟用 EKS 混合節點的 RemoteNetworkConfig。執行命令之前,請使用您的設定取代下列內容。如需設定的完整清單,請參閱《Amazon EKS API 參考》中的 UpdateClusterConfig

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

    2. AWS_REGION:正在執行 EKS 叢集的 AWS 區域。

    3. REMOTE_NODE_CIDRS:混合節點的內部部署節點 CIDR。

    4. 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"]}]}'
  2. 更新叢集需要幾分鐘才能完成。您可以使用下列命令來查詢叢集的狀態。使用為您修改的叢集名稱取代 CLUSTER_NAME,以及使用執行叢集的 AWS 區域取代 AWS_REGION。在傳回的輸出為 ACTIVE 之前,請勿進行下一個步驟。

    aws eks describe-cluster \ --name CLUSTER_NAME \ --region AWS_REGION \ --query "cluster.status"
  3. 繼續進行準備混合節點的叢集存取

在現有叢集中啟用 EKS 混合節點:AWS 管理主控台

  1. Amazon EKS 主控台開啟 Amazon EKS 主控台。

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

  3. 選擇聯網索引標籤,然後選擇管理

  4. 在下拉式清單中,選擇遠端網路

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

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

  7. 繼續進行準備混合節點的叢集存取

在現有叢集中更新混合節點組態

您可以使用下列任何一種方式,在現有混合叢集中修改 remoteNetworkConfig

在現有叢集中更新混合組態:AWS CloudFormation

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

    RemoteNetworkConfig: RemoteNodeNetworks: - Cidrs: [NEW_REMOTE_NODE_CIDRS] RemotePodNetworks: - Cidrs: [NEW_REMOTE_POD_CIDRS]
    注意

    更新 RemoteNodeNetworksRemotePodNetworks CIDR 清單時,請包含所有 CIDR (新的和現有的)。EKS 會在更新期間取代整個清單。從更新請求省略這些欄位將會保留其現有組態。

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

在現有叢集中更新混合組態:AWS CLI

  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"]}]}'
    注意

    更新 remoteNodeNetworksremotePodNetworks CIDR 清單時,請包含所有 CIDR (新的和現有的)。EKS 會在更新期間取代整個清單。從更新請求省略這些欄位將會保留其現有組態。

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

在現有叢集中更新混合組態:AWS 管理主控台

  1. Amazon EKS 主控台開啟 Amazon EKS 主控台。

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

  3. 選擇聯網索引標籤,然後選擇管理

  4. 在下拉式清單中,選擇遠端網路

  5. 視需要更新 Remote node networksRemote pod networks - Optional 下的 CIDR。

  6. 選擇儲存變更,然後等待叢集狀態返回作用中

在現有叢集中停用混合節點

您可以使用下列方式,在現有叢集中停用 EKS 混合節點:

在現有叢集中停用 EKS 混合節點:AWS CloudFormation

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

    RemoteNetworkConfig: RemoteNodeNetworks: [] RemotePodNetworks: []

在現有叢集中停用 EKS 混合節點:AWS CLI

  1. 執行下列命令以從 EKS 叢集中移除 RemoteNetworkConfig。執行命令之前,請使用您的設定取代下列內容。如需設定的完整清單,請參閱《Amazon EKS API 參考》中的 UpdateClusterConfig

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

    2. AWS_REGION:正在執行 EKS 叢集的 AWS 區域。

      aws eks update-cluster-config \ --name CLUSTER_NAME \ --region AWS_REGION \ --remote-network-config '{"remoteNodeNetworks":[],"remotePodNetworks":[]}'
  2. 更新叢集需要幾分鐘才能完成。您可以使用下列命令來查詢叢集的狀態。使用為您修改的叢集名稱取代 CLUSTER_NAME,以及使用執行叢集的 AWS 區域取代 AWS_REGION。在傳回的輸出為 ACTIVE 之前,請勿進行下一個步驟。

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

在現有叢集中停用 EKS 混合節點:AWS 管理主控台

  1. Amazon EKS 主控台開啟 Amazon EKS 主控台。

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

  3. 選擇聯網索引標籤,然後選擇管理

  4. 在下拉式清單中,選擇遠端網路

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

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