65 lines
2.7 KiB
Markdown
65 lines
2.7 KiB
Markdown
|
---
|
|||
|
title: Finalizer
|
|||
|
id: finalizer
|
|||
|
date: 2021-07-07
|
|||
|
full_link: /zh/docs/concepts/overview/working-with-objects/finalizers/
|
|||
|
short_description: >
|
|||
|
一个带有命名空间的键,告诉 Kubernetes 等到特定的条件被满足后,
|
|||
|
再完全删除被标记为删除的资源。
|
|||
|
aka:
|
|||
|
tags:
|
|||
|
- fundamental
|
|||
|
- operation
|
|||
|
---
|
|||
|
|
|||
|
<!--
|
|||
|
---
|
|||
|
title: Finalizer
|
|||
|
id: finalizer
|
|||
|
date: 2021-07-07
|
|||
|
full_link: /zh/docs/concepts/overview/working-with-objects/finalizers/
|
|||
|
short_description: >
|
|||
|
A namespaced key that tells Kubernetes to wait until specific conditions are met
|
|||
|
before it fully deletes an object marked for deletion.
|
|||
|
aka:
|
|||
|
tags:
|
|||
|
- fundamental
|
|||
|
- operation
|
|||
|
-->
|
|||
|
|
|||
|
|
|||
|
<!--
|
|||
|
Finalizers are namespaced keys that tell Kubernetes to wait until specific
|
|||
|
conditions are met before it fully deletes resources marked for deletion.
|
|||
|
Finalizers alert {{<glossary_tooltip text="controllers" term_id="controller">}}
|
|||
|
to clean up resources the deleted object owned.
|
|||
|
-->
|
|||
|
Finalizer 是带有命名空间的键,告诉 Kubernetes 等到特定的条件被满足后,
|
|||
|
再完全删除被标记为删除的资源。
|
|||
|
Finalizer 提醒{{<glossary_tooltip text="控制器" term_id="controller">}}清理被删除的对象拥有的资源。
|
|||
|
<!--more-->
|
|||
|
|
|||
|
<!--
|
|||
|
When you tell Kubernetes to delete an object that has finalizers specified for
|
|||
|
it, the Kubernetes API marks the object for deletion by populating `.metadata.deletionTimestamp`,
|
|||
|
and returns a `202` status code (HTTP "Accepted"). The target object remains in a terminating state while the
|
|||
|
control plane, or other components, take the actions defined by the finalizers.
|
|||
|
After these actions are complete, the controller removes the relevant finalizers
|
|||
|
from the target object. When the `metadata.finalizers` field is empty,
|
|||
|
Kubernetes considers the deletion complete.
|
|||
|
-->
|
|||
|
当你告诉 Kubernetes 删除一个指定了 Finalizer 的对象时,
|
|||
|
Kubernetes API 通过填充 `.metadata.deletionTimestamp` 来标记要删除的对象,
|
|||
|
并返回`202`状态码 (HTTP "已接受") 使其进入只读状态。
|
|||
|
此时控制平面或其他组件会采取 Finalizer 所定义的行动,
|
|||
|
而目标对象仍然处于终止中(Terminating)的状态。
|
|||
|
这些行动完成后,控制器会删除目标对象相关的 Finalizer。
|
|||
|
当 `metadata.finalizers` 字段为空时,Kubernetes 认为删除已完成。
|
|||
|
|
|||
|
<!--
|
|||
|
You can use finalizers to control {{<glossary_tooltip text="garbage collection" term_id="garbage-collection">}}
|
|||
|
of resources. For example, you can define a finalizer to clean up related resources or
|
|||
|
infrastructure before the controller deletes the target resource.
|
|||
|
-->
|
|||
|
你可以使用 Finalizer 控制资源的{{<glossary_tooltip text="垃圾收集" term_id="garbage-collection">}}。
|
|||
|
例如,你可以定义一个 Finalizer,在删除目标资源前清理相关资源或基础设施。
|