专业的编程技术博客社区

网站首页 > 博客文章 正文

「Isito 系列」 使用Istio和Helm 实现K8S金丝雀和蓝绿部署(一)

baijin 2024-10-09 07:59:49 博客文章 15 ℃ 0 评论



在本文中,我们将回顾在Kubernetes中类似于生产的环境中部署应用程序的两个版本的方法,以及应用两种不同的可用性方法。第一种是在两个版本(canary)之间平均分配网络流量,第二种是将100%的流量传输到两个版本中的任何一个(蓝色/绿色),停机时间为零。

前置条件

  • Kubernetes
  • Helm3
  • Istio
  • AWS
  • Linux
  • 什么是blue/green部署

    蓝绿色部署是一种通过运行两个相同的称为Blue和Green的生产环境来减少停机时间和降低风险的技术。
    在任何时候,只有一个环境处于活动状态,该活动环境为所有生产流量提供服务。对于此示例,蓝色当前处于活动状态,绿色处于空闲状态。
    在准备软件的新版本时,部署和测试的最后阶段将在非实时环境中进行:在本示例中为绿色。一旦以绿色部署并全面测试了软件,就可以切换路由器,以便所有传入请求现在都变为绿色而不是蓝色。绿色现在处于活动状态,而蓝色处于空闲状态。


    什么是金丝雀部署

    Canary部署是一种用于将发布内容发布到一部分用户或服务器的模式。这个想法是首先将更改部署到一小部分服务器,进行测试,然后将更改推广到其余服务器。金丝雀部署可作为预警指标,对停机时间的影响较小:如果金丝雀部署失败,则其余服务器不会受到影响。


    什么是Helm

    Helm是第一个在Kubernetes上运行的应用程序包管理器。它使您可以通过方便的掌舵图来描述应用程序结构,并通过简单的命令对其进行管理。
    头盔为何重要?因为这是对服务器端应用程序的定义,存储和管理方式的巨大转变。 Helm的采用很可能是微服务大规模采用的关键,因为使用此程序包管理器极大地简化了它们的管理。

    什么是Istio

    当整体应用程序向分布式微服务架构过渡时,Istio解决了开发人员和运营商面临的挑战。要了解如何更详细地了解Istio的服务网格。
    术语服务网格用于描述组成此类应用程序的微服务网络及其之间的交互。随着服务网格的大小和复杂性的增长,它变得越来越难以理解和管理。它的要求可以包括发现,负载平衡,故障恢复,指标和监视。服务网格通常还具有更复杂的操作要求,例如A / B测试,金丝雀推出,速率限制,访问控制和端到端身份验证。
    Istio提供了整个服务网格上的行为洞察力和操作控制,从而提供了一个完整的解决方案来满足微服务应用程序的各种需求。

    下一节实践

    Tags:

    本文暂时没有评论,来添加一个吧(●'◡'●)

    欢迎 发表评论:

    最近发表
    标签列表