跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言

Istio 的 GitOps:像代码一样管理配置

GitOps 是一种利用 Git 作为声明式基础设施和应用程序真实来源的持续交付方式。其核心原则包括使用声明式配置、避免直接使用 Kubectl 推送生产、以及采用 Operator 模式保持集群同步。在 Istio 服务网格中,GitOps 允许通过配置文件管理流量、可观察性、安全性和性能,并支持非原子的金丝雀发布流程,实现迭代管理和快速回滚。

古灵精怪发布于 2019/1/26更新于 2026/7/2637 浏览
Istio 的 GitOps:像代码一样管理配置
什么是 GitOps?

GitOps 是实现持续交付的一种方式。GitOps 使用 Git 作为声明式基础设施和应用程序的真实来源。当对 Git 进行更改时,自动化交付管道会上线对基础设施的更改。这个想法还可以更进一步——使用工具来比较实际的生产状态和源代码控制中描述的状态,然后告诉你什么时候集群的状态跟描述的不符。

Git 启用声明式工具

通过使用 Git 这样的声明式工具可以对整套配置文件做版本控制。通过将 Git 作为唯一的配置来源,可以很方便的复制整套基础设施,从而将系统的平均恢复时间从几小时缩短到几分钟。

Istio 的 GitOps——像代码一样管理 Istio 配置

GitOps 赋能开发人员拥抱运维

Weave Cloud 的 GitOps 核心机制在于 CI/CD 工具,其关键是支持 Git 集群同步的持续部署(CD)和发布管理。Weave Cloud 部署专为版本控制系统和声明式应用程序堆栈而设计。以往开发人员都是使用 Git 管理代码和提交 PR(Pull Request),现在他们也可以使用 Git 来加速和简化 Kubernetes 和 Istio 等其他声明式技术的运维工作。

GitOps 的三个核心原则

下面描述的是为何 GitOps 既是 Kubernetes 又是云原生核心的原因:

1. GitOps 的核心是声明式配置

通过使用 Git 作为实体源,并使用 Kubernetes 做滚动更新,可以观察集群并将其与期望的状态进行比较。通过将声明性配置视为代码,它允许您通过在未成功时重新应用更改来强制收敛。

2. 不应该直接使用 Kubectl

根据一般规则来看,将代码经过 CI 直接 push 到生产并不是个好主意。许多人通过 CI 工具驱动部署,但是当你这样做的时候你可能不得不做一个访问生产的东西。

3. 使用 operator 模式

通过 operator 模式,集群将始终与 Git 中签入的内容保持同步。Weave Flux 是开源的,它是使用 Istio 演示下面的金丝雀部署的基础,您可以使用 operator 管理集群中的更改。

Istio 的 GitOps——像代码一样管理 Istio 配置

无论是开发流程还是生产流程,还是从预发到合并到生产,operator 都会将更改 pull 到集群中,即使是有多个更改也能以原子的方式部署。

Istio 的 GitOps——像代码一样管理 Istio 配置

Istio 的 GitOps 工作流程

接下来,Varun Talwar 谈到了 Istio 是什么以及如何使用 GitOps 工作流管理应用程序。

Istio 是一年前发布的服务网格。它是一个专用的基础设施层,用于为微服务架构中的所有服务间交互提供服务。Istio 中的所有操作都是通过声明式配置文件驱动的。也就是说像 Istio 这样的服务网格可以让开发人员在 Git 中像管理代码一样完全的管理服务行为。

Istio 的 GitOps——像代码一样管理 Istio 配置

借助 Git 工作流程,开发人员可以对 Istio 中的任何内容进行建模,包括服务行为及其交互,如超时、断路器、流量路由、负载均衡及 A/B 测试和金丝雀发布等。

跨团队的多组配置

Istio 有四个广泛的领域应用,都是通过声明式配置驱动的:

  • 流量管理:与管理入口和服务流量有关。
  • 可观察性:监控、流量延迟、QPS、错误率等。
  • 安全性:所有服务间调用的认证与授权。
  • 性能:包括重试超时、故障注入和断路等。

