首页 > 解决方案 > 如何自动更新集群中的 Istio 资源?

问题描述

我有一个 Kubernetes 集群,有两个节点在运行。

我已经使用 argocd 来处理对我的微服务的任何更改(目前是一个微服务,但我将添加它)。

我的应用程序正在构建为掌舵图。因此,当我的 repo 更改时,我会更新我的 helm 图表,然后 argocd 看到 helm 图表有更改并将这些更改应用于集群。

我希望将 Istio 作为我的服务网格添加到我的集群中。使用 Istio 会有很多 yaml 配置文件。

我的问题是,如何让我的集群自动更新我的 istio 配置,例如当我的 helm chart 更改时 argocd 如何更新?

当然,我可以将 istio 配置文件放在 helm chart 中,但我的想法是:

  1. 我希望我的 istio 配置绑定到我的应用程序吗?
  2. 即使我确实做了#1,我并不反对,有许多 istio 配置将适用于集群范围,而不仅仅是我的一个微服务,而且这些绝对没有意义绑定到我的特定微服务, argo-cd 应用程序。那么我将如何处理自动更新集群范围的 istio 文件呢?

另一种选择可能是使用应用程序模式的 argocd 应用程序,但从我读过的内容来看,这似乎还没有得到最大的支持。

标签: kuberneteskubernetes-helmistioargo-workflowsargocd

解决方案


  1. 在我看来,如果 Istio 组件(如VirtualServiceRequestAuthentication)“属于”应用程序,则应该将它们打包到应用程序中。如果它适合您的开发模型(即,没有单独的团队来管理这些问题),您甚至可以将它添加Gateways到应用程序中。Certificates使用 crossplane 之类的工具,您甚至可以在您的应用程序中包含数据库配置或其他基础设施。这样,应用程序是独立的,配置不会分布在多个地方。

  2. 您可以创建一个“基础设施”图表。这可以在自己的 Argo 应用程序中,甚至在您的应用程序之前部署(可能与部署 Argo CD 本身的阶段相同)


推荐阅读