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