iManager&云套件支持配置kingbase

作者 yangjunlin

前言

   越来越多的涉密单位对于信创环境的要求逐渐升高,服务应用对国产数据库的依赖性也在提高,针对超图iManager for k8s产品中的开源数据库替换为kingbase等国产化数据库的客户需求和场景也就随之而来,因此本文将带着读者一步步实现iManager&云套件配置kingbase数据库,具体流程请看下文

一、【kingbase安装以及imanager安装】

  1. kingbase安装(可参考博客,https://blog.csdn.net/supermapsupport/article/details/128496058)需要注意5点:
    (1) 默认安装的路径是在/home/kingbase/下,可以优先创建目录并附上权限,然后以root用户给改目录附上777权限,后面选择安装路径,可以直接填写该路径
    chmod -R 777 /home/kingbase/
    iManager&云套件支持配置kingbase_第1张图片

(2) 安装时需要切换到kingbase用户进行部署
(3) 部署时选择数据库模式选择pg
iManager&云套件支持配置kingbase_第2张图片

(4) 记得配置环境变量,可能路径不太一致,按照实际方式配置
(5) 如何按照文档方式启动数据库,“报错,致命错误: 锁文件 “kingbase.pid” 已经存在“,可通过命令重启服务

./sys_ctl -D  /home/kingbase/data  restart
  1. 部署imanager以及云套件(此步省略具体可参考帮助文档https://help.supermap.com/iManager_K8S/1111/zh/)
  2. 用第三方工具查看是否能成功连接数据库
    在这里插入图片描述

二、【k8s接入外部数据库资源】

   接入方式有两种,一种是直接ip加端口方式接入,在后面其实就只是改下env连接参数中的ip和端口即可。第二种是,手动创建无头服务及endpoint,引入外部数据库,然后通过k8s集群中的域名解析服务访问,访问的主机名格式为:[svc_name].[namespace_name].svc.cluster.local。我以创建endpoint方式接入为例:

  1. 首先创建外部数据库对应的endpoint和svc
    iManager&云套件支持配置kingbase_第3张图片
    在这里插入图片描述

  2. 创建好以后查看对应的服务,是否状态正常
    iManager&云套件支持配置kingbase_第4张图片
    后面的话,我们就能通过这种无头服务方式来接入外部数据库服务了
    在这里插入图片描述

三、【在imanager中将默认mysql替换为kingbase】(注意 如果是11.0.1以及之前版本是需要首先更改镜像,具体镜像可先联系支持中心)

  1. 首先修改imanager-dashbord-api
    (1)删除commond和argsiManager&云套件支持配置kingbase_第5张图片
    (2) 修改以下环境变量:
  • spring_datasource_url:数据库连接地址
    • postgresql/kingbase:jdbc:postgresql://imanager-kingbase.supermap.svc.cluster.local:54321/imanager?autoReconnect=true&useSSL=false&useUnicode=true&characterEncoding=utf8&stringtype=unspecified
      【stringtype=unspecified必须设置】
  • spring_datasource_username:数据库用户名
  • spring_datasource_password:数据库密码
    iManager&云套件支持配置kingbase_第6张图片
    注意小红框内容,是需要名称imanager数据库的,而模式数据库中并没有,因此需要手动先创建名称为imanager的数据库
    iManager&云套件支持配置kingbase_第7张图片
  1. 修改bslicense-server
    (1)删除commond和args
    在这里插入图片描述
    (2) 修改以下环境变量:
  • BSLICENSE_DB_URL:数据库连接地址
    • postgresql/kingbase:jdbc:postgresql://imanager-kingbase.supermap.svc.cluster.local:54321/bslicense?autoReconnect=true&useSSL=false&useUnicode=true&characterEncoding=utf8
  • BSLICENSE_DB_USERNAME:数据库用户名
  • BSLICENSE_DB_PASSWORD:数据库密码
    可参考如下:
    iManager&云套件支持配置kingbase_第8张图片
    注意小框内容,与imanager-dashbord-api相同还是需要手动创建bslicense库
  1. 修改ispeco-dashbord-api
    (1)删除commond和args
    iManager&云套件支持配置kingbase_第9张图片
    (2) 修改以下环境变量:
  • spring_datasource_url:数据库连接地址
    • postgresql/kingbase:jdbc:postgresql://imanager-kingbase.supermap.svc.cluster.local:54321/ispeco?autoReconnect=true&useSSL=false&useUnicode=true&characterEncoding=utf8&stringtype=unspecified
      【stringtype=unspecified必须设置】
  • spring_datasource_username:数据库用户名
  • spring_datasource_password:数据库密码
    可参考如下:
    iManager&云套件支持配置kingbase_第10张图片

注意小框内容,与imanager-dashbord-api相同还是需要手动创建ispeco库

  1. 修改云套件中iportal
    (1)首先从 mysql 切换为kingbase 之前,用户需要前往 iportal 挂载路径,修改 WEB-INF/iportal-monitor.xml
  • a) 将 dbType 修改为 SQLITE

  • b) 将 driverClass 修改为 org.sqlite.JDBC

  • c) jdbcUrl 为 jdbc:sqlite:/opt/iportalOPTs/WEB-INF/iportaldata/monitor.db

  • d) 将 maxPoolSize 修改为 1

  • e) 将 initialPoolSize 修改为 1

  • f) 将 minPoolSize 修改为 0

  • g) 将 maxIdleTime 修改为 3000

  • h) 将 maxWait 修改为 300000

  • i) 注释掉 username 和 password
    iManager&云套件支持配置kingbase_第11张图片
    (2)iportal 删除args。iportal-proxy 删除 command 和 args
    iportal删除内容:
    iManager&云套件支持配置kingbase_第12张图片
    iportal-proxy 删除内容:
    iManager&云套件支持配置kingbase_第13张图片
    (3)iportal 和 iportal-proxy 修改以下环境变量

  • DB_TYPE: 数据库类型
    Postgresql/kingbase: POSTGRESQL

  • DB_JDBC_URL: 存放门户数据的数据库连接地址

    • postgresql: jdbc:postgresql://imanager-kingbase.supermap.svc.cluster.local:54321/iportal?useUnicode=true&characterEncoding=UTF-8
  • SECURITY_DB_JDBC_URL: 安全信息数据库连接地址

    • postgresql: jdbc:postgresql://imanager-kingbase.supermap.svc.cluster.local:54321/iportal-security?useUnicode=true&characterEncoding=UTF-8
      备注:DB_JDBC_URL和SECURITY_DB_JDBC_URL使用的数据库要不同
      iManager&云套件支持配置kingbase_第14张图片
  • DB_USERNAME: 连接 DB_JDBC_URL 和 SECURITY_DB_JDBC_URL 使用的用户名

  • DB_PASSWORD: 连接 DB_JDBC_URL 和 SECURITY_DB_JDBC_URL 使用的密码
    Iportal 与 iportal-porxy更改方式相同,注意红框内容,需要我们新创建的数据库
    iManager&云套件支持配置kingbase_第15张图片

你可能感兴趣的:(云GIS,数据库,云原生)