Kubernetes 等待部署真正缩减的惯用方法

Kubernetes 等待部署真正缩减的惯用方法,kubernetes,Kubernetes,对于测试,我希望有一种等待部署(副本:0)真正消失的方法 部署状态似乎不是等待所有POD实际终止 所以我想知道等待部署终止的惯用方式是什么。 换句话说,我希望对Kubernetes中的资源进行同步删除,这也只能在所有拥有的资源(递归)被删除后返回。我认为Kubernetes 1.11+已经在等待删除完成,然后才返回Delete: kubectl delete--help | grep'\-\-等待' --wait=true:如果为true,则等待资源消失后再返回。这将等待终结器 即使如此,您也可

对于测试,我希望有一种等待部署(副本:0)真正消失的方法

部署状态似乎不是等待所有POD实际终止

所以我想知道等待部署终止的惯用方式是什么。
换句话说,我希望对Kubernetes中的资源进行同步删除,这也只能在所有拥有的资源(递归)被删除后返回。

我认为Kubernetes 1.11+已经在等待删除完成,然后才返回Delete:

kubectl delete--help | grep'\-\-等待'

--wait=true:如果为true,则等待资源消失后再返回。这将等待终结器

即使如此,您也可以使用等待资源删除:

等待一个或多个资源上的特定条件。或者, 该命令可以等待指定的资源集被删除 提供“delete”关键字作为
--for
标志的值


e、 g:
kubectl wait deployment/my deployment--for=delete

我认为Kubernetes 1.11+在delete返回之前已经在等待删除完成:

kubectl delete--help | grep'\-\-等待'

--wait=true:如果为true,则等待资源消失后再返回。这将等待终结器

即使如此,您也可以使用等待资源删除:

等待一个或多个资源上的特定条件。或者, 该命令可以等待指定的资源集被删除 提供“delete”关键字作为
--for
标志的值

e、 g:
kubectl wait deployment/my deployment--for=delete

您的
pod
(受抚养人)具有
元数据。ownerreference
指向您的
部署
(所有者),根据设计,应首先从Kubernetes 1.8中删除它们。 关于它的文档中说:

有时,Kubernetes会自动设置
ownerReference
的值。例如,创建复制集时,Kubernetes会自动设置复制集中每个Pod的
ownerReference
字段。在1.8中,Kubernetes为ReplicationController、ReplicateSet、StatefulSet、守护程序、部署、作业和CronJob创建或采用的对象自动设置
ownerReference
的值

您可以使用
kubectl get pods--output=yaml

说:

删除对象时,可以指定是否也自动删除对象的从属项。自动删除依赖项称为级联删除。有两种级联删除模式:背景和前景

如果删除对象而不自动删除其从属对象,则这些从属对象称为孤立对象

前景对象进入“正在删除”状态,在该状态下,以下为真:

  • 该对象仍然可以通过RESTAPI看到
  • 设置对象的
    删除时间戳
  • 对象的
    元数据。终结器
    包含值“ForeGroundDelete”
垃圾收集器删除所有“阻塞”依赖项(对象具有
ownerReference.blockownerdelement=true
)后,将删除所有者对象

请注意,在“ForeGroundDelete”中,只有具有
ownerReference.blockownerDelete=true的依赖项才能阻止删除所有者对象Kubernetes 1.7版添加了一个控件,该控件根据所有者对象的删除权限控制用户访问将
blockownerdelement
设置为true,以便未经授权的从属对象不能延迟删除所有者对象

如果对象的
ownerReferences
字段由控制器(如部署或复制集)设置,则BlockownerDelete将自动设置,您无需手动修改此字段

后台级联删除中,Kubernetes立即删除所有者,然后垃圾收集器删除后台的从属项

至于
kubectl wait
它取决于
资源。group
你将设置它,因为它不关心任何依赖的资源,只关心观察到的
资源。group
你的
吊舱(依赖者)有
元数据。ownerReferences
指向你的
部署
(所有者)根据设计,它们应该首先从Kubernetes 1.8中删除。 关于它的文档中说:

有时,Kubernetes会自动设置
ownerReference
的值。例如,创建复制集时,Kubernetes会自动设置复制集中每个Pod的
ownerReference
字段。在1.8中,Kubernetes为ReplicationController、ReplicateSet、StatefulSet、守护程序、部署、作业和CronJob创建或采用的对象自动设置
ownerReference
的值

您可以使用
kubectl get pods--output=yaml

说:

删除对象时,可以指定是否也自动删除对象的从属项。自动删除依赖项称为级联删除。有两种级联删除模式:背景和前景

如果删除对象而不自动删除其从属对象,则这些从属对象称为孤立对象

前景对象进入“正在删除”状态,在该状态下,以下为真:

  • 该对象仍然可以通过RESTAPI看到
  • 设置对象的
    删除时间戳
  • 对象的
    元数据。终结器
    包含值“ForeGroundDelete”
一旦垃圾收集器移除所有“阻塞”dep