Kubernetes を使用した IBM Db2 Warehouse SMP のデプロイ

Helm Chart アプリケーション・パッケージ・マネージャーおよび Kubernetes を使用して、 IBM® Db2® Warehouse を単一ノード対称型マルチプロセッシング (SMP) システムにデプロイします。

始める前に

既に Db2 Warehouse が現在使用しているハードウェアにインストールされている場合は、この手順に従わないでください。 代わりに、Kubernetes を使用した IBM Db2 Warehouse の再デプロイ で説明されている手順に従って、Db2 Warehouse を再デプロイしてください。

ご使用の Linux システムが、 Linux および x86 ハードウェアでの IBM Db2 Warehouse の前提条件に記述されている前提条件を満たしていることを確認してください。また、以下の環境も含める必要があります。
  • ストレージ・ドライバーを devicemapper に設定した、Docker 17 以降
  • kubectl および helm コマンドへのアクセス権限を持つ Kubernetes

手順

  1. ホスト・オペレーティング・システムの root 権限があることを確認してください。
  2. 構成オプションを参照してください。
    以下のいずれかのオプションのデフォルト値を Db2 Warehouse 環境でオーバーライドする必要がある場合は、IBM サポート担当者に連絡してください。
    DB_CODESET
    DB_COLLATION_SEQUENCE
    DB_PAGE_SIZE
    DB_TERRITORY
    ENABLE_ORACLE_COMPATIBILITY
    TABLE_ORG
  3. Kubernetes クラスターのマスター・ノードから Docker にログインします。
    docker login -u=docker_id -p='password'
  4. 現在のコンテナー・イメージをプルします。
    docker pull store/ibmcorp/db2wh_ee:v3.9.0-db2wh-linux
  5. IBM Marketplace Web サイトから取得した Db2 Warehouse Developer Edition コンテナーをデプロイする場合は、 次のコマンドを発行します。
    docker load -i db2wh_v3.9.0_devc.tar.gz
  6. 以下のいずれかの docker run コマンドを発行して、Helm チャートをデプロイするために必要な YAML ファイルを取り出します。
    • Db2 Warehouse Enterprise Edition コンテナーの場合:
      docker run -dit --name=test --entrypoint=/bin/bash store/ibmcorp/db2wh_ee:v3.1.0-db2wh-linux
    • Db2 Warehouse Developer Edition コンテナーの場合:
      docker run -dit --name=test --entrypoint=/bin/bash store/ibmcorp/db2wh_ce:v3.1.0-db2wh-devc_linux
  7. 以下のコマンドを発行して、シェル・コンテナーを作成し、コンテナーからマスター・ノード・ホストに Helm チャートの YAML ファイルを取り出します。
    docker cp test:/opt/ibm/scripts/kubernetes/smp/db2warehouse-smp-helm .
    docker stop test; docker rm test;
  8. 以下のコマンドを発行して、Docker ログイン資格情報の base64 エンコード・バージョンを生成します。
    cat ~/.docker/config.json | base64 -w0
  9. 生成されたエンコード済み Docker ログイン資格情報をクリップボードにコピーします。
  10. secret.yaml ファイルを開きます。
    vi db2warehouse-smp-helm/templates/secret.yaml
  11. 生成されたエンコード済み Docker ログイン資格情報を .dockerconfigjson ストリング上に貼り付け、 secret.yaml ファイルを閉じます。
  12. kubectl コマンドと helm コマンドを発行できるように、管理者として Kubernetes マスター・ノードにログインします。
  13. 以下のようにして、ストレージ永続ボリューム (PV) をセットアップします。
    1. NFS サーバー・ホストで、以下のコマンドを発行して NFS ユーティリティーをインストールします。
      yum install -y nfs-utils
    2. NFS サーバー・ホストで、以下のコマンドを発行して、NFS サーバーのマウント・ポイント・ディレクトリーを作成します。
      mkdir -p /mnt/clusterfs
    3. NFS サーバー・ホストで、/etc/exports ファイルを編集して、以下のマウント共用ポイントおよびオプションを追加します。
      /mnt/clusterfs <IP_address>(rw,sync,no_root_squash,no_all_squash)
      <IP_address> は、IBM Db2 Warehouse をデプロイするホストの IP アドレスを表します。
      NFS サーバー・ホストで、以下のコマンドを発行して、ファイル・システムをリモート・ユーザーが使用できるようにします。
      exportfs
    4. NFS サーバー・ホストで、以下のコマンドを発行して NFS サービスを再始動します。 これにより、/etc/exports ファイルに対する変更が適用されます。
      systemctl restart nfs
    5. Kubernetes マスター・ノードで、ストレージ PV 用に db2w-nfs-pv.yaml という名前のファイルを作成します。 <NFS-server-host-IP-address> を NFS サーバー・ホストの IP アドレスに置き換えます。
      vi db2w_nfs_pv.yaml
      apiVersion: v1
      kind: PersistentVolume
      metadata:
        labels:
          pv-name: db2w_nfs_pv
        name: db2w_nfs_pv
      spec:
        accessModes:
        - ReadWriteOnce
        capacity:
          storage: 50Gi
        persistentVolumeReclaimPolicy: Retain
        nfs:
          path: /mnt/clusterfs
          server: <NFS-server-host-IP-address>
    6. Kubernetes マスター・ノードで、PVC 用に db2w-nfs-pvc.yaml という名前のファイルを作成します。
      vi db2w_nfs_pvc.yaml
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        name: db2w_nfs_pvc
      spec:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 50Gi
        storageClassName: ""
        selector:
          matchLabels:
            pv-name: db2w_nfs_pv
    7. 以下のコマンドを発行して、db2w_nfs_pv という名前の PV と db2w_nfs_pvc という名前の PVC を NFS 内に作成し、それらをバインドします。
      kubectl create -f db2w_nfs_pv.yaml
      kubectl create -f db2w_nfs_pvc.yaml
    8. 以下のコマンドを発行して、db2w_nfs_pv および db2w_nfs_pvc が適切にバインドされていることを確認します。
      kubectl describe pvc db2w_nfs_pvc
  14. db2warehouse-smp-helm/values.yaml ファイルを変更します。
    1. existingClaimName を PVC 名 (db2w_nfs_pvc) に設定します。
    2. BLUADMIN.PASSWORD によって指定されたパスワードを、bluadmin ユーザーの新規パスワードと置き換えます。
    3. 必要に応じ、repo フィールドと tag name フィールドを、デプロイするイメージの名前と対応するように調整します。例えば、store/ibmcorp/db2wh_ce:v3.0.1-db2wh_devc-linux という名前のイメージの場合は、以下のようにフィールドを指定します。
      repo: "store/ibmcorp/db2wh_ce"
      tag name: "v3.0.1-db2wh_devc-linux"
  15. 以下のコマンドを発行して、Helm チャートをインストールします。
    helm install --name db2wh-smp-deploy db2warehouse-smp-helm
  16. 以下のコマンドを発行して、デプロイメントが正常に進行しているかどうかを確認します。
    1. ポッドのフルネームを取得するには、以下のようにします。
      kubectl get pod | grep db2warehouse-smp
    2. ポッドの状況を調べ、コンテナーを作成中であることを確認するには、以下のようにします。
      kubectl describe pod full-pod-name
    3. コンテナーが作成された後、次のコマンドを発行して、デプロイメントが正常に完了したことをログが示すまでログをモニターします。
      kubectl logs -f full-pod-name
  17. Web コンソールにログインします。
    1. /etc/hosts ファイルを開いて、プロキシー・ノードの IP アドレスを判別します。
    2. 次のコマンドを発行して、ポート番号を取得します。
      kubectl get service | grep db2warehouse
      出力には、8443:<port> という形式の句が含まれます。 <port> はポート番号を表します。
    3. ブラウザーで、Web コンソールの URL を入力します。 URL の形式は https://IP_address:port_number です。
    4. ユーザー ID bluadmin と、ステップ 14 で設定したパスワードを使用してログインします。