RapidMiner(ラピッドマイナー)はデータ可視化、データ加工、モデル作成、評価、運用まで一括サポートする機械学習プラットフォームです。KSKアナリティクスはRapidMinerの正規販売代理店です。

9.9.2から9.10.0へのアップグレード

RapidMiner AI Hub 9.10では、OpenShiftRootless Dockerなど、Dockerイメージを最新のセキュリティガイドラインに対応するよう改良しました。

古いDockerイメージを使用した、既存のシステムをアップグレードするには、マウントされたファイルシステムのパーミッションを変更し、管理者権限を持たないユーザーがファイルにアクセスできるようにする必要があります。そこで、移行スクリプトを提供しています。

RapidMiner AI Hubを旧バージョンから9.10にアップグレードする場合、以下の点に注意してください。

  • RapidMiner AI Hub 9.9.2からアップグレードする必要があります。RapidMiner AI Hubのバージョンが9.9.2以下である場合、まずバージョン9.9.2にアップグレードする必要があります。
  • RapidMiner AI Hubをアップグレードする前に、必ず現在の環境をシャットダウンし、バックアップを作成してください。完全なバックアップは、3つで構成されます。
    1. .envとdocker-compose.ymlファイルを含むフォルダの完全な内容です。Dockerはgoとsslサブフォルダにバインドマウントを作成することに注意してください。
    2. docker-compose.ymlファイルから参照される名前付きボリュームの完全なセットです。DockerウェブサイトのドキュメントBackup, restore, or migrate data volumesを参照してください。
    3. JupyterHubによって生成された追加のボリュームで、ユーザーごとに1つ、jupyterhub-user-<username>-<JUPYTER_STACK_NAME>のような名前をもっています。
  • まずホストマシン上でdocker-compose downを実行し、RapidMiner AI Hubをオフラインにして初めて、一貫性のある状態のバックアップをとることができます。
  • バックアップツールで、Linuxファイルシステムのメタデータ(ユーザー、グループ情報、パーミッションなど)を保存する必要があります。

アップグレード

Rootless Dockerは、Docker Engineバージョン19.03で実験的機能として導入され、バージョン20.10で正式な機能になりました。

そのため、Docker Engine 20.10以上のバージョンを使用することが推奨されます。

オペレーティングシステムの詳細については、ディストリビューション別のヒントを参照してください。CentOS 6/7はサポートされていないことに注意してください。理由は、非特権ユーザーの名前空間がLinuxカーネルバージョン3.19以下ではサポートされていないためです。

上記で述べたように、既存のRapidMiner AI Hub 9.9.2のバックアップを作成したら、アップグレードの準備は完了です。以下の手順は、現在の本番環境上の.envとdocker-compose.ymlを含むフォルダで行われます。

  1. アップグレードスクリプトをダウンロードし、解凍します。
  2. 以下のファイルを現在の本番環境上の.envとdocker-compose.ymlのあるフォルダにコピーします。
    
    docker-compose-gen2.yml
    env-gen2
    upgrade-gen2.sh
    migration-compose.yaml
    ReadMe.md
    
    

    docker-compose-gen2.ymlとenv-gen2には新しい設定が書かれていますが、env-gen2にはまだ自身の設定の固有の値、たとえば古い.envファイルに含まれている、CLIENT_SECRETが付く変数の値は含まれていません。ReadMe.mdというファイルに.envとenv-gen2を手動でマージする方法が書かれていますが、このサイトで提供されているファイルを大きく変更していなければ、多くの場合、次のステップで説明するシェルスクリプトを実行する方が簡単です。

  3. 環境変数の値を古い.envファイルから新しいenv-gen2に移行するシェルスクリプトを実行する前に、.envとdocker-compose.ymlファイルに大きな変更がないか確認してください。理想では、本サイトで提供されているテンプレートをベースに、プロファイルを利用してサービスを選択する構成が望ましいです。docker-compose.ymlにサービスを追加している場合(StandPyTabGoなど)、docker-compose-gen2.ymlにもサービスを追加する必要があります。
    これらの注意点を踏まえて、シェルスクリプトを実行します。

    
    sh upgrade-gen2.sh
    

    このスクリプトは、変更された値をスクリーンに書き込み、2つのパッチファイルを作成するので、行われた変更の記録が残ります。

    
    upgrade-env.patch
    upgrade-yml.patch
    

    この時点では、env-gen2が自身の値で更新されただけで、実際には何も変更されていません。確認として、ReadMe.md内の手順書で、提案されている変更と比較することができます。次のステップで、アップグレードを開始します。

  4. 変更内容が正しいことが確認できたら、元ファイルにコピーして上書きします。
    
    cp env-gen2 .env
    cp docker-compose-gen2.yml docker-compose.yml
    

    またはパッチを当てます。

    
    patch .env upgrade-env.patch
    patch docker-compose.yml upgrade-yml.patch
    
  5. ルートレスDockerのコンテキスト内でnginxの要件を満たすには、sslサブフォルダのファイルの所有者を変更する必要があります。
    
    sudo chown -R 2011:0 ssl # as root user
    
  6. アップグレード/移行スクリプトを実行し、名前付きボリュームのファイル権限を変更します。
    
    docker-compose -f migration-compose.yaml up
    

    このスクリプトでは、警告やエラーが出ないはずです。もし表示された場合は、migration-compose.yamlがdocker-compose.ymlと同じように.envファイルにアクセスできるか確認してください。

  7. 新しいイメージのダウンロード
    
    docker-compose pull
    
  8. RapidMiner AI Hub 9.10を起動します。以上でアップグレードは完了です。
    
    docker-compose up -d
    

