Yellowfin オールインワンイメージ
Yellowfin オールインワンイメージは、組み込みのデータベースリポジトリを備えたsandbox化された導入です。つまり、任意のアップグレードによりデータベースもアップグレードされ、プロセス内の既存のコンテンツは削除されます。そのため、オールインワンイメージはアップグレードに適しておらず、テスト目的でのみ使用するのが最適です。
Yellowfin アプリケーション限定イメージ
Yellowfin アプリケーション限定イメージは、バージョンアップグレード時にコンテンツを保持します。アップグレードのプロセスは、標準的なYellowfin クラスタのアップグレードに似ていますが、Docker/Kubernet 導入にはいくつかの追加ステップがあります。
アップグレード中に問題が発生した場合にロールバックできるように、Yellowfin リポジトリデータベースのバックアップを取得することを推奨します (この手順は任意ですが、実施を強くお勧めします) 。
コンテナ環境内でYellowfinのバージョンをアップグレードするには、以下の手順に従います。
- アプリケーション限定Docker イメージの構築に使用したのと同じ手順に従いますが、今回はアップグレードバージョンに一致する新しいYellowfin インストーラー jarに置き換えます。
- 複数のDocker/Kubernetesサーバに導入する場合は、更新されたイメージをDocker レジストリにプッシュします。
ご利用のプラットフォームに固有の導入コマンドを使用して、導入されたYellowfin インスタンスの数を0にスケールダウン (停止) します (この手順についての詳細は、https://docs.docker.com/engine/swarm/swarm-tutorial/scale-service/ または https://kubernetes.io/docs/reference/kubectl/cheatsheet/を参照してください)。例えば、以下のようになります。
docker service scale yellowfin=0
これにより、Yellowfinの構成設定はアップグレード中にも後にも変更されません。
- 推奨: Yellowfin リポジトリデータベースのバックアップを取得します。
ターミナルに次のコマンドをコピーします。jar ファイル名を手順1でダウンロードしたファイル名に変更することを忘れないでください。
java -jar yellowfin-20200701-update.jar -silent option.upgrade=database jdbcUser=Yellowfin_DB_Admin jdbcPassword=Yellowfin_DB_PASSWORD jdbcURL=jdbc:mysql://TARGET_DATABASE:3306/yellowfin
上記コマンドのパラメーターの詳細については、こちらのwikiページを参照してください。
ご利用のプラットフォームのネイティブコマンドを使用して、Yellowfin Docker イメージをアップデートします。
例えば、My_Docker_RegistryというDocker レジストリから、Docker Swarm内のYellowfinを9.6.0にアップグレードするには、次のようになります。docker service update --image My_Docker_Registry:yellowfin-9.6.0 yellowfin
ご利用のプラットフォームのネイティブコマンドを使用して、前述と同じスケーリングコマンドを使用してインスタンス数をアップグレード前の値に戻し、新しいイメージでサービスを再起動します。
例えば、Docker Swarmの1つのインスタンスでは、次のようになります。docker service scale yellowfin=1
これでアップグレードは完了です。