設定作 AWS Fargate 業系統修補事件的動作 - Amazon EKS

協助改善此頁面

想要為此使用者指南做出貢獻嗎? 捲動至此頁面底部,然後選取 [編輯此頁面於] GitHub。您的貢獻將有助於使我們的用戶指南更適合所有人。

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

設定作 AWS Fargate 業系統修補事件的動作

重要

AWS Fargate Amazon 在 AWS GovCloud (美國東部)和 AWS GovCloud (美國西部)EKS不可用。

Amazon EKS 會定期修補節點的作業系統,以確保 AWS Fargate 節點的安全。作為修補程序的一部分,我們會回收節點以安裝作業系統修補程式。以對您的服務產生最小影響的方式嘗試更新。但是,如果未成功移出 Pods,有時必須將其刪除。您可以採取以下措施,以最大限度地減少潛在的中斷:

  • 設定適當的Pod中斷預算 (PDBs) 以控制同時關閉Pods的預算數目。

  • 建立 Amazon EventBridge 規則以在刪除失敗的驅逐之前處Pods理。

  • 在「 AWS 使用者通知」中建立通知組態。

Amazon 與Kubernetes社群密切合EKS作,盡快提供錯誤修正和安全修補程式。所有 Fargate 都是從最新的Kubernetes修補程式版本Pods啟動,該版本可從 Amazon EKS 取得您的叢集Kubernetes版本。如果您使用的是較舊Pod的修補程式版本,Amazon EKS 可能會對其進行回收以將其更新為最新版本。這可確保您的 Pods 已配備最新的安全更新。如此一來,如果發生重大的常見弱點和曝光 (CVE) 問題,您就會隨時保持最新狀態,以降低安全風險。

若要限制回收時Pods一次關閉的Pods數量,您可以設定Pod中斷預算 (PDBs)。您可以使PDBs用根據每個應用程式的需求來定義最低可用性,同時仍允許進行更新。如需詳細資訊,請參閱 Kubernetes 文件中的 Specifying a Disruption Budget for your Application (為應用程式指定中斷預算)。

Amazon EKS 使用驅逐API安全地排空,Pod同時尊重您為應用程序PDBs設置的。可用區域將 Pod 移出,以最大限度地減少影響。如果移出成功,新 Pod 將會取得最新的修補程序,且無須採取進一步的動作。

當驅逐失Pod敗時,Amazon EKS 會向您的帳戶發送一個事件,其中包含有關Pods該次驅逐失敗的詳細信息。您可以在計劃終止時間之前對訊息執行操作。具體時間根據修補程式的緊迫性而有所不同。當它的時候,Amazon EKS 試圖Pods再次驅逐。但是,這次如果移出失敗,則不會傳送新事件。如果移出再次失敗,則會定期刪除現有的 Pods,以便新 Pods 具有最新的修補程式。

以下是當 Pod 移出失敗時收到的範例事件。包含有關叢集、Pod 名稱、Pod 名稱空間、Fargate 設定檔和計劃終止時間的詳細資訊。

{ "version": "0", "id": "12345678-90ab-cdef-0123-4567890abcde", "detail-type": "EKS Fargate Pod Scheduled Termination", "source": "aws.eks", "account": "111122223333", "time": "2021-06-27T12:52:44Z", "region": "region-code", "resources": [ "default/my-database-deployment" ], "detail": { "clusterName": "my-cluster", "fargateProfileName": "my-fargate-profile", "podName": "my-pod-name", "podNamespace": "default", "evictErrorMessage": "Cannot evict pod as it would violate the pod's disruption budget", "scheduledTerminationTime": "2021-06-30T12:52:44.832Z[UTC]" } }

此外,多個與 a PDBs 相關聯Pod可能會導致驅逐失敗事件。此事件傳回以下錯誤訊息。

"evictErrorMessage": "This pod has multiple PodDisruptionBudget, which the eviction subresource does not support",

您可以根據此事件建立所需的動作。例如,您可以調整Pod中斷預算 (PDB) 來控制收回Pods的方式。更具體地說,假設您以指PDB定可用的目標百Pods分比開始。Pods在升級期間強制終止之前,您可以將其調整PDB為的不同百分比Pods。若要接收此事件,您必須在叢集所屬 AWS 帳戶 AWS 區域 且中建立 Amazon EventBridge 規則。規則必須使用以下自訂模式。如需詳細資訊,請參閱 Amazon EventBridge 使用者指南中的建立針對事件做出回應的 Amazon EventBridge 規則

{ "source": ["aws.eks"], "detail-type": ["EKS Fargate Pod Scheduled Termination"] }

可以為事件設定合適的目標以進行擷取。如需可用目標的完整清單,請參閱 Amazon EventBridge 使用者指南中的 Amazon EventBridge 目標。您也可以在「 AWS 使用者通知」中建立通知組態。使用建立通知時,請在 [事件規則] 下,選擇 [彈性 Kubernetes 服務] (EKS) 做為AWS 服務 名稱,並針對 [事件類型] 選擇 [EKSFargate 網繭排程終止]。 AWS Management Console 如需詳細資訊,請參閱《AWS 使用者通知使用指南》中的〈 AWS 使用者通知入門〉。