将资源的任何更改还原为 kubectl.kubernetes.io/last-applied-configuration
Revert any changes of a resource to kubectl.kubernetes.io/last-applied-configuration
是否有任何命令可以将资源恢复到以前的配置?
例如,如果我以声明方式创建了一个服务类资源,然后我手动更改了端口,我如何才能放弃实时更改以便重新应用创建该资源的原始定义?
是否有对以前应用的配置的任何跟踪?如果我们可以说:将我的服务重新配置为当前应用的配置 - 2 个版本,那就更好了。
编辑:我知道部署有推出选项,但我想知道一种 Kind-wise 机制
实际上,Kubernetes除了Deployments
和DaemonSets
之外,不支持固有资源的回滚选项。
不过,您可以考虑使用 Helm,这是一个众所周知的 Kubernetes 包管理器。 Helm 提供了一种机制来恢复您的包发布之前的状态,并包括要恢复的所有整个对象资源。
Helm 使用 helm rollback
命令表示此功能:
helm rollback [flags] [RELEASE] [REVISION]
您可以在官方 Helm 中找到完整的命令选项 Documentation。
由于您明确询问 last-applied-configuration
注释...
很简单:
kubectl apply view-last-applied deployment/foobar-module | kubectl apply -f -
鉴于 apply
通过 stdin 如此灵活地组合 — 没有专用的 kubectl apply revert-to-last-applied
子命令,因为它是上面简单管道的冗余重新实现。
人们也可能怀疑,由于复杂的原因,这样的 revert
内置永远不可能完美(正如 Nick_Kh 所指出的)。名为 revert
的子命令引起了用户的很多期望,但它永远不会实现。
所以我们得到一个简化的近似值:spec.bak
保存在资源注释中,准备重新apply
。
是否有任何命令可以将资源恢复到以前的配置?
例如,如果我以声明方式创建了一个服务类资源,然后我手动更改了端口,我如何才能放弃实时更改以便重新应用创建该资源的原始定义?
是否有对以前应用的配置的任何跟踪?如果我们可以说:将我的服务重新配置为当前应用的配置 - 2 个版本,那就更好了。
编辑:我知道部署有推出选项,但我想知道一种 Kind-wise 机制
实际上,Kubernetes除了Deployments
和DaemonSets
之外,不支持固有资源的回滚选项。
不过,您可以考虑使用 Helm,这是一个众所周知的 Kubernetes 包管理器。 Helm 提供了一种机制来恢复您的包发布之前的状态,并包括要恢复的所有整个对象资源。
Helm 使用 helm rollback
命令表示此功能:
helm rollback [flags] [RELEASE] [REVISION]
您可以在官方 Helm 中找到完整的命令选项 Documentation。
由于您明确询问 last-applied-configuration
注释...
很简单:
kubectl apply view-last-applied deployment/foobar-module | kubectl apply -f -
鉴于 apply
通过 stdin 如此灵活地组合 — 没有专用的 kubectl apply revert-to-last-applied
子命令,因为它是上面简单管道的冗余重新实现。
人们也可能怀疑,由于复杂的原因,这样的 revert
内置永远不可能完美(正如 Nick_Kh 所指出的)。名为 revert
的子命令引起了用户的很多期望,但它永远不会实现。
所以我们得到一个简化的近似值:spec.bak
保存在资源注释中,准备重新apply
。