[復刻版] Kubernetes展開戦略

展開戦略、お気に入りのどちらをKubernetes? 

HTTPS:// www.sohu.com/a/318731931_100159565?spm=smpc.author.fd-d.78.1574127778732l07n8g2

 

これは、ユーザーの更新に影響を与えずに、連続の導入に最も適したを決定するために、展開方法をKubernetes。今日のクラウドネイティブアプリケーション開発の最大の課題の一つは、展開を加速しています。マイクロサービスの方法により、開発者は変更への書き込みおよびデプロイするアプリケーションには、いくつかのチームを可能にし、使用し始め、完全にモジュラーアプリケーションであるように設計されています。

短く、より頻繁展開には以下の利点があります。

  • 市場への短縮時間。
  • お客様は、より高速の機能を利用することができます。
  • 顧客からのフィードバックチームに速く、製品フローバック、チームが機能を反復し、高速化の問題を解決することができることを意味します。
  • 人材育成の状況を強化、生産はより多くの機能を持っています。

しかし、より頻繁にリリースして、アプリケーションの信頼性または負の影響の可能性顧客経験が増加します。DevOpsチームのチームは、製品と顧客のリスクの原因を最小限にするためのプロセスと経営展開戦略を策定しなければならない理由です。

ローリング展開と、そのようなカナリアとその亜種など、より高度な方法、などの議論Kubernetes展開戦略、と一緒に、次のよう。

展開戦略

あなたの目標に応じて、展開の戦略のいくつかの異なるタイプを使用することができます。たとえば、あなたはより多くのテストの促進、またはユーザ/クライアントのサブセットのための特定の環境に変更する必要がある場合があります。または、関数の前、いくつかのユーザーテストを行うには、「一般的に利用可能」を作成する必要があるかもしれません。

スクロールの展開

スクロールの展開はKubernetes標準のデフォルトの展開です。これは、ポッドポッドの新しいバージョンを使用すると、任意のクラスタのダウンを引き起こすことなく、アプリケーションの以前のバージョンを置き換え、ゆっくり一つずつ動作します。

古いコンテナを狭める開始する前に、ロールオーバーは、プローブを調製することによって準備ができて新しいポッドを待ちます。問題が発生した場合は、クラスタ全体をシャットダウンせずに、展開を中断またはロールオーバーがあります。YAML定義ファイルなどの展開では、新しい画像が古い画像に置き換えられます。

マニフェストファイル内のパラメータを調整することにより、あなたはさらにロールオーバーを絞り込むことができます。

再作成

この非常に単純な展開では、すべての昔のポッドが殺され、すべての新しいポッドに置き換え一度にされています。

このリストは、次のようになります。

青/緑(または赤/黒)展開します

在蓝/绿部署策略(有时称为红/黑)中,旧版本的应用(绿色)和新版本(蓝色)同时部署。当部署这两个用户时,用户只能访问绿色,而蓝色可供QA团队在单独的服务上进行测试自动化或通过直接端口转发。

在测试新版本并签署发布后,该服务将切换为蓝色版本,旧版绿色版本将按比例缩小:

金丝雀部署

金丝雀部署有点像蓝/绿部署,但更受控制并使用更“ 渐进式交付 ”的分阶段方法。有许多策略属于金丝雀的保护范围,包括灰度发布或A/B测试。

当你想要测试一些新功能时,通常在应用程序的后端使用金丝雀。传统上,你可能拥有两个几乎完全相同的服务器:一个用于所有用户,另一个用新功能推送到一部分用户然后进行比较。如果未报告任何错误,则新版本可逐渐推广到基础架构的其余部分。

虽然可以通过替换旧的和新的pod来使用Kubernetes资源来完成此策略,但使用像Istio这样的服务网格实现此策略会更方便,更容易。

例如,你可以在Git中检查两个不同的清单:GA标记为0.1.0,金丝雀标记为0.2.0。通过更改Istio虚拟网关清单中的权重,可以管理这两个部署的流量百分比。

使用Weaveworks Flagger的金丝雀部署

管理金丝雀部署的一种简单有效的方法是使用Weaveworks Flagger。

使用Flagger,金丝雀部署的推广是自动化的。它使用Istio或App Mesh来路由和转移流量,使用Prometheus指标进行金丝雀分析。金丝雀分析还可以通过webhook进行扩展,以运行验收测试,负载测试或任何其他类型的自定义验证。

Flagger采用Kubernetes部署和可选的水平pod自动缩放器(HPA)来创建一系列对象(Kubernetes部署,ClusterIP服务和Istio或App Mesh虚拟服务),以推动金丝雀分析和推广。

通过实施控制回路,Flagger逐渐将流量转移到金丝雀,同时测量关键性能指标,如HTTP请求成功率,请求平均持续时间和pod健康状况。根据对KPI的分析,金丝雀被提升或中止,分析结果发布给Slack。

灰度部署或A/B部署

灰度部署是金丝雀的另一种变体(顺便提一下,也可以由Flagger处理)。灰度部署和金丝雀之间的区别在于,灰度部署处理前端而不是后端的功能。

灰度部署的另一个名称是A/B测试。你可以将其发布给少数用户,而不是为所有用户启动新功能。用户通常不知道他们被用作新功能的测试人员,因此称为“灰度”部署。

通过使用功能切换和其他工具,你可以监控用户与新功能的交互方式,以及是否正在转换用户,或者他们是否发现新的UI令人困惑以及其他类型的指标。

Flagger和A/B部署

除了加权路由,Flagger还可以根据HTTP匹配条件将流量路由到金丝雀。在A/B测试场景中,你将使用HTTP标头或Cookie来定位用户的特定部分。这对需要会话关联的前端应用特别有用。

 

Kubernetes的部署策略,你常用哪种呢?说说吧

おすすめ

転載: www.cnblogs.com/jinanxiaolaohu/p/11888294.html