インプレースアップグレード
インプレースアップグレード方式は、主に従来モードのデプロイメントとハイブリッドモードのコントロールプレーンに使用されるKong Gatewayのアップグレードオプションです。 インプレースアップグレードでは、既存のデータベースを再利用します。
デュアルクラスターアップグレードと比較して、インプレースアップグレードはより少ないリソースの使用で済みますが、ビジネスにダウンタイムが生じます。
このガイドでは、古いバージョンをクラスターX、新しいバージョンをクラスターYと呼びます。このアップグレード方式では、クラスターXを停止し、新しいクラスターYがデータベースを指すように設定する必要があります。
flowchart TD DB[(Database)] CPX(Current Kong Gateway X \n #40;inactive#41;) Admin(No Admin API \n write operations) CPY(New Kong Gateway Y) API(API requests) CPX -.X.-> DB API --> CPY CPY --kong migrations up \n kong migrations finish--> DB Admin -.X.- CPX & CPY style API stroke:none style CPX stroke-dasharray:3 style Admin fill:none,stroke:none,color:#d44324 linkStyle 0,3,4 stroke:#d44324,color:#d44324
図1: この図は、現在のクラスターXが新しいクラスターYに直接置き換えられるインプレースアップグレードの流れを示しています。 データベースは新しいクラスターYで再利用され、すべてのノードが移行されると現在のクラスターXは停止されます。アップグレード中は、Admin APIの書き込み操作は実行できません。
アップグレード処理中にクラスターXが停止するため、業務でのダウンタイムが発生します。 アップグレードに際しての考慮事項を事前に慎重に確認する必要があります。
重要 : Kong Gatewayのデプロイ状況が次の場合を除いて、この方式は推奨されません。 非常にリソースが制限された環境、またはデュアルクラスターアップグレードのために新しいリソースを適時に取得することができない場合
現在のクラスターXは、新しいクラスターYに置き換えることができます。 ただし、この方式は、新しいクラスターYを別のマシンにデプロイすることを妨げるものではありません。
前提条件
- 一般アップグレードガイドを確認してアップグレードの準備を行い、オプションを確認すること。
- 従来モードのデプロイメントをしている、またはハイブリッドモードのデプロイメントでコントロールプレーン (CP) をアップグレードする必要があること。
- リソースの制限により、デュアルクラスターのアップグレードを実行できないこと。
インプレース方式を使用したアップグレード
次の手順は、ガイドラインとしてご利用ください。 これらの手順通りに実行できるかどうかは、環境によって異なります。
-
Kong Gatewayのあらゆる設定更新を停止します (例: Admin API呼び出し)。これは、クラスターXとクラスターY間のデータの一貫性を保証するために重要です。
-
バックアップガイドに従って、現在のクラスターXのデータをバックアップします。
-
アップグレードに際しての考慮事項の説明に従って、アップグレードに影響を与える可能性のある要因を評価します。
kong.conf
とKong Gatewayの両方の構成データのカスタマイズを検討する必要がある場合があります。 -
リリース間で発生したすべての変更を評価します。
-
古いクラスターXのKong Gatewayノードを停止しますが、データベースは実行したままにします。 これにより、アップグレードが完了するまでダウンタイムが発生します。
-
Kong Gatewayのインストールオプションの説明に従って、バージョンYを実行して新しいクラスターをインストールし、クラスターXの既存のデータベースに向けます。
現在のクラスターXと同じ容量のリソースを新しいクラスターYに割り当てます。
-
kong migrations up
を実行してデータベースを新しいバージョンに移行します。 -
完了したら、
kong migrations finish
を実行します。 -
新しいクラスターYを起動します。
-
すべてのプロキシメトリクスを頻繁に監視します。
-
問題が発生した場合は、アップグレードをロールバックしてください。 アプリケーションレベルの方法よりも、データベースレベルの復元方法を優先します。
-
問題がなくなったら、古いクラスターXを廃止してアップグレードを完了してください。
これでKong Gatewayへの書き込み更新を実行できるようになりましたが、しばらくはメトリクスを監視し続けることをお勧めします。