使用 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 先决条件中描述的先决条件。此外,它必须包含以下环境:
- Docker
17 或更高版本,其存储驱动程序设置为
devicemapper - Kubernetes,而且有权访问
kubectl和helm命令
过程
- 确保您在主机操作系统上具有 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 Chart 所需的 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 容器:
-
发出以下命令,以创建一个 Shell 容器,并将 Helm Chart YAML 文件从容器抽取到主节点主机:
docker cp test:/opt/ibm/scripts/kubernetes/smp/db2warehouse-smp-helm . docker stop test; docker rm test; -
发出以下命令,以生成基本 64 位编码版本的 Docker 登录凭证:
cat ~/.docker/config.json | base64 -w0 - 将生成的编码 Docker 登录凭证复制到剪贴板。
-
打开 secret.yaml 文件:
vi db2warehouse-smp-helm/templates/secret.yaml -
将生成的编码 Docker 登录凭证粘贴到
.dockerconfigjson字符串上,然后关闭 secret.yaml 文件。 - 以管理员身份登录 Kubernetes 主节点,以便发出 kubectl 和 helm 命令。
-
建立存储持久卷 (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 -
发出以下命令,以在 NFS 中创建名为 db2w_nfs_pv 的 PV 和名为 db2w_nfs_pvc 的 PVC,并进行绑定:
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 Chart:
helm install --name db2wh-smp-deploy db2warehouse-smp-helm -
发出以下命令,以检查部署是否顺利进行:
- 要检索完整的 Pod 名称:
kubectl get pod | grep db2warehouse-smp - 要检查 Pod 状态并确认它正在创建容器:
kubectl describe pod full-pod-name - 在创建容器之后,发出以下命令来监视其日志,直到日志指出部署成功完成为止:
kubectl logs -f full-pod-name
- 要检索完整的 Pod 名称:
-
登录 Web 控制台:
- 打开 /etc/hosts 文件,以确定代理节点的 IP 地址。
- 发出以下命令以检索端口号:
输出包含格式为kubectl get service | grep db2warehouse8443:<port>的短语,其中<port>表示端口号。 - 在浏览器中,输入 Web 控制台的 URL。URL 格式为 https://IP_address:port_number。
- 使用用户标识 bluadmin 以及步骤 14 中设置的密码进行登录。