コンテナ版Db2の最新動向
IBMのリレーショナル・データベース製品である Db2 for LUW(Linux, Unix, and Windows)では、比較的古いバージョンからコンテナ版のDb2(for Docker)が提供されていました。
Db2 V11.5 における "コンテナ版Db2" としては、以下の種類のものが利用可能です。
-
Db2 on OpenShift (別名 "Db2 Universal Container (Db2U)")
<--- OpenShift Container Platform(以下、OCP) にデプロイするためのコンテナ版Db22-1. Db2 OLTP
2-2. Db2 Warehouse
この記事では、Db2(OLTP) 11.5.5 on OpenShift (上記の2-1.)をOCP 4.5環境に導入する手順を整理します。
Db2 11.5.5 on OpenShift は、導入の観点ではこのような点が前バージョン(11.5.4)から変わっています。
- Operator対応 (Db2本体 / HADR / HelmMigration)
- GUIベースでの導入が可能になった
- 導入にあたりHelmのセットアップが不要となった
- 必要なCPU資源量が少なくなった(5.7 -> 2.5 cores)
- ストレージ構成のサポートの追加(OCS 4.5、Spectrum Scale CSI 2.1など)
- 新しいプラットフォームのサポート追加(z/Linux)
(2021.03追記)
Db2 11.5.5-cn2 では、DB名を変更できるようになりました。(cn1までは、BLUDBという名前決め打ちでした)
Db2 on OpenShiftインストール方法の公式ドキュメント
オンプレミス版のDb2のインストール手順はDb2製品マニュアル(KnowledgeCenter)に記載されますが、Db2 on OpenShift導入手順は主にDb2U OperatorのReadMe(※)に記載されています。
(※)OCP環境にIBM Operator Catalogを導入した後でないと読めないのが不便です
Db2uClusterカスタムリソースのyamlサンプル、ストレージ関連のオプション、HADR
HADRのセットアップなど、Db2マニュアルに記載される情報もありますので、Db2U Operator Readmeとマニュアルを併用してセットアップを進めます。
Db2 11.5 KnowledgeCenter[Db2 Version 11.5 Mod Pack 5 for Red Hat OpenShift]
https://www.ibm.com/support/knowledgecenter/SSEPGG_11.5.0/com.ibm.db2.luw.db2u_openshift.doc/doc/c_db2u_11-5-5.html
ここから記述する導入手順は、上の2つの情報源の内容をマージしたものです。
OpenShiftにDb2を導入するための前提
Db2 on OpenShift 11.5.5 (OLTP) 導入にあたり、以下の要件があります。
(*下記は、Db2 KnowledgeCenter / Db2U Operator Readme から抜粋したものです)
###(1) ハードウェア要件
####Db2U Operator の要件
Software | CPU(cores) | Memory(GB) |
---|---|---|
Db2 Operator | 500m | 512Mi |
####Db2U Operand(Db2本体) の要件
- 1.7 CPU
- 2Gi
####最小構成でのDb2デプロイのためのリソース要件
Software | CPU(cores) | Memory(GB) | Disk(GB) | Nodes |
---|---|---|---|---|
Db2 | 0.5 | 4Gi | 100GB | 1 |
Authentication (ldap) | 1 | 1Gi | 1 | |
Etcd | 0.5 | 512Mi | 1 | |
Tools | 0.5 | 512Mi | 1 | |
Total | 2.5 | 6Gi |
####ストレージの要件
- NFS
- Red Hat OpenShift Container Storage 4.5
- IBM Spectrum Scale CSI 2.1
- IBM Cloud File Storage (gold storage class)
- Portworx 2.5.5
- A HostPath PV that is a mounted clustered filesystem
ストレージについての詳細な要件はマニュアルで確認します。
Db2 11.5 KnowledgeCenter[Certified storage options for Db2]
###(2)その他の要件
- OpenShift version 3.11以上(4.xも含む)
- cluster-admin権限を持つOCPユーザ
- IBM Cloudのユーザアカウント
Db2 11.5 KnowledgeCenter[
Installing Db2 on a Red Hat OpenShift cluster]
導入環境
今回は、以下のような環境に Db2 11.5.5 on OpenShift をデプロイしました。
項目 | バージョン |
---|---|
OS(bastion) | RHEL 7.7 |
OS(worker) | RHEL 7.7 |
OCP(Client) ※ | 4.5.0-202007240519.p0-b66f2d3 |
OCP(Server) ※ | 4.5.7 |
Kubernetes | v1.18.3+2cf11e2 |
NFS | 4.2 |
Db2 OLTP | 11.5.5 |
###構成
今回は、以下のような構成のOCP環境にDb2をデプロイします。
Db2はStatefulSetとしてデプロイされます。
- Bastion Node x1
- Master Node x3
- Worker Node x3
ストレージには、当該環境では最も準備が容易だったNFS-静的プロビジョニング構成を選択しています。
今回はBastionサーバをNFSサーバとして構築し、Bastionサーバのローカルファイルシステムの1つをNFSボリュームとしてexportする単純な構成としています。
ストレージ構成は今回の導入検証のための簡易テスト環境であり、実際の本番環境での利用にあたっては技術的な構成確認の場をメーカー(IBM)側にとるようにお願いします。
作業を行うノード / ユーザ
ここから先で実行するコマンドはすべてBastionノードから実行しています。
また、ユーザは以下の用途で使い分けています。
ユーザ | 用途/補足 |
---|---|
rootユーザ | NFSサーバのセットアップ用 |
OCPユーザ | ocコマンド実行 (cluster-admin権限付与) |
コマンド操作の実行ノード・実行ユーザについてはご使用の環境に応じて決めてください。
また、ocコマンド実行前には、oc login が必要となります。
導入の流れ
Db2 on OpenShift導入は、以下の流れで行います。
Step1. プロジェクトの作成
続いて、Db2 Operaotor/Db2本体をデプロイするため、プロジェクト(ネームスペース)を作成します。
- 本当は、Db2 Operatorをクラスタ内すべてのネームスペースから利用可能なモードで導入できると良いのですが、Db2 Operator V1.0.0 では非サポートのため、複数のプロジェクトにDb2を導入したい場合は各プロジェクトに対してDb2 Operatorも導入していく手順となります。
「db2u-oltp1」プロジェクトを作成します。
oc new-project db2u-oltp1
Now using project "db2u-oltp1" on server "https://api.isvsol.jp-ise.com:6443".
You can add applications to this project with the 'new-app' command. For example, try:
oc new-app ruby~https://github.com/sclorg/ruby-ex.git
to build a new example application in Ruby. Or use kubectl to deploy a simple Kubernetes application:
kubectl create deployment hello-node --image=gcr.io/hello-minikube-zero-install/hello-node
##Step2. Db2 Operator 導入
- Db2 Operatorとは / 導入手順は、別記事に記載します
- 別記事 → OpenShift環境へのDb2 Operator導入手順
- Db2 Operator導入手順の中に、Db2導入において必要となるセキュリティ設定も含まれます
- Db2 Operator V1.0.0 では、Db2u Cluster(Db2本体)、Db2u Hadr、Db2u Helm Migration の3つのカスタム・リソースが提供されます。
- シングル構成Db2の導入・構成を行うには、「Db2u Cluster」のインスタンスを作成します。
##Step3. ストレージ構成
Db2uCluster(Db2本体)導入時は、メタデータ/ユーザデータを配置するためのストレージとして、ストレージクラス、もしくは作成済のPVを指定します。
ここでは、作成済PVを指定してDb2uClusterを導入する手順を想定しています。
Step3-1. NFSサーバの構成
今回は検証環境であるため、セットアップの容易なNFSをストレージとして利用します。
(※本番稼働環境であれば、性能/可用性/バックアップ取得要件等を考慮した上でストレージ構成を検討することが望ましい)
NFSサーバ(=bastion) へログインし、root ユーザ にて以下の手順を実行します。
####① 空のディレクトリを作成
メタデータ、ユーザデータ用に2つのディレクトリを作成します
mkdir -p /work/nfsdir/Db2NFS_Data
mkdir -p /work/nfsdir/Db2NFS_Meta
####② NFSサーバ上で、エクスポートオプションを指定
Db2U 11.5.5 におけるNFS利用のための前提条件は、Db2製品マニュアルに記載されます。
Db2 11.5 KnowledgeCenter[NFS storage requirements for Db2]
-
Db2 のPersistent Volume として NFS を利用する場合、NFSサーバ側で以下のエクスポートオプションを指定
rw,sync,no_root_squash,no_all_squash -
IPアドレスは環境に応じて書き換える(db2_openshiftworkerN_IP_address の箇所)
echo "/work/nfsdir/Db2NFS_Data 10.1.1.1/27(rw,sync,no_wdelay,no_root_squash,insecure)" >> /etc/exports
echo "/work/nfsdir/Db2NFS_Meta 10.1.1.1/27(rw,sync,no_wdelay,no_root_squash,insecure)" >> /etc/exports
/etc/exportsファイルでのNFSの設定を反映する (exportfs -a または exportfs -r)
exportfs -a
補足:
Knowledge Center には、/etc/fstab ファイルを編集するよう指示があるが、設定するよう指示される hard オプションは後で Persistent Volume の属性に設定するため、この手順はスキップする。
抜粋:
各 Db2OpenShiftワーカー・ノードで、マウント・オプションを/etc/fstabに追加します。
NFS ソフト・マウントは NFS タイムアウトの超過後に停止し、呼び出し元に正しくエラーを返さない可能性があります。
この問題によって、クラスター・アプリケーションでデータ破損が生じることがあります。これが、hard オプションを使用する理由です。
例えば、以下のシェル・スニペットを使用して更新を行うことができます。
cat <<'EOF' > /etc/fstab
hostname_OR_IP_address_of_NAS/NFS_server:NAS/NFS_share_exported /nfsmount/ nfs
rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,intr,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,nolock 0 0
EOF
Step3-2. Persistent Volume(PV) 作成
####①メタデータ用PV
yamlファイルを作成します。
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-nfs-db2meta
labels:
type: nfs-meta
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: slow
mountOptions:
- v4.2
- context="system_u:object_r:container_file_t:s0"
- hard
nfs:
path: /work/nfsdir/Db2NFS_Meta
server: 10.1.1.1
PVを作成します。
oc create -f /work/db2-11.5.5/pv-nfs-meta.yaml
想定通り作成されていること、Available状態になっていることを確認します。
$ oc get pv | grep -i db2
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pv-nfs-db2meta 10Gi RWX Retain Available slow 19s
####②ユーザデータ用PV
yamlファイルを作成します。
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-nfs-db2data
labels:
type: nfs-data
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: slow
mountOptions:
- v4.2
- context="system_u:object_r:container_file_t:s0"
- hard
nfs:
path: /work/nfsdir/Db2NFS_Data
server: 10.1.1.1
PVを作成します。
$ oc create -f /work/db2-11.5.5/pv-nfs-data.yaml
想定通り作成されていること、Available状態になっていることを確認します。
$ oc get pv | grep -i db2
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pv-nfs-db2data 10Gi RWO Retain Available slow 13s
##Step4. SecurityContextConstraints 定義作成
Db2 Operator Readme に記載されるyaml定義をコピー&ペーストし、SecurityContextConstraints定義を作成します。
yamlファイル作成:
kind: SecurityContextConstraints
apiVersion: v1
apiGroup: security.openshift.io
metadata:
name: db2u-scc
allowHostDirVolumePlugin: false
allowHostIPC: false
allowHostNetwork: false
allowHostPID: false
allowHostPorts: false
# privileged container is only needed for the init container that sets the Db2 kernel parameters
allowPrivilegedContainer: true
allowedCapabilities:
- "SYS_RESOURCE"
- "IPC_OWNER"
- "SYS_NICE"
- "CHOWN"
- "DAC_OVERRIDE"
- "FSETID"
- "FOWNER"
- "SETGID"
- "SETUID"
- "SETFCAP"
- "SETPCAP"
- "SYS_CHROOT"
- "KILL"
- "AUDIT_WRITE"
priority: 10
runAsUser:
type: RunAsAny
seLinuxContext:
type: MustRunAs
fsGroup:
type: RunAsAny
supplementalGroups:
type: RunAsAny
version: v1
SecurityContextConstraints定義作成:
oc create -f ./db2u-scc.yaml
Step5. Db2uCluster デプロイ(Db2 on OpenShiftの導入)
####① サンプルYAMLの確認
Db2 Operator Readme にDb2uClusterのサンプルyamlが記載されます。
下記に、サンプルのyamlファイルを転載します。
*実際にデプロイを行う際は、必要に応じて編集して利用する位置づけのファイルです。
apiVersion: db2u.databases.ibm.com/v1
kind: Db2uCluster
metadata:
name: db2u-cicd-test
spec:
license:
accept: true
account:
privileged: true
imagePullSecrets:
- ibm-registry
version: "11.5.5.0"
size: 1
podConfig:
db2u:
resource:
db2u:
requests:
cpu: 2
memory: 4Gi
limits:
cpu: 2
memory: 4Gi
environment:
dbType: db2oltp
instance:
password: cicdtest
storage:
- name: meta
type: "create"
spec:
storageClassName: "managed-nfs-storage"
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
- name: data
type: "create"
spec:
storageClassName: "managed-nfs-storage"
accessModes:
- ReadWriteMany
resources:
requests:
storage: 100Gi
####② Db2 on OpenShift デプロイに用いるためのyaml編集
今回は、サンプルとして提供されるyaml定義のうち、下記項目を編集します。
- 名称 (metadata > name)
- ストレージ構成 (spec > storage)
ストレージ構成については、デフォルトのサンプルファイルでは以下のような構成となっています。
ユーザ要件、環境に沿って修正します。
- Db2インスタンスユーザのパスワードを変更
- 今回はPVを指定するため、Step3.で作成しておいたPVに指定したラベル値をmatchLabelsに指定
- ユーザデータについて100GiB確保される定義を、テスト環境では10GiBへ変更
- アクセスモードをマニュアルの推奨(※)に合わせて変更
(※)Db2 11.5 KnowledgeCenter[Configuring database storage for Db2] より引用
When provisioning the database, for user data (the main database data), select ReadWriteOnce (RWO) access mode for your storage.
apiVersion: db2u.databases.ibm.com/v1
kind: Db2uCluster
metadata:
name: db2u-nfs1
spec:
license:
accept: true
account:
privileged: true
imagePullSecrets:
- ibm-registry
version: "11.5.5.0"
size: 1
podConfig:
db2u:
resource:
db2u:
requests:
cpu: 2
memory: 4Gi
limits:
cpu: 2
memory: 4Gi
environment:
dbType: db2oltp
instance:
password: db2inst1
storage:
- name: meta
type: "create"
spec:
selector:
matchLabels:
type: "nfs-meta" ← メタデータ用PVに定義済のラベルを指定
accessModes:
- ReadWriteMany
storageClassName: slow
resources:
requests:
storage: 10Gi
- name: data
type: "create"
spec:
selector:
matchLabels:
type: "nfs-data" ← ユーザデータ用PVに定義済のラベルを指定
accessModes:
- ReadWriteOnce ← ユーザデータ用アクセスモードとしてRWOを指定
storageClassName: slow
resources:
requests:
storage: 10Gi ← 容量を変更(100 -> 10Gi)
####③ Db2 on OpenShift デプロイ
先の手順②で作成したyamlファイルを指定し、Db2uClusterをデプロイします。
oc create -f ./db2u-nfs1.yaml
即時に応答が戻り、標準出力は以下のように出力されます。
Db2uClusterデプロイは裏で進行していて、完了までには数分~十数分程度かかります。
oc create -f ./db2u-nfs1.yaml
db2ucluster.db2u.databases.ibm.com/db2u-nfs1 created
####③ Db2 on OpenShift デプロイ完了確認
Db2uCluster完了まではある程度の時間がかかります。
途中経過は、oc get all コマンド等である程度確認することができます。
「c-[name]-restore-morph*」「c-[name]-instdb*」のPodがComplete状態となり、Db2エンジン本体のPodである「c-[name]-db2u-0」がRunning状態になれば、Db2データベースは利用可能な状態となっています。
Db2データベース利用可能となった状態の oc get pods コマンド出力:
oc get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
c-db2u-nfs1-db2u-0 1/1 Running 0 2d7h 10.128.3.19 worker2.jp-ise.com <none> <none>
c-db2u-nfs1-etcd-0 1/1 Running 0 7d 10.131.0.60 worker3.jp-ise.com <none> <none>
c-db2u-nfs1-instdb-gpz4g 0/1 Completed 0 7d 10.131.0.57 worker3.jp-ise.com <none> <none>
c-db2u-nfs1-ldap-77df7c8c7f-hgf99 1/1 Running 0 5d3h 10.131.0.148 worker3.jp-ise.com <none> <none>
c-db2u-nfs1-restore-morph-rrp9g 0/1 Completed 0 7d 10.129.3.18 worker1.jp-ise.com <none> <none>
c-db2u-nfs1-tools-868b94b4d9-gd474 1/1 Running 0 7d 10.129.3.12 worker1.jp-ise.com <none> <none>
db2u-operator-manager-9b8b9d877-wh26d 1/1 Running 25 6d4h 10.131.0.72 worker3.jp-ise.com <none> <none>
Podが起動するまでの間のデプロイの状況は、oc get all コマンドなどで追跡することができます。
下記は、デプロイ完了後の oc get all コマンド出力です。
oc get all -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/c-db2u-nfs1-db2u-0 1/1 Running 0 3m26s 10.131.0.61 worker3.jp-ise.com <none> <none>
pod/c-db2u-nfs1-etcd-0 1/1 Running 0 3m46s 10.131.0.60 worker3.jp-ise.com <none> <none>
pod/c-db2u-nfs1-instdb-gpz4g 0/1 Completed 0 5m29s 10.131.0.57 worker3.jp-ise.com <none> <none>
pod/c-db2u-nfs1-ldap-77df7c8c7f-56mj7 1/1 Running 0 6m34s 10.129.3.13 worker1.jp-ise.com <none> <none>
pod/c-db2u-nfs1-restore-morph-rrp9g 1/1 Running 0 36s 10.129.3.18 worker1.jp-ise.com <none> <none>
pod/c-db2u-nfs1-tools-868b94b4d9-gd474 1/1 Running 0 6m44s 10.129.3.12 worker1.jp-ise.com <none> <none>
pod/db2u-operator-manager-9b8b9d877-b8r5m 1/1 Running 2 23h 10.129.2.217 worker1.jp-ise.com <none> <none>
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
service/c-db2u-nfs1-db2u ClusterIP 172.30.124.96 <none> 50000/TCP,50001/TCP,25000/TCP,25001/TCP,25002/TCP,25003/TCP,25004/TCP,25005/TCP 3m36s app=db2u-nfs1,component=db2oltp,formation_id=db2u-nfs1,role=db,type=engine
service/c-db2u-nfs1-db2u-engn-svc NodePort 172.30.99.124 <none> 50000:32349/TCP,50001:30451/TCP 3m36s app=db2u-nfs1,component=db2oltp,formation_id=db2u-nfs1,role=db,type=engine
service/c-db2u-nfs1-db2u-internal ClusterIP None <none> 50000/TCP,9443/TCP 3m46s app=db2u-nfs1,component=db2oltp,formation_id=db2u-nfs1,role=db,type=engine
service/c-db2u-nfs1-etcd ClusterIP None <none> 2379/TCP,2380/TCP 3m56s app=db2u-nfs1,component=etcd,formation_id=db2u-nfs1
service/c-db2u-nfs1-ldap ClusterIP 172.30.122.120 <none> 50389/TCP 6m44s app=db2u-nfs1,formation_id=db2u-nfs1,role=ldap
service/c-db2u-nfs1-tools ClusterIP 172.30.222.67 <none> 53/TCP,53/UDP 6m55s app=db2u-nfs1,formation_id=db2u-nfs1,role=tools
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
deployment.apps/c-db2u-nfs1-ldap 1/1 1 1 6m35s ldap cp.icr.io/cp/db2u.auxiliary.auth@sha256:8b7cbb4f34caa6a4c5b98f3ddf9d15c4308c9ecdd26bbd61560498bc7e1e2dd9 app=db2u-nfs1,formation_id=db2u-nfs1,role=ldap
deployment.apps/c-db2u-nfs1-tools 1/1 1 1 6m45s tools cp.icr.io/cp/db2u.tools@sha256:b571c9309da714ae50d6b7c0964d7ec02f2d28279e2feff0dadc84295bed249d app=db2u-nfs1,formation_id=db2u-nfs1,role=tools
deployment.apps/db2u-operator-manager 1/1 1 1 23h manager registry.hub.docker.com/ibmcom/db2u-operator@sha256:686546a3fd338d08ddb084497d1e629e0f6a7fde83d7939f846385beb5ea9170 control-plane=db2u-operator-manager
NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR
replicaset.apps/c-db2u-nfs1-ldap-77df7c8c7f 1 1 1 6m35s ldap cp.icr.io/cp/db2u.auxiliary.auth@sha256:8b7cbb4f34caa6a4c5b98f3ddf9d15c4308c9ecdd26bbd61560498bc7e1e2dd9 app=db2u-nfs1,formation_id=db2u-nfs1,pod-template-hash=77df7c8c7f,role=ldap
replicaset.apps/c-db2u-nfs1-tools-868b94b4d9 1 1 1 6m45s tools cp.icr.io/cp/db2u.tools@sha256:b571c9309da714ae50d6b7c0964d7ec02f2d28279e2feff0dadc84295bed249d app=db2u-nfs1,formation_id=db2u-nfs1,pod-template-hash=868b94b4d9,role=tools
replicaset.apps/db2u-operator-manager-9b8b9d877 1 1 1 23h manager registry.hub.docker.com/ibmcom/db2u-operator@sha256:686546a3fd338d08ddb084497d1e629e0f6a7fde83d7939f846385beb5ea9170 control-plane=db2u-operator-manager,pod-template-hash=9b8b9d877
NAME READY AGE CONTAINERS IMAGES
statefulset.apps/c-db2u-nfs1-db2u 1/1 3m27s db2u cp.icr.io/cp/db2u@sha256:170c7727dfa1058f97b2deb1d56eeb964d11f4b09b89a03915387ebfd6f511ad
statefulset.apps/c-db2u-nfs1-etcd 1/1 3m47s etcd cp.icr.io/cp/etcd@sha256:170b415ddaad079189b480ec8d606b5ac7741194e2dd9f670c1230a100482324
NAME COMPLETIONS DURATION AGE CONTAINERS IMAGES SELECTOR
job.batch/c-db2u-nfs1-instdb 1/1 85s 5m38s instdb cp.icr.io/cp/db2u.instdb@sha256:91561f4af4872288f5b4b5103fc0428cea191781495900132ed32f2e727373be controller-uid=15d88848-969a-4c2b-a0b1-955d403e7f6c
job.batch/c-db2u-nfs1-restore-morph 0/1 38s 38s restore-morph cp.icr.io/cp/db2u.tools@sha256:b571c9309da714ae50d6b7c0964d7ec02f2d28279e2feff0dadc84295bed249d controller-uid=51004303-5da9-402a-867f-4f5f2ebf0360
##Step6. 動作確認
Db2 の Pod「c-db2u-nfs1-db2u-0」 にログインし、データベースに接続できることを確認する。
Podには以下のコマンドでログインする。
$ oc rsh c-db2u-nfs1-db2u-0 /bin/bash
【動作確認例】
ログイン時のユーザは Db2コマンド実行権限を持たないdb2uadm であるため、Podへのログインが成功したらdb2inst1 ユーザに su します。
db2 list db directory コマンドにより、この環境に作成されるデータベース名がBLUDBであると確認できます。
以下は、DBに接続しテスト用テーブルを作成し、データを挿入することで動作確認を行う例。
$ oc rsh c-db2u-nfs1-db2u-0 /bin/bash
[db2uadm@c-db2u-nfs1-db2u-0 /]$ whoami
db2uadm
[db2uadm@c-db2u-nfs1-db2u-0 /]$ su - db2inst1
Last login: Tue Dec 29 07:27:14 UTC 2020 on pts/2
[db2inst1@c-db2u-nfs1-db2u-0 - Db2U db2inst1]$ which db2
~/sqllib/bin/db2
[db2inst1@c-db2u-nfs1-db2u-0 - Db2U db2inst1]$ db2 list db directory
System Database Directory
Number of entries in the directory = 1
Database 1 entry:
Database alias = BLUDB
Database name = BLUDB
Local database directory = /mnt/blumeta0/db2/databases
Database release level = 15.00
Comment =
Directory entry type = Indirect
Catalog database partition number = 0
Alternate server hostname =
Alternate server port number =
[db2inst1@c-db2u-nfs1-db2u-0 - Db2U db2inst1]$ db2 connect to bludb
Database Connection Information
Database server = DB2/LINUXX8664 11.5.5.0
SQL authorization ID = DB2INST1
Local database alias = BLUDB
[db2inst1@c-db2u-nfs1-db2u-0 - Db2U db2inst1]$
[db2inst1@c-db2u-nfs1-db2u-0 - Db2U db2inst1]$ db2 list tables
Table/View Schema Type Creation time
------------------------------- --------------- ----- --------------------------
0 record(s) selected.
[db2inst1@c-db2u-nfs1-db2u-0 - Db2U db2inst1]$ db2 "create table t1 (c1 integer,c2 char(8))"
DB20000I The SQL command completed successfully.
[db2inst1@c-db2u-nfs1-db2u-0 - Db2U db2inst1]$ db2 "insert into t1 values(1,'a'),(2,'b')"
DB20000I The SQL command completed successfully.
[db2inst1@c-db2u-nfs1-db2u-0 - Db2U db2inst1]$ db2 "select * from t1"
C1 C2
----------- --------
1 a
2 b
2 record(s) selected.
[db2inst1@c-db2u-nfs1-db2u-0 - Db2U db2inst1]$ db2 terminate
DB20000I The TERMINATE command completed successfully.
[db2inst1@c-db2u-nfs1-db2u-0 - Db2U db2inst1]$ exit
db2 terminate
DB20000I The TERMINATE command completed successfully.
---> 導入したDb2は問題なく稼働していることが確認できました。
##Step7. ライセンスの登録状況確認
Db2 V11.5では、ライセンスを適用しなくても Community Editionという無償版ライセンスが適用された状態となっている。旧バージョンのDb2試用版のように90日経過したらDb2が起動しなくなるということはありません。
この点はDb2 on OpenShiftも共通です。
導入したDb2のライセンス確認/更新を行うには、下記マニュアルに記載コマンドを実行します。
Db2 11.5 KnowledgeCenter[Upgrading your Db2 Community Edition license certificate key]
接続情報
Liberty など、OCPクラスタ内からのDB接続時に必要となる接続情報として、クラスターIPアドレスとポート番号を確認する。
####① クラスターIPアドレス
プロジェクト名、リリース名は環境に応じて書き換えて実行する。
oc get svc -n <PROJECT> <RELEASE-NAME>-db2u-engn-svc -o jsonpath='{.spec.ports[?(@.name=="legacy-server")].nodePort}'
####② ポート番号
プロジェクト名、リリース名は環境に応じて書き換えて実行する。
oc get svc -n <PROJECT> <RELEASE-NAME>-db2u-engn-svc -o jsonpath='{.spec.clusterIP}'
関連記事
◆OpenShift環境へのDb2 Operator導入手順
https://qiita.com/mi-kana/items/c3fb640d671caf624eb8
◆Db2 11.5.5 on OpenShift:GUIベースのデプロイ手順
https://qiita.com/mi-kana/items/f429c7e4e86f6077df84
◆Db2 HADR on OpenShift かんたんデプロイ
https://qiita.com/mi-kana/items/7fb2fecc02067bc8386b
以上です。