kubernetes - 如何自动更新集群中的 Istio 资源?
问题描述
我有一个 Kubernetes 集群,有两个节点在运行。
我已经使用 argocd 来处理对我的微服务的任何更改(目前是一个微服务,但我将添加它)。
我的应用程序正在构建为掌舵图。因此,当我的 repo 更改时,我会更新我的 helm 图表,然后 argocd 看到 helm 图表有更改并将这些更改应用于集群。
我希望将 Istio 作为我的服务网格添加到我的集群中。使用 Istio 会有很多 yaml 配置文件。
我的问题是,如何让我的集群自动更新我的 istio 配置,例如当我的 helm chart 更改时 argocd 如何更新?
当然,我可以将 istio 配置文件放在 helm chart 中,但我的想法是:
- 我希望我的 istio 配置绑定到我的应用程序吗?
- 即使我确实做了#1,我并不反对,有许多 istio 配置将适用于集群范围,而不仅仅是我的一个微服务,而且这些绝对没有意义绑定到我的特定微服务, argo-cd 应用程序。那么我将如何处理自动更新集群范围的 istio 文件呢?
另一种选择可能是使用应用程序模式的 argocd 应用程序,但从我读过的内容来看,这似乎还没有得到最大的支持。
解决方案
在我看来,如果 Istio 组件(如
VirtualService
等RequestAuthentication
)“属于”应用程序,则应该将它们打包到应用程序中。如果它适合您的开发模型(即,没有单独的团队来管理这些问题),您甚至可以将它添加Gateways
到应用程序中。Certificates
使用 crossplane 之类的工具,您甚至可以在您的应用程序中包含数据库配置或其他基础设施。这样,应用程序是独立的,配置不会分布在多个地方。您可以创建一个“基础设施”图表。这可以在自己的 Argo 应用程序中,甚至在您的应用程序之前部署(可能与部署 Argo CD 本身的阶段相同)
推荐阅读
- properties - Jahia:节点属性的最大长度约束
- javascript - NodeJS:在回调函数中追加文件
- php - PHP array_intersect_key 但保留来自 array2 的值
- python - 具有不同类型值的字典的假设搜索策略
- ios - Swift - 按下按钮后从 TableView 中删除单元格
- reactjs - 显示对话框后 React onClick 停止工作
- mongodb - 关于MongoDB跨数据库连接的一些问题
- python - 在数据框中搜索值的邻居
- docker - 列出容器时如何在命令列中看到完整的命令字符串?
- python - urllib3.Pool Manager 没有属性名