我知道部署在其下面使用复制集,具有修订控制,在滚动升级/降级期间创建另一个复制集。
我想知道只有replicaset可以用,deployment不能用是什么场景?
ReplicaSet的目的是在任何给定的时间保持一组稳定的副本pod运行,并检查有多少pod需要保持其创建或删除pod的基础。然后,ReplicaSet通过根据需要创建和删除pod来达到其目的,以达到所需的数量。副本集可以独立使用。使用ReplicaSet,您可以定义要为特定服务运行的副本数量。你会有那么多副本在运行。
而部署是复制副本集的进步。当您使用Deployments时,您不必担心管理它们创建的ReplicaSet。部署拥有并管理其复制集。因此,建议在需要ReplicaSets时使用Deployments。作为一个复制品,它只关注创建和删除pod。建议对应用程序服务进行部署,通过部署,您应该能够进行滚动升级或回滚。您可以将图像从v1更新到v2。
请参阅此SO1、SO2和副本集和部署的官方留档。
什么情况下只能使用replicaset,而不能使用部署。
没有这种常见的情况。副本集是用于维护相同映像/配置版本的无状态单元的较低级抽象。当您想要更改映像或pod配置时,通常会创建新的< code >副本集,建议使用< code >部署进行此类更改。
就其本身而言,直接使用< code>ReplicaSet并不是很有用,它更像是一个低级抽象,用于维护具有相同配置的副本的数量。