Cognigy.AI リリース4.66.0に伴うWeaviate v1.22.5へのアップグレード

本ガイドは、知識型AI機能をご利用されているCognigyオンプレミスのお客様を対象としています。

注意

Weaviateのアップグレードには、約30~60分の停止時間が必要です。ただし、この停止時間は知識型AIの機能のみに適用され、その他の機能は引き続きご利用いただけます。

はじめに

Cognigy.AIのリリース4.65.0およびそれ以前のバージョンでは、知識型AI機能のベクトルデータベースとしてWeaviate 1.19.0を使用しています。Weaviateの最新バージョンである1.22.5では、Cognigy.AIの知識型AIの機能をスムーズに動作させるために必要な、いくつかの安定性の向上が行われています。

Weaviateの内部実装の制限により、Weaviate 1.19.0から1.22.5へのローリングアップグレードはできません。さらに、Weaviate 1.22.5 を起動すると、すべての既存データのスキーマが Weaviate 1.19.0 と後方互換性のないバージョンにアップグレードされます。そのため、スムーズなアップグレードを実現するためには、以下のセクションで説明する手順に注意深く従ってください。

用語解説

  • ・本ガイドでは、「cognigy-ai-values.yaml」というファイルを使用して、Cognigy.AI Helmチャートのカスタマイズ内容を含むHelm値ファイルを参照します。お使いの環境で使用されているファイル名に置き換えてください。
  • このガイドでは、Cognigy.AIがcognigy-aiネームスペースにデプロイされていることを前提としています。Cognigy.AIを他のネームスペースにデプロイしている場合は、すべてのコマンドのネームスペースパラメータを適宜調整してください。

前提条件

  • Cognigy.AI v4.66 がデプロイされている。
    • Cognigy.AIのv4.65からv4.66へのアップグレードはWeaviateのバージョンには影響しません、Weaviateをアップグレードする前に完了している必要があります。
  • Kubernetesのバージョンがv1.21-1.27。
  • kubectlユーティリティがLinux または macOSクライアントホストにローカルにインストールされている。本ガイドはWindowsクライアントホストをサポートしていないことにご注意ください。
  • クライアントホストにHelm Chart v3.9.0 – 3.12.3がインストールされている。
  • Kubernetesクラスタがハードウェアリソースを含む一般的なCognigy.AIの前提条件を満たしている。

アップグレード

1. Weaviate StatefulSet をスケールダウンします。

kubectl scale -n cognigy-ai statefulset weaviate --replicas=0

2. すべての Weaviate Persistent Volume Claim(PVC)をバックアップします。

for pvc in {0..2}; do kubectl get pvc -n cognigy-ai weaviate-data-weaviate-$pvc -o yaml > weaviate-data-weaviate-$pvc; done

3. クラウドプロバイダーの指示に従い、すべての Weaviate Persistent Volume(PV)をバックアップし、PV マニフェストも保存します。PVマニフェストを保存します。

for i in $(kubectl get pv | grep -E 'weaviate' | awk '{print $1}')
do
kubectl get pv $i -o yaml > $i.yaml
done

4. Cognigy.AI の cognigy-ai-values.yaml ファイルで、weaviate.image.tag 1.22.5 に設定します。

5. Cognigy.AI Helmチャートを再デプロイします。この操作により、Weaviate StatefulSetがWeaviateバージョン1.22.5でスケールアップされます。

helm registry login cognigy.azurecr.io \
--username <your-username> \
--password <your-password>

helm upgrade --install --namespace cognigy-ai cognigy-ai oci://cognigy.azurecr.io/helm/cognigy.ai --version 4.66.0 --values cognigy-ai-values.yaml

3つのWeaviateレプリカがすべて稼働すれば、すべての知識型AIの機能が再び利用可能になります。

トラブルシューティング

アップグレードに失敗した場合は、以下の手順で Weaviate v1.19.0 にロールバックし、クリーンアップを行ってください。

ロールバック

Weaviate v1.19.0にロールバックするには、以下の手順で行ってください:

1. Weaviate StatefulSet を 0 ポッドにスケールダウンします。

kubectl scale -n cognigy-ai statefulset weaviate --replicas=0

2. Weaviate PVCを削除します。

for pvc in {0..2}; do kubectl delete pvc -n cognigy-ai weaviate-data-weaviate-$pvc; done

3. アップグレード時に取得した Weaviate Persistent Volumes のバックアップからボリュームを作成します。このプロセスは、使用しているプラットフォームにより大きく異なるため、ここではコマンドを提供いたしません。

4. アップグレード処理中に取得した Weaviate Persistent Volume Claims(Weaviate 永続ボリュームクレーム)のバックアップをリストアします。前のステップで作成したボリュームがPV マニフェストで使用されていることを確認します(ステップ 3 でアップデート中に PV マニフェストのバックアップを取得しましたので、適宜修正してください)。 また、PV名をPVC内のvolumeNameとして使用します(ステップ2のアップデート中にPVマニフェストのバックアップを取得しているため、適宜修正してください)。これらのファイルを適用します。適用後、PVとPVCは “bound “ステージになっているはずです。

5. cognigy-ai-values.yamlからweaviate.image.tagを削除します。Helm Chartのアップグレードでは、Cognigy.AIリリースに含まれているCognigy.AI values.yamlから1.19.0タグを取得します。

6. Cognigy.AI Helmチャートを再デプロイします。この操作により、Weaviate StatefulSetがWeaviateバージョン1.19.0でスケールアップされます。

helm registry login cognigy.azurecr.io \
--username <your-username> \
--password <your-password>

helm upgrade --install --namespace cognigy-ai cognigy-ai oci://cognigy.azurecr.io/helm/cognigy.ai --version 4.66.0 --values cognigy-ai-values.yaml

3つのWeaviateレプリカがすべて稼働すれば、すべての知識型AIの機能が再び利用可能になります。

クリーンアップ

Weaviate 1.22.5 のアップグレードに失敗し、バージョン 1.19.0 へのロールバックが必要になった場合は、以下のクリーンアップ手順で行います:

1. アップグレード中にWeaviate 1.22.5 で使用したWeaviate PVを削除します。アップグレード中に控えておいた Weaviate PV 名に対し、以下のコマンドを実行します。

kubectl delete pv <pv-name>