渣滓回收是指清算 Kubernetes 集群资源的机制,这关于集群的运转状况十分关键。渣滓回收可以清算资源,例如中断的 Pod、已成功的作业、未经常使用的容器等。
渣滓回收可保养 Kubernetes 集群的运转状况。治理员首先要确定他们应经常使用自动的智能清算,还是手动性能渣滓回收。
有几种性能可以协助组织取得对渣滓回收的控制权。
例如,一个部署领有一个 ReplicaSet,该 ReplicaSet 领有该 ReplicaSet 中的 Pod。因此,当 admin 或 K8s 之外的其余工具删除部署时,ReplicaSet 和 pod 也会经过援用删除。
可以经过将metadata.blockOwnerDeletion字段设置为 true 来更改此行为。假设设置为 true,则在删除父资源后,资源将坚持不变。
自动状况下,在每个节点上运转的 kubelet 每两分钟删除一次性未经常使用的镜像。要性能此设置,请经常使用 kubelet 性能文件并为imageMinimumGCAge字段提供继续期间值。
为了触发图像渣滓回收,kubelet 会思考磁盘经常使用状况。经常使用两个可性能字段 HighThresholdPercent 和 LowThresholdPercent,依据上次经常使用图像的期间删除图像。当磁盘空间到达 HighThresholdPercent 中设置的值时,kublet 将从最早的图像开局。在到达 LowThresholdPercent 中设置的值之前,kubelet 将继续删除图片。
未经常使用的容器每五分钟清算一次性。经过经常使用标志--maximum-dead-containers-per-container和containers--minimum-container-ttl-duration来控制清算的特定行为。
--maximum-dead-containers-per-container全局设置在渣滓回收移除或删除已中止的容器之前要保管的最大容器数。在 kubelet 启动时,自动状况下将其设置为 -1,或许治理员可以手动设置它。这象征着在触发渣滓回收之前,集群上准许的已中止容器数量没有限度。
containers--minimum-container-ttl-duration 设置每个容器要保管的旧容器实例数。此值的自动值设置为 1。控制容器渣滓回收前的继续期间。此值设置为 0,示意自动状况下此设置处于禁用形态。
Kubernetes 作业成功后,除非自动状况下触发了其余渣滓回收条件,否则已成功的作业和 pod 将坚持不变。例如,假设触发了 kube-controller-manager 的 terminated-pod-gc-threshold 设置,则在渣滓回收开局删除 Pod 之前,中断的 Pod 数量有限。在大少数状况下,中断的 Pod 将保管一段期间,由于自动值设置为 12,500 个 Pod。
设置作业的字段以控制此行为。此字段确定在作业成功后经过多少秒,而后 TTL 控制器才会删除该作业。倡导经常使用此字段,由于代替项是 的自动删除战略。经常使用 ,作业成功后,由 Jobs 启动的 pod 将被孤立。假设建设多个孤立的 Pod,这或许会造成性能降低。设置一个值以确保 Pod 在作业成功后删除。
要向 Kubernetes 批示在资源删除之前要口头特定操作,请经常使用清单文件创立一个资源并设置metadata.finalizers字段。
终结器相似于注释。真正的魔力在于治理终结器的控制器。例如,在经常使用 PersistentVolume 时,通经常常使用kubernetes.io/pv-protection的终结器。这样可以防止 PersistentVolume 被治理员删除,或许可以防止在删除终结器之前删除 pod 的智能化进程。假设 Pod 正在经常使用被删除的 PersistentVolume,则资源会被标志为 Terminating,但在删除终结器键之前不可删除。耐久卷控制器只会在 Pod 中止经常使用 PersistentVolume 时肃清终结器,这让控制器可以删除 PersistentVolume。
本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载联系作者并注明出处:https://clwxseo.com/wangluoyouhua/8665.html