我找过了(也许很差?)但在这个话题上没有发现任何东西。
我们努力为我们的应用程序提供一个完整的Gitops方法,这意味着我们使用Git来存储我们的应用程序配置,并引入Argo CD (带有基座/覆盖和库口化),以使应用程序的期望状态与当前的实际状态保持同步。
由于向我们提供应用程序的团队仍在向Kubernetes过渡,因此我们有一些用例需要完全停止应用程序(包括它使用的任何PVC)。对于那些用例,我们基本上杀死了与名称空间相关的所有东西,做任何需要做的事情,然后重新启动所有东西。
对于部署,我创建了一个stopApp.yaml文件,将所有部署的spec.replicas字段设置为0,并在开发覆盖层的kustomization.yaml中引用patchesStrategicMerge:字段中的stopApp.yaml。这是经过测试和工作的需要。
要再次启动所有内容,我所要做的就是注释掉kustomization.yaml文件中引用该kustomization.yaml的行。
但是我如何在PVCs上实现这一点呢?
我们创建这样的PVCs,举个例子:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: dummy-data
labels:
component: dummy
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2Gi在我的搜索中,我发现了很多关于PVs和PVs的讨论,以及很多用kubectl或bash删除它们的方法,但是还没有遇到任何关于如何通过Git + kustomize + Argo CD和“Gitops”方法来杀死PVCs的讨论。
谢谢你一路读到这里!谢谢你在这方面的指点。
发布于 2022-06-14 13:08:50
这是一种限制,而不是gitops方法。Helm提供生命周期挂钩,您可以使用这些挂钩来解决您的情况。
另一种选择是以更合适的方式设计应用程序,以便在kubernetes上运行,而无需删除所有内容并重新启动。
https://stackoverflow.com/questions/72606364
复制相似问题