使用 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,而且有权访问 kubectlhelm 命令

过程

  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 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
  7. 发出以下命令,以创建一个 Shell 容器,并将 Helm Chart YAML 文件从容器抽取到主节点主机:
    docker cp test:/opt/ibm/scripts/kubernetes/smp/db2warehouse-smp-helm .
    docker stop test; docker rm test;
  8. 发出以下命令,以生成基本 64 位编码版本的 Docker 登录凭证:
    cat ~/.docker/config.json | base64 -w0
  9. 将生成的编码 Docker 登录凭证复制到剪贴板。
  10. 打开 secret.yaml 文件:
    vi db2warehouse-smp-helm/templates/secret.yaml
  11. 将生成的编码 Docker 登录凭证粘贴到 .dockerconfigjson 字符串上,然后关闭 secret.yaml 文件。
  12. 以管理员身份登录 Kubernetes 主节点,以便发出 kubectlhelm 命令。
  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. 发出以下命令,以在 NFS 中创建名为 db2w_nfs_pv 的 PV 和名为 db2w_nfs_pvc 的 PVC,并进行绑定:
      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. 如有必要,请调整 repotag 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 Chart:
    helm install --name db2wh-smp-deploy db2warehouse-smp-helm
  16. 发出以下命令,以检查部署是否顺利进行:
    1. 要检索完整的 Pod 名称:
      kubectl get pod | grep db2warehouse-smp
    2. 要检查 Pod 状态并确认它正在创建容器:
      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. 使用用户标识 bluadmin 以及步骤 14 中设置的密码进行登录。