因为所有这些领域都可以跨越组织内的不同团队,所以这使得在 Istio 上管理应用程序尤其具有挑战性。

Istio 的 GitOps——像代码一样管理 Istio 配置

这些配置驱动的很多设置是跨团队的。例如,有的团队想用 Zipkin 进行跟踪,而另一个团队可能想用 Jaeger。这些决策可以针对某一项服务进行,也可以跨服务进行。当决策跨越团队时,审批工作流程将变得更加复杂,并不总是原子性的。金丝雀发布不是原子的一次性事情。

通过 GitOps 工作流程在 Istio 上做金丝雀部署

Stefan Prodan 向我们展示了如何使用带有 Weave Flux 和 Prometheus 的 GitOps 工作流程在 Istio 中做一次金丝雀发布——您可以在 Weave Cloud 中使用这些工具以及金丝雀部署和可观察性。

简而言之,当您想要用一部分用户测试某些新功能时,会使用金丝雀部署或发布。传统上,您可能拥有两台几乎完全相同的服务器:一台用于所有用户,另一台用于将新功能部署到某一组用户。

但通过使用 GitOps 工作流程,您可以通过 Git 控制您的金丝雀,而不是设置两个独立的服务器。当出现问题时,可以回滚到旧版本,并且可以在金丝雀部署分支上进行迭代,并继续发布,直到满足预期为止。

Istio 的 GitOps——像代码一样管理 Istio 配置

在 Weave Cloud 中,Git 控制的金丝雀发布具有完全可观察性

通过流水线推送变更,您可以向用户发送部分一定比例的流量。使用 Weave Cloud,您可以在仪表板中观察金丝雀是否按预期工作。如果有问题可以继续修改,然后推出下一个版本,对其进行标记后通过同一流水线部署。这就是 GitOps 工作流程帮助您管理的迭代过程。

总结

Alexis Richardson 给了我们关于 GitOps 的概述,以及为什么您需要在管理运行在 Kubernetes 和 Istio 上的应用程序时考虑这种方法。然后 Varun Talwar 谈到了 Istio 是什么以及如何使用 GitOps 工作流程来管理应用程序。最后,Stefan Prodan 向我们展示了一个特殊用例,其中非原子工作流程(如金丝雀发布)也可以通过像 Istio 这样的服务网格上的 GitOps 进行管理。

目录

  1. 什么是 GitOps?
  2. Git 启用声明式工具
  3. GitOps 赋能开发人员拥抱运维
  4. GitOps 的三个核心原则
  5. Istio 的 GitOps 工作流程
  6. 跨团队的多组配置
  7. 通过 GitOps 工作流程在 Istio 上做金丝雀部署
  8. 总结
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • JadeAI 简历生成器:模板、AI 辅助与 Docker 部署
  • Stable Diffusion 3.5 FP8 模型部署与性能优化指南
  • AI 绘画提示词风控:Qwen3Guard-Gen-8B 前置审核实战
  • AI 大模型开发入门:四大必备开源工具指南
  • 开源 AI 联网搜索工具 OpenWebSearch MCP 升级,支持多引擎与流式响应
  • 非科班转码者的 AI 学习路径:从 0 到 1
  • 数据结构基础:栈与队列的顺序及链式实现
  • 秋叶绘世 Stable Diffusion 整合包与 ComfyUI 使用指南
  • AI 小说生成器本地部署与配置指南
  • Rust 异步 Web 框架 Axum:核心原理与实战进阶
  • Git 实战:如何精准合并指定分支的特定提交
  • 云开发 Copilot:AI 赋能的低代码开发
  • C++11 核心特性详解:列表初始化、新式声明、范围 for 与 STL 变化
  • AIGC 时代 C++ 吞吐量优化技巧与性能提升实践
  • SketchUp STL 插件安装与使用指南
  • MySQL 库核心操作详解:创建、修改与备份实战
  • LM Studio 本地离线部署大语言模型实战指南
  • 大模型上下文窗口 200k 到底是什么
  • 机场出租车调度问题的数学建模与 Python 仿真实现
  • MySQL 常用函数整理与使用指南

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online