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