【发布时间】:2022-01-06 09:06:38
【问题描述】:
我们在 helm 中有以下图表结构,可以将“微服务”部署到我们的 k8s 集群
service-chart
|_templates
|_deployment.yaml
|_Ingress.yaml
|_service.yaml
|_Chart.yaml
|_valueBase.yaml
|_valueForService1.yaml
|_valueForService2.yaml
..
..
|_valueForService{n}.yaml
valueBase.yaml 包含服务的默认值(例如限制、副本等)
global:
namespace: teamname
environment: staging
limits:
memory: "500Mi"
cpu: "300m"
deployments:
replicas: 1
probes:
path: "/"
valueForService1.yaml 文件包含为特定服务覆盖的值
app:
name: "service1"
image:
name: "service1"
version: "2021.11.xxx"
port: 50001
deployments:
replicas: 3
以上所有服务都遵循完全相同的结构并创建类似的资源,即服务、Pod 和入口。 我们将单个服务部署为
helm upgrade --install -f valueBase.yaml -f valueForService1.yaml service1 .
但问题是我们有 50 个这样的服务。 我们希望将它们全部安装在一起,而不是背靠背运行 50 个命令。 还希望在发布多个服务之间进行一些发布协调。 例如。在发布 service2 之前发布 service1。
我知道我们可以在一个包含 50 个 -f 参数的命令中执行此操作,但这不是我想要的解决方案。
我们怎样才能正确地包装它们以便我们可以
- 我们可以在需要时一次性发布所有服务。
- 发布单个服务
- 将它们作为服务组发布,例如。 group1 由 service1、service2 和 service3 组成
- 发布编排,例如。发布 service1 然后 service2 然后 service3
欢迎所有建议。欢迎询问更多详情。
注意:我们尝试使用子图表,但使用子图表似乎无法解决问题。 我们只是有很多结构相似的服务。 但我可能完全错误地使用了子图表。
【问题讨论】:
标签: kubernetes yaml kubernetes-helm helm3