容器化部署

  • Last update:  2022-07-21
  • 1. 概述

    1.1 版本说明

    工具版本
    功能变动
    FineKey 1.0
    容器化部署工具上线,只需一条命令即可实现部署工作

    1.2 应用场景

    服务器部署一直都是比较繁重的运维操作,为了降低部署带来的较高成本,官方上线了容器化部署工具 FineKey 。

    工具内置了最新版本的 docker 容器。包含 FR/BI 业务工程的镜像、各类组件镜像、Tomcat 镜像的镜像仓库。

    使用该工具可以实现自动化部署,一条命令即可完成所有的部署工作,省心省力又高效。

    1.3 环境要求

    Linux版本要求硬件配置要求

    CentOS 7.3 及以上

    Ubuntu 18.04.4 及以上

    物理内存:最低 16G

    磁盘容量:最低 500G

    CPU架构:目前只支持 X64、AMD64

    2. 部署流程

    2.1 获取工具

    如果您想试用容器化部署工具,需要填写表单申请哦:容器化服务申请表

    2.2 上传工具

    获得工具包后,需要将它上传到 Linux,上传文件的方法请自行查阅相关资料。

    本文示例是将工具包上传到了 CentOS 7.6.1810 的 /home/test 路径下,如下图所示:

    1653461300707153.png

    2.3 解压工具

    先使用 cd 命令进入工具包所在文件夹下,再键入如下命令进行解压:

    tar zxvf finekey-fr-release11.0.tar.gz

    1653461465884164.png

    2.4 配置yaml文件(非必要步骤)

    yaml 文件指的是工具解压目录下 conf 文件夹里的 finekey.yaml,该文件是控制后面整个自动部署流程的。

    无任何自备组件的单机部署可不做任何配置,可以直接在当前宿主机本地部署,各个组件使用部署工具自带组件。

    但是如果有个性化或特殊的部署需求,可以打开 yaml 文件自行配置,yaml 文件里面所有配置项的说明可以移步本文第 3 节查看。

    1653462061762237.png

    2.5 启动部署

    1)使用 cd 命令进入工具解压目录下 bin 文件夹,如下图所示:

    1653462668323141.png

    2)键入如下命令执行自动化部署:

    ./finekey

    1653462807496684.png

    3)整个部署过程需要花费一段时间,请耐心等待,如果部署过程中出现报错,请移步本文第 5 节,查看有无对应的解决方案

    1653463033924368.png

    2.6 完成部署

    当出现 deployment success!bye~ 提示时,表示已经成功部署,如下图所示:

    1653463189688107.png

    2.7 访问工程

    部署完成后,服务会自动启动,此时可以直接访问决策平台运维平台」:

    • 访问决策平台,在浏览器地址栏输入:http://{ip}/webroot/decision(请把{ip}换成自己的主机IP)

    • 访问运维平台,在浏览器地址栏输入:http://{ip}/ops/decision(请把{ip}换成自己的主机IP)

           运维平台相关功能介绍,请参见:运维平台

    例如本文示例,浏览器地址栏键入:http://192.168.110.254/webroot/decision,即可访问决策平台了,如下图所示:

    1653463603417908.png

    3. yaml文件说明

    3.1 基础配置

    cluster: true      #是否集群
    nodes:
      - ip: localhost   #机器ip, 本地则直接localhost
        port: 22        #机器ssh端口, localhost可不填
        username: root  #节点ssh用户, localhost可不填
        password: 1234  #节点ssh密码,非root时必填,除非普通用户但sudo里配置了nopass, 其他情况比如设置免密登录了,也得填密码
        keyPath:        #节点ssh密钥文件, root用户可以使用,普通用户但是sudo里配置了nopass也可以使用

    3.2 需要安装的组件

    dataRootPath:~/data #各个组件默认创建的挂载路径
    components: #需要安装的组件
      fr:
        portMapping: { 8080: 8080 }       #端口映射
        #    {8080: 8080, 7800: 7800, 7830: 7830, 7840: 7840, 7850: 7850, 7870: 7870}  # 集群下需要映射7800等端口
        env: { JAVA_OPTS: -Xms2048 -Xmx5120 }   #环境变量,仅提供XMX一个参数的手动修改,其余参数均自动配置好;仅支持配置一个值,若配置多个值时,按照第一个值进行配置,过配置值格式错误时,则按照推荐配置值配置,推荐配置逻辑需根据系统检查的推荐逻辑进行修改

        config: { }   #应用的其他配置(暂不提供其他配置,只留接口为后面增加拓展使用)
     

      repo:

        port: 5000

      redis:
        password:
        portMapping: { 6379: 6379 }
        env: { }
        config: { }
     
      mysql:
        password:
        portMapping: { 3306: 3306 }
        env: { }
        config: { }
    显示代码

    3.3 已有组件的配置

    existingComponents: #如果已有组件,请配置下方,无现有组件,下方空置即可
      finedb:
        databaseType: mysql/oracle
        ip: node1
        port: 3306
        username:
        password:
        database: finedb1
        schema: aaaa
      ftp:
        ip: node2
        port: 21
        username:
        password:
        path: /data/fr
        charset: utf8
      redis:
        password: 1234
        nodes:
          - ip: node3
            port: 6379
          - ip: node4
            port: 6379

      sftp: #同时存在sftp和ftp时,优先使用ftp
           -ip: 192.168.5.47 #sftp的地址信息默认使用nodes的第一个
            port: 1521
            user: system
            password: qwe123
            path: ~/data/sftp #默认使用dataRootPath/fanruan_xxxxx/sftp
    显示代码

    4. 容器化运维指令

    此处列出一些常用的容器化运维指令:

    • 重启容器指令:docker restart 容器名,例如:docker restart fanruan_fr

    • 查看所有容器运行情况:docker ps -a

    • 启动指定容器:docker start 容器名,例如:docker start fanruan_fr

    • 停止指定容器:docker stop 容器名,例如:docker stop fanruan_fr

    5. 常见报错

    5.1 yaml格式报错

    报错样式

    parse config file xxxx error: xxx

    报错示例

    ERROR: 2022/04/20 13:56:28 parse config file /Users/elijah/work/workspaces/goland/finekey/conf/finekey.yaml error: yaml: line 14: mapping values are not allowed in this context

    报错原因

    yaml 文件里格式有错误

    解决方案

    根据报错提示中的 line 号修改配置文件格式

    5.2 SSH连接失败

    报错样式

    node:xxx ssh connect error:xxx

    报错示例

    ERROR: 2022/04/20 13:58:14 node:192.168.101.144 ssh connect error:ssh: handshake failed: ssh: unable to authenticate, attempted methods

    报错原因

    SSH 连接失败,通常报错明细中出现 unable to authenticate 则代表密码有问题;出现 Connection refused 则代表网络不通等可能

    解决方案

    检测 yaml 中的 node 信息是否正确

    5.3 不能用localhost

    报错样式

    can't use localhost,127.0.0.1 etc as node.ip in cluster mode. must ensure ensure IP connectivity of all nodes

    报错示例

    ERROR: 2022/04/20 13:58:14 can't use localhost,127.0.0.1 etc as node.ip in cluster mode.. must ensure ensure IP connectivity of all nodes

    报错原因

    集群下不能使用 localhost 等回环地址作为 IP

    解决方案

    修改 IP 为其他节点都能访问的真实 IP

    5.4 磁盘容量不足

    报错样式

    node xxx disk availlable capacity: xxx, less then xxx

    报错示例

    ERROR: 2022/04/20 14:12:21 node 192.168.101.144 disk availlable capacity:56560048, less then 100G

    报错原因

    磁盘容量不足

    5.5 内存容量不足

    报错样式

    node xxx memory avillable capacity: xxx, less then xxx

    报错示例

    ERROR: 2022/04/20 14:12:55 node 192.168.101.144 memory avillable capacity: 7302952, less then 16G

    报错原因

    内存容量不足

    Attachment List


    Theme: 部署集成&性能-Leo
    前の記事
    次の記事
    • いいね
    • 良くない
    • 閲覧しただけ

    フィードバック

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    反馈已提交

    网络繁忙