クバーネディスとして無停止の導入を提供



この文章はまずGDSC SongSilに書いて、それから私のブログに共有した文章をアップロードします。


紹介する


最近のサービスは、機能的なモバイル構造からマイクロサービス構造に転換し、経常性と導入性で発展しています.しかし、導入が多ければ多いほど、導入が敏感になり、以前は主に使用していたダウンタイムが長くなります.
この投稿では、GDSCのインフラストラクチャにおけるさまざまなサービス導入ポリシーのテクニックについて説明します.これらのポリシーは、お客様の研究に基づいて設計されています.

入る前に。


クバーネディス社はアプリケーションの導入と管理を担当しています.
通常、Podを直接作成することは少なく、導入とロールバックの負担を最小限に抑え、管理ポイントを削減するために、すべての管理でDeploymentを使用します.この機能を使用すると、配置ポリシーを設定し、リビジョンからロールバックできます.

配備ポリシー


クバーネディスには、無停止の3つの導入があります.これは、Podを1つずつ最新バージョンに更新したり、Blue-Greenを1つずつ交換したり、最新バージョンの一部を導入するだけでテストできるスクロール型の導入方法です.
導入方法を1つずつまとめてみましょう.

1.ロール配置


⚉新バージョンPODで順次交換する方法

スクロール・デプロイメントは、使用するインスタンスで新しいバージョンを徐々に置き換える、中断されないデプロイメントの最も基本的な方法です.新しいバージョンのシードを順番に置き換えることで、新しいReplicaSetsを作成し、古いコンテナを新しいコンテナに置き換えます.
これは、リソースの限られたインスタンス環境でバージョンを順番に更新できる無停止の導入方法です.しかし、v 2とv 1が同時に存在するため、APIの設計が正しくないと問題が発生する可能性がある.

ステージ

1) 일부의 Pod v2를 생성합니다.
2) Pod v2가 정상적으로 실행되었다면 생성된 만큼의 Pod v1를 제거합니다.
3) 최종적으로 v1에 아무것도 남지 않을때까지 반복합니다.

2.青緑色の配置


⚄▼同じサイズのサーバリソースの準備と交換方法

青-緑配置は、DownTimeを最小化しながらすべてのトラフィックを同時に移動する方法です.
古いバージョンのPodはBlu-rayの新しいバージョンのPodは緑で、緑のPodが準備ができている場合は、古いバージョンのBluePodトラフィックを緑のPodに変換し、すべてのPodv 1を閉じます.
順番にアップロードするのではなく、一括して変更するため、すべてのトラフィックは同じバージョンのAPIを見ることができます.しかし、緑のチャネルを準備するには、より多くのリソースが必要です.

ステージ

1) Pod v2 (Green Pod)를 리소스에 맞게 전부 실행합니다.
2) Pod v2 (Green Pod)가 모두 실행되었다 판단되면 Pod v1 (Blue Pod)의 트래픽을 Pod v2로 이전시킵니다.
3) Pod v2(Green Pod)에 모든 트래픽이 이전되었다면 Pod v1(Blue Pod)를 제거합니다.

3.Canny(Canny Deployment)の配布


潜在的な問題を迅速に特定する方法

カナリ配備は、以前鉱夫がカナリアという鳥を使ってガス曝露を検査し、類似の方法で複製してテストしたとしても、ユーザーが使用する環境にエラーが発生する可能性があるため、このような問題を減らすために設計された方法です.
Canariの導入には、2つの方法があります.
1)第1の方法は、Pod v 2を再接続し、重みに従って少量の流量をPod v 2に送信し、不特定の複数をランダムに試験することである.
2)第2の方法は、特定の経路でのみv 2にアクセスでき、v 1はサービス/apiアドレスを有し、v 2はサービス/v 2/apiに設定され、v 2を接続する人のトラフィックでテストされ、後で問題がなければサービス/v 2/apiを使用してサービス/apiに置き換えることができる.

ステージ

1) Pod v2를 새로 올린 다음, 적은량의 트래픽 조정하여 Pod v2로 보냅니다.
2) Pod v2가 정상적으로 작동되는 것이 확인된다면 Pod v2를 늘리고 Pod v1를 축소합니다.

最後に。


過去とは異なり、毎日数十回、数百回導入する企業が増えています.マルチデプロイメントは、ユーザーのNIZをより容易に適用し、機能をより迅速に検証することを意味します.仮想化なしで実行する場合、無停止の導入には多くの労力とリソースが必要ですが、現在ではクバーネディスなどの自動化ツールがサポートされています.
導入はユーザーに公開される重要なアクティビティであり、導入インフラストラクチャの管理が重要です.さまざまな仮想化ツールプラットフォームが用意されており、無停止で導入するのは当然ですが、無停止をサポートしていない場合は、考慮してください.