与 HELM 共享依赖项
Shared dependencies with HELM
那么,是否可以在具有共同引用的 helm 包之间共享同一个 pod。示例:
场景:
Package A
...
- requirements.yml
require: C
Package B
...
- requirements.yml
require: C
当我运行:
helm install A
helm install B
A 和 B 项目的这两个 pods 使用相同的 C pod。
可能吗?有文档可以帮助我吗?
PS:我的C包是一个broker,但是A&B包可以单独部署。
这应该适用于 Helm。一点背景 here。这里的一个关键方面是 update
:
- created/updated in that order.
当您更新一个对象时,即 Pod/Deployment/Service/etc 上的 kubectl apply
如果该对象存在,它不会被更改,因此您最终会得到相同的对象。
此外,同名的 Kubernetes 对象使用 idempotency principle:
All objects will have a unique name to allow idempotent creation and retrieval
在你的例子中:
helm install stable/packageA => which also installs PackageC
helm install stable/packageB => will update PackageC, but it's already present and won't change.
您必须确保 PackageA
和 PackageB
的依赖项与 PackageC
.
的版本完全相同
那么,是否可以在具有共同引用的 helm 包之间共享同一个 pod。示例:
场景:
Package A
...
- requirements.yml
require: C
Package B
...
- requirements.yml
require: C
当我运行:
helm install A
helm install B
A 和 B 项目的这两个 pods 使用相同的 C pod。 可能吗?有文档可以帮助我吗?
PS:我的C包是一个broker,但是A&B包可以单独部署。
这应该适用于 Helm。一点背景 here。这里的一个关键方面是 update
:
- created/updated in that order.
当您更新一个对象时,即 Pod/Deployment/Service/etc 上的 kubectl apply
如果该对象存在,它不会被更改,因此您最终会得到相同的对象。
此外,同名的 Kubernetes 对象使用 idempotency principle:
All objects will have a unique name to allow idempotent creation and retrieval
在你的例子中:
helm install stable/packageA => which also installs PackageC
helm install stable/packageB => will update PackageC, but it's already present and won't change.
您必须确保 PackageA
和 PackageB
的依赖项与 PackageC
.