与 HELM 共享依赖项

Alv*_*dor 5 kubernetes kubernetes-helm

那么,是否可以在具有共同引用的 helm 包之间共享相同的 pod。例子:

设想:

Package A
   ...
   - requirements.yml
         require: C

   
Package B
   ...
   - requirements.yml
         require: C
Run Code Online (Sandbox Code Playgroud)

当我跑步时:

helm install A
helm install B
Run Code Online (Sandbox Code Playgroud)

A 和 B 项目的这两个 Pod 使用相同的 C Pod。是否可以?有文档可以帮助我吗?

PS:我的例子中的C包是一个代理,但是A和B包都可以单独部署。

Ric*_*ico 4

这对于 Helm 来说应该可以正常工作。这里有一点背景知识。这里的一个关键方面是update

  • 按该顺序创建/更新。

当你更新一个对象时,即kubectl apply在 Pod/Deployment/Service/etc 上,如果该对象存在,它就不会改变,所以最终你会得到相同的对象。

此外,同名的 Kubernetes 对象使用幂等性原则

所有对象都将具有唯一的名称,以允许幂等创建和检索

在你的例子中:

helm install stable/packageA => which also installs PackageC
helm install stable/packageB => will update PackageC, but it's already present and won't change.
Run Code Online (Sandbox Code Playgroud)

您必须确保 for 的依赖PackageAPackageBPackageC.