協助改善此頁面
想要為此使用者指南做出貢獻嗎? 捲動至此頁面底部,然後選取 [編輯此頁面於] 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 已配備最新的安全更新。如此一來,如果發生重大的常見弱點和曝光
若要限制回收時Pods一次關閉的Pods數量,您可以設定Pod中斷預算 (PDBs)。您可以使PDBs用根據每個應用程式的需求來定義最低可用性,同時仍允許進行更新。如需詳細資訊,請參閱 Kubernetes 文件中的 Specifying a Disruption Budget for your Application
Amazon EKS 使用驅逐API
當驅逐失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 使用者通知入門〉。