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>