upgrade-gen2.sh


#!/bin/bash

# The old files correspond to version 9.9.2 of RapidMiner AI Hub
# The new files correspond to version 9.10.0 of RapidMiner AI Hub

old_yml_file="docker-compose.yml"
new_yml_file="docker-compose-gen2.yml"

old_env_file=".env"
new_env_file="env-gen2"

# Find values of the environment variables in the old files that differ from the new files
# and copy them to the new files, excluding variables that should have new values,
# such as those labelled VERSION / BACKEND / REGISTRY

diff -u $old_env_file $new_env_file | grep ^-[^#-] | grep -v VERSION | grep -v BACKEND | grep -v REGISTRY | cut -c 2- | cut -d= -f1 | \
    while read key; do
        if grep -q $key= $new_env_file; then
            replacement=$(grep ^${key}= $old_env_file | cut -d= -f2)
            echo "$key=$replacement"
            perl -pi -e "s@^$key=.*@$key=$replacement@" $new_env_file
        fi 
    done

# Create patch files

diff -u $old_env_file $new_env_file > upgrade-env.patch

diff -u $old_yml_file $new_yml_file > upgrade-yml.patch

migration-compose.yaml


version: "3.9"
services:
  rm-migration-svc:
    image: "rapidminer/aihub-migration:9.10.0-gen2"
    container_name: "migration"
    #entrypoint: sh -c 'while true;do sleep 120;done'
    volumes:
      #RM PROXY & LE
      - ./ssl:/etc/nginx/ssl
      #KC PG
      #- keycloak-postgresql-vol:/var/lib/postgresql/data
      #RM-INIT
      - ./.env:/rm-init/rapidminer/.env
      - keycloak-admin-cli-vol:/rm-init/rapidminer/.keycloak/
      - deployed-services-vol:/rm-init/rapidminer/deployed-services/
      - ./go:/rm-init/go/
      #RM PG SVC
      #- rm-postgresql-vol:/var/lib/postgresql/data
      #RM SERVER SVC
      - rm-server-bootstrap-vol:/aihub/bootstrap.d
      - rm-server-home-vol:/aihub/persistent-rapidminer-home
      #RM JA
      - rm-server-bootstrap-ja-vol:/ja/bootstrap.d
      - rm-server-ja-extensions:/ja/rapidminer-jobagent/home/resources/extensions:rw
      - rm-server-ja-log-vol:/ja/rapidminer-jobagent/home/log
      - rm-server-ja-data-vol:/ja/rapidminer-jobagent/home/data
      #PA
      - platform-admin-uploaded-vol:/pa/var/www/html/uploaded/
      - rts-licenses-vol:/pa/var/www/html/uploaded/licenses/
      #RTS
      - rts-deployments-vol:/rtsa/rapidminer-scoring-agent/home/deployments/
      - rts-licenses-vol:/rtsa/rapidminer-scoring-agent/home/resources/licenses
      #JHUB DB
      #- jupyterhub-postgresql-vol:/var/lib/postgresql/data
      #CES
      - rm-coding-shared-vol:/ces/opt/coding-shared/
      #GF
      - grafana-home:/var/lib/grafana
      #LandingPage
      - rm-landing-page-vol:/landingpage/var/www/html/uploaded/
      - deployed-services-vol:/landingpage/rapidminer/deployed-services/
      #TokenTool
      - rm-token-tool-vol:/tokentool/var/www/html/uploaded/

volumes:
  rm-postgresql-vol:
  rm-server-bootstrap-vol:
  rm-server-home-vol:
  rm-server-bootstrap-ja-vol:
  rm-server-ja-log-vol:
  rm-server-ja-data-vol:
  rm-server-ja-extensions:
  platform-admin-uploaded-vol:
  rts-deployments-vol:
  rts-licenses-vol:
  jupyterhub-postgresql-vol:
  grafana-home:
  keycloak-postgresql-vol:
  keycloak-admin-cli-vol:
  rm-landing-page-vol:
  rm-token-tool-vol:
  deployed-services-vol:
  rm-coding-shared-vol:
    name: ${JHUB_ENV_VOLUME_NAME}
  rapidminer_automodel_dbdata:
  rapidminer_automodel_shared:

API認証に失敗しました メールまたはパスワードが正しくありません メールアドレスは必須です パスワードは必須です
キャンセル