日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)kubernetes教程:Kubernetes Finalizers

Finalizers

Finalizer 是帶有命名空間的鍵,告訴 Kubernetes 等到特定的條件被滿足后, 再完全刪除被標記為刪除的資源。 Finalizer 提醒控制器清理被刪除的對象擁有的資源。

當你告訴 Kubernetes 刪除一個指定了 Finalizer 的對象時, Kubernetes API 通過填充 ?.metadata.deletionTimestamp? 來標記要刪除的對象, 并返回?202?狀態(tài)碼 (HTTP "已接受") 使其進入只讀狀態(tài)。 此時控制平面或其他組件會采取 Finalizer 所定義的行動, 而目標對象仍然處于終止中(Terminating)的狀態(tài)。 這些行動完成后,控制器會刪除目標對象相關(guān)的 Finalizer。 當 ?metadata.finalizers? 字段為空時,Kubernetes 認為刪除已完成。

你可以使用 Finalizer 控制資源的垃圾收集。 例如,你可以定義一個 Finalizer,在刪除目標資源前清理相關(guān)資源或基礎(chǔ)設(shè)施。

你可以通過使用 Finalizers 提醒控制器 在刪除目標資源前執(zhí)行特定的清理任務(wù), 來控制資源的垃圾收集。

Finalizers 通常不指定要執(zhí)行的代碼。 相反,它們通常是特定資源上的鍵的列表,類似于注解。 Kubernetes 自動指定了一些 Finalizers,但你也可以指定你自己的。

Finalizers 如何工作 

當你使用清單文件創(chuàng)建資源時,你可以在 ?metadata.finalizers? 字段指定 Finalizers。 當你試圖刪除該資源時,處理刪除請求的 API 服務(wù)器會注意到 ?finalizers? 字段中的值, 并進行以下操作:

  • 修改對象,將你開始執(zhí)行刪除的時間添加到 ?metadata.deletionTimestamp? 字段。
  • 禁止對象被刪除,直到其 ?metadata.finalizers? 字段為空。
  • 返回 ?202? 狀態(tài)碼(HTTP "Accepted")。

管理 finalizer 的控制器注意到對象上發(fā)生的更新操作,對象的 ?metadata.deletionTimestamp? 被設(shè)置,意味著已經(jīng)請求刪除該對象。然后,控制器會試圖滿足資源的 Finalizers 的條件。 每當一個 Finalizer 的條件被滿足時,控制器就會從資源的 ?finalizers ?字段中刪除該鍵。 當 ?finalizers ?字段為空時,?deletionTimestamp ?字段被設(shè)置的對象會被自動刪除。 你也可以使用 Finalizers 來阻止刪除未被管理的資源。

一個常見的 Finalizer 的例子是 ?kubernetes.io/pv-protection?, 它用來防止意外刪除 ?PersistentVolume ?對象。 當一個 ?PersistentVolume ?對象被 Pod 使用時, Kubernetes 會添加 ?pv-protection? Finalizer。 如果你試圖刪除 ?PersistentVolume?,它將進入 ?Terminating ?狀態(tài), 但是控制器因為該 Finalizer 存在而無法刪除該資源。 當 Pod 停止使用 ?PersistentVolume ?時, Kubernetes 清除 ?pv-protection? Finalizer,控制器就會刪除該卷。

屬主引用、標簽和 Finalizers

與標簽類似, 屬主引用 描述了 Kubernetes 中對象之間的關(guān)系,但它們作用不同。 當一個控制器 管理類似于 Pod 的對象時,它使用標簽來跟蹤相關(guān)對象組的變化。 例如,當 Job 創(chuàng)建一個或多個 Pod 時, Job 控制器會給這些 Pod 應(yīng)用上標簽,并跟蹤集群中的具有相同標簽的 Pod 的變化。

Job 控制器還為這些 Pod 添加了屬主引用,指向創(chuàng)建 Pod 的 Job。 如果你在這些 Pod 運行的時候刪除了 Job, Kubernetes 會使用屬主引用(而不是標簽)來確定集群中哪些 Pod 需要清理。

當 Kubernetes 識別到要刪除的資源上的屬主引用時,它也會處理 Finalizers。

在某些情況下,F(xiàn)inalizers 會阻止依賴對象的刪除, 這可能導(dǎo)致目標屬主對象被保留的時間比預(yù)期的長,而沒有被完全刪除。 在這些情況下,你應(yīng)該檢查目標屬主和附屬對象上的 Finalizers 和屬主引用,來排查原因。

在對象卡在刪除狀態(tài)的情況下,要避免手動移除 Finalizers,以允許繼續(xù)刪除操作。 Finalizers 通常因為特殊原因被添加到資源上,所以強行刪除它們會導(dǎo)致集群出現(xiàn)問題。 只有了解 finalizer 的用途時才能這樣做,并且應(yīng)該通過一些其他方式來完成 (例如,手動清除其余的依賴對象)。


新聞標題:創(chuàng)新互聯(lián)kubernetes教程:Kubernetes Finalizers
鏈接URL:http://www.5511xx.com/article/cdhjppg.html