<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Blue–Green Deploy :: Ay Docs</title>
    <link>https://ops.docs.72602.space/argo/argo-rollouts/bluegreen-deployment/index.html</link>
    <description>Argo Rollouts 是一个 Kubernetes CRD 控制器，它通过扩展 Kubernetes 的原生 Deployment 资源，为 Kubernetes 提供了更高级的部署策略。其核心原理可以概括为：通过精细控制多个 ReplicaSet（对应不同版本的 Pod）的副本数量和流量分配，来实现可控的、自动化的应用发布流程。&#xA;1. 蓝绿部署原理 蓝绿部署的核心思想是同时存在两个完全独立的环境（蓝色和绿色），但任何时候只有一个环境承载生产流量。&#xA;工作原理 初始状态：&#xA;假设当前生产环境是 蓝色 版本（v1），所有流量都指向蓝色的 ReplicaSet。 绿色 环境虽然可能存在（例如，副本数为 0），但不接收任何流量。 发布新版本：&#xA;当需要发布新版本（v2）时，Argo Rollouts 会创建一个与蓝色环境完全隔离的 绿色 环境 ReplicaSet，并启动全部所需的 Pod 实例。 关键点：此时，用户流量仍然 100% 指向蓝色的 v1 版本。绿色 v2 版本在启动和预热期间，完全不影响线上用户。 测试与验证：&#xA;运维人员或自动化脚本可以对绿色的 v2 版本进行测试，例如进行 API 调用、检查日志或运行集成测试。这个过程在生产流量不受干扰的情况下进行。 切换流量：&#xA;一旦确认 v2 版本稳定，通过一个原子操作，将所有生产流量从蓝色（v1）瞬间切换到绿色（v2）。 这个切换通常是通过更新 Kubernetes Service 或 Ingress 的 selector 标签来实现的。例如，将 app: my-app 的 selector 从 version: v1 改为 version: v2。 发布后：</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate></lastBuildDate>
    <atom:link href="https://ops.docs.72602.space/argo/argo-rollouts/bluegreen-deployment/index.xml" rel="self" type="application/rss+xml" />
  </channel>
</rss>