Amazon EKS 資源擴展執行區塊 - Amazon Application Recovery Controller (ARC)

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

Amazon EKS 資源擴展執行區塊

EKS 資源擴展執行區塊可讓您在多區域復原程序中擴展 EKS 資源。當您設定執行區塊時,您可以定義要擴展的容量百分比,相對於要停用區域中的容量。

設定 EKS 存取項目許可

在新增 EKS 資源擴展的執行區塊之前,您必須向區域交換器提供必要的許可,以對 EKS 叢集中的 Kubernetes 資源採取動作。若要提供區域切換的存取權,您必須使用下列區域切換存取政策,為區域切換用於計劃執行的 IAM 角色建立 EKS 存取項目: arn:aws:eks::aws:cluster-access-policy/AmazonARCRegionSwitchScalingPolicy

區域切換 EKS 存取政策

以下資訊提供有關 EKS 存取政策的詳細資訊。

名稱: AmazonARCRegionSwitchScalingPolicy

政策 ARN: arn:aws:eks::aws:cluster-access-policy/AmazonARCRegionSwitchScalingPolicy

Kubernetes API 群組 Kubernetes 資源 Kubernetes 動詞 (許可)

*

*/scale

get、更新

*

*/狀態

get

自動擴展

horizontalpodautoscaler

get、修補

建立區域切換的 EKS 存取項目

下列範例說明如何建立所需的存取項目和存取政策關聯,讓區域切換可以為您的 Kubernetes 資源採取特定動作。在此範例中,許可適用於 IAM 角色 的 EKS 叢集 my-cluster 中的命名空間 my-namespace1arn:aws:iam::555555555555:role/my-role

當您設定這些許可時,請務必為執行區塊中的兩個 EKS 叢集採取這些步驟。

先決條件

開始使用之前,請將叢集的身分驗證模式變更為 API_AND_CONFIG_MAPAPI。變更授權模式會新增存取項目的 API。如需詳細資訊,請參閱《Amazon EKS 使用者指南》中的變更身分驗證模式以使用存取項目

建立存取項目

第一步是使用類似下列的 AWS CLI 命令來建立存取項目:

aws eks create-access-entry --cluster-name my-cluster --principal-arn arn:aws:iam::555555555555:user/my-user --type STANDARD

如需詳細資訊,請參閱《Amazon EKS 使用者指南》中的建立存取項目

建立存取項目關聯

接著,使用類似以下的 AWS CLI 命令建立與區域切換存取政策的關聯:

aws eks associate-access-policy --cluster-name my-cluster --principal-arn arn:aws:iam::555555555555:role/my-role \ --access-scope type=namespace,namespaces=my-namespace1 --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonARCRegionSwitchScalingPolicy

如需詳細資訊,請參閱《Amazon EKS 使用者指南》中的將存取政策與存取項目建立關聯

請務必在另一個區域的執行區塊中對第二個 EKS 叢集重複這些步驟,以確保兩個叢集都可以由區域切換存取。

組態

若要設定 EKS 資源擴展執行區塊,請先確定您擁有正確的許可。如需詳細資訊,請參閱設定 EKS 存取項目許可

請注意,區域切換目前支援下列 ReplicaSet 資源:apps/v1、Deplation 和 app/v1。

然後,針對執行區塊組態,輸入下列值。

  1. 步驟名稱:輸入名稱。

  2. 步驟描述 (選用):輸入步驟的描述。

  3. 應用程式名稱:輸入 EKS 應用程式的名稱,例如 myApplication

  4. Kubernetes 資源類型:輸入應用程式的資源類型,例如部署

  5. 區域資源:針對每個區域,輸入 EKS 叢集的資訊,包括 EKS 叢集 ARN、資源命名空間等。

  6. 符合啟用區域容量的百分比:輸入在來源區域中執行的 Pod 在啟用區域中符合的所需百分比。

  7. 容量監控方法:在下拉式功能表中,選取 EKS 資源的監控方法。

  8. 逾時:輸入逾時值。

然後,選擇儲存步驟。

運作方式

在計劃執行期間,區域切換會擷取您啟用之區域中目標資源過去 24 小時內的取樣複本數量上限。然後,它會使用以下公式計算目的地資源所需的複本計數: ceil(percentToMatch * Source replica count)

如果目的地就緒複本計數低於所需的值,區域開關會將目的地資源複本值擴展到所需的容量。它會等待複本準備就緒,並在必要時利用您的節點自動擴展器來增加節點容量。

如果選用hpaName欄位不是空的,區域切換會使用下列修補程式來修補 HorizontalPodAutoscaler,以防止執行期間或之後的任何自動縮減規模: {"spec":{"behavior":{"scaleDown":{"selectPolicy":"Disabled"}}}}

請務必設定任何偏離校正工具,例如 GitOps 工具,以忽略修補程式中資源的複本欄位,以及 HorizontalPodAutoscaler 欄位。

做為計畫評估的一部分而評估的內容

當區域切換評估您的計劃時,區域切換會對設定的 EKS 執行區塊和許可執行數項檢查。區域切換會驗證計劃的 IAM 角色是否具有描述 EKS 叢集和列出相關聯存取項目政策的正確許可。區域切換也會驗證 IAM 角色是否與正確的存取項目政策相關聯,以便區域切換具有對 Kubernetes 資源採取行動所需的許可。最後,區域切換會確認設定的 EKS 叢集和 Kubernetes 資源是否存在。

此外,區域切換會檢查其是否已成功收集並存放必要的監控資料 (Kubernetes 複本計數),並擷取執行區域切換計畫所需的執行中 Pod 數量。