新手建议按照详细步骤,关键模块逐步操作。

一是在部署失败时,容易定位原因;

二是可以熟悉架构。


安装 PaaS 平台 ./bk_install paas

详细步骤

PaaS 平台是蓝鲸产品的门户入口,所以安装蓝鲸先安装 PaaS 平台。

PaaS 平台依赖的组件和服务如下:

转存失败重新上传取消

安装 PaaS 平台前,我们需要将中控机解压的 src/、install/ 目录根据 install.config 配置的 IP 和模块关系来分发文件。

./bkcec sync all

转存失败重新上传取消

安装 Consul

蓝鲸整个平台的内部通信基础是 Consul,所以最先安装的开源组件是 Consul。

./bkcec install consul

./bkcec start consul

转存失败重新上传取消

过程详解:

Consul 是一个分布式的服务发现和配置管理的开源组件。它只有一个二进制文件,所以安装的主要工作在于生成需要的配置文件。

安装 Consul 的主要步骤在 install_consul 函数中,它主要做了以下几个事情:

  • 生成 Consul 的主配置 consul.conf 和 Consul 用的服务定义文件consul.d/service.json 是由 parse_config 这个 Python 脚本读取 install.config 在每台机器上自动生成。
  • 生成 Consul 的配置后,还需要生成启动的 Supervisor 配置。
  • 修改系统的 /etc/resolv.conf 加上 nameserver 127.0.0.1 并保证它是第一条记录

启动 Consul ,正常启动后,可以用 consul members 确认是否三台主机,其余机器为 client (如果机器数量大于 3)。

安装 License 服务

证书服务 License 也是所有蓝鲸产品的全局依赖,第二个安装。

./bkcec install license

./bkcec start license

详解:

  1. 拷贝 License 代码和 cert 目录。
  2. 渲染模块配置文件。
  3. 启动 License。

安装 MySQL

开始安装 MySQL 数据库,并初始化设置。

./bkcec install mysql

./bkcec start mysql

./bkcec initdata mysql

详解:

  1. 安装包里自带了 MySQL 的二进制,所以直接拷贝到安装目录。新建 MySQL 用户。
  2. 渲染 my.cnf 模板,然后建立 /etc/my.cnf 的软链。
  3. 执行 mysql_install_db 命令,初始化。
  4. 启动 MySQL。
  5. 对所有 install.config 里的 IP 在 MySQL 上授权。

安装 Redis

./bkcec install redis

./bkcec start redis

详解:

  1. 将 Redis 命令拷贝到 /usr/bin。
  2. 渲染配置模板。
  3. 修改系统内核参数。
    • net.core.somaxconn = 512
    • vm.overcommit_memory = 1
  4. 启动 Redis。

安装 Nginx

Nginx 通过 yum 命令从 EPEL 源里安装。

./bkcec install nginx

./bkcec start nginx

详解:

  1. yum 安装 Nginx。
  2. 渲染 Nginx 模板,并将 /etc/nginx/nginx.conf 软链到 $INSTALL_PATH/etc/nginx.conf。
  3. 创建 $INSTALL_PATH/miniweb/download 目录,并将 /data/src/miniweb 目录和 /data/install/functions 文件同步过去。供 Agent 安装时可以 HTTP 远程下载用。
  4. 启动 Nginx。

安装 PaaS

最后安装 PaaS 模块。

./bkcec install paas

./bkcec initdata paas

./bkcec start paas

详解:

  1. 安装 PaaS 用的函数叫 install_open_paas 。注意 PaaS 在安装部署脚本里均会被转换为 open_paas 来标识。这是一个特例。

    • 修改 /etc/hosts 配置 FQDN。
    • 拷贝代码文件到 $INSTALL_PATH/open_paas。
    • 安装 open_paas 专用的 Python。
    • 创建四个子工程(appengine,login,esb,paas)的 Python 虚拟环境。
    • 安装每个子工程依赖的 pip 包。
    • 渲染模板文件。
  2. 初始化 PaaS
    • 导入 SQL 初始化数据库。
    • PaaS Login ESB 分别做 Python migrate 初始化。
    • ESB 同步 API 文档事项。
    • 添加 APP 的鉴权白名单,没有 session 时也可以调用 ESB。
  3. 启动 PaaS。

安装 CMDB ./bk_install cmdb

详细步骤

CMDB 是蓝鲸的配置平台,数据库采用 MongoDB ,服务发现和配置管理使用 ZooKeeper ,快照数据使用 Redis 存储,快照采集依赖 GSE。

CMDB 的架构可以参考 GitHub 上的 蓝鲸智云配置平台的架构设计

CMDB 依赖的组件和服务如下:

转存失败重新上传取消

Github 上也有 CMDB 的安装说明,蓝鲸社区版集成时稍微做了些规范改造和安装自动化,需要了解为什么这样安装 MongoDB 的,可以阅读 CMDB 部署文档。

安装 MongoDB

安装 CMDB 的依赖中, MongoDB 是最重要的存储依赖,且目前只有 CMDB 独享,故先介绍 MongoDB 的安装:

./bkcec install mongodb
./bkcec initdata mongodb
./bkcec start mongodb

详解:

  1. MongoDB 二进制在蓝鲸的 service/ 目录下已经自包含,所以安装时直接用 rsync 将 src/service/mongodb 目录同步到 bkce/service/ 下即可。
  2. MongoDB 的配置文件模板只有一个 mongodb.yaml ,里面具体配置的含义,请参考 MongoDB 官方的配置说明文档
  3. 初始化 MongoDB :
    • 首先以不开启鉴权的方式启动 MongoDB ,并创建管理员 sysadmin 的角色,和 · 里定义的 $MONGODB_USER 用户,并配置为 sysadmin 角色。
    • 创建 bk_cmdb 用户,创建 CMDB 数据库,并授予 bk_cmdb 用户读写它的权限。
    • 关闭 MongoDB 进程。
  4. 调用 $INSTALL_PATH/service/mongodb/bin/mongodb.sh start 启动 MongoDB。

安装 ZooKeeper

ZooKeeper 在这里的用途是作为 CMDB 的服务发现组件:

./bkcec install zk
./bkcec start zk

详解:

  1. 拷贝 Java 和 ZooKeeper 代码目录到 $INSTALL_PATH/service/ 下。
  2. 渲染配置文件模板,主要是 zoo.cfg ,并创建软连接到 $INSTALL_PATH/etc/zoo.cfg
  3. 启动 ZooKeeper。

安装配置平台

需要特别注意的是 CMDB 先启动,再初始化数据:

./bkcec install cmdb
./bkcec start cmdb
./bkcec initdata cmdb

详解:

  1. 安装配置平台

    • 安装依赖,从 dependences.env 里读取到 CMDB 依赖 Nginx。需要先 Yum 安装 Nginx。
    • rsync 将 src/cmdb 拷贝到 bkcec/ 下。
    • 创建一个名为 CMDB 的虚拟环境,给 Supervisord 使用。
    • 渲染 CMDB 模板文件。
    • 软连接 bkcec/etc/nginx.conf/etc/nginx/nginx.conf 覆盖 Nginx 默认的配置。
    • globals.env 里配置的 CMDB_FQDN 域名写入 /etc/hosts
  2. 启动配置平台
    • 需要等待 ZK 服务可用,通过 dig +short zk.service.consul 是否解析成功来判断。
    • 启动 Nginx ,如果 Nginx 进程已经启动,则执行 reload
    • workon cmdb; supervisord -c $INSTALL_PATH/etc/supervisor-cmdb-server.conf 启动 CMDB 后台进程。
    • 启动 CMDB 后,cmdb_adminserver 会将所有进程的配置文件写入 ZK 节点内,其他进程启动时从 ZK 读取配置。
  3. 初始化配置平台
    • 初始化 CMDB 前需要保证所有 CMDB 后台进程的端口均可用。如果不可用说明启动 CMDB 虽然进程 RUNNING ,但是端口未监听,此时可以尝试重启 CMDB 。
    • 调用 cmdb_adminserver 的 http 接口(/migrate/v3/migrate/community/0),来初始化 CMDB 。

安装管控平台

配置平台的快照数据,依赖蓝鲸组件 GSE 后台:

./bkcec install gse
./bkcec initdata gse
./bkcec start gse

详解:

  1. 安装 GSE

    • 拷贝 GSE 后台, cert 目录 到 $INSTALL_PATH/ 下。
    • 根据 globals.env 里是否自动获取外网 IP 配置,来设定 GSE 需要监听的 IP 地址。
    • 渲染配置模板。
    • 将 Agent , Proxy ,和证书打包,并传到 Nginx 的 miniweb 下,供安装 Agent 时使用。
  2. 初始化 GSE 的 ZK 默认配置。
  3. 启动 GSE 后台进程。

安装 JOB 作业平台./bk_install job

 详细步骤

JOB 是蓝鲸的作业平台,它依赖管控平台的 GSE 和每台服务器上安装 GSE_Agent 才能工作。另外它也需要从配置平台读取业务权限和主机 IP 列表,所以要在安装 CMDB 成功后,再安装 JOB。

转存失败重新上传取消

JOB 依赖的开源组件 MySQL 、 Redis 、 RabbitMQ 、 Nginx ,其中只有 RabbitMQ 还未安装。

安装 RabbitMQ

RabbitMQ 除了 JOB 使用,在蓝鲸社区版中,用到了 Celery 组件的 SaaS 和后台也依赖,SaaS 上下架所用到的 Paas_Agent 组件依赖 RabbitMQ 的 management 插件功能。这个功能在 rabbitmq 3.0 以上才支持,所以 通过 YUM 安装 RabbitMQ 时确保版本在 3.0 以上。

./bkcec install rabbitmq

./bkcec initdata rabbitmq

详解:

  1. 安装 RabbitMQ-Server
  • yum install rabbitmq-server 安装 RabbitMQ 前需要安装 Erlang,如果配置好 YUM 源,可以自动安装依赖。
  • 安装 RabbitMQ 后,系统会自动创建 RabbitMQ 用户,蓝鲸社区版里会将 RabbitMQ 默认的目录配置到 $INSTALL_PATH 下,所以需要创建这些目录,并授权:

install -d -o rabbitmq -g rabbitmq $INSTALL_PATH/etc/rabbitmq

install -d -o rabbitmq -g rabbitmq $INSTALL_PATH/public/rabbitmq

install -d -o rabbitmq -g rabbitmq $INSTALL_PATH/public/rabbitmq/mnesia

install -d -o rabbitmq -g rabbitmq $INSTALL_PATH/logs/rabbitmq

  • 生成 RabbitMQ 的配置

render_cfg_templates service "*#rabbitmq#*"

echo '[rabbitmq_management,rabbitmq_management_agent].' >$INSTALL_PATH/etc/rabbitmq/enabled_plugins

  1. 启动 RabbitMQ

systemdctl start rabbitmq-server

  1. 初始化 RabbitMQ,会添加账户,vhost,设置权限,具体内容,请参考 initdata_rabbitmq 函数

安装作业平台

开始安装作业平台

./bkcec install job

./bkcec initdata job

./bkcec start job

详解:

  1. 安装作业平台(install_job 函数)
  • 安装 Java 依赖
  • 拷贝 JOB 工程代码
  • 添加 hosts
  • 渲染配置模板
  • 转换 JOB 和 GSE 通信用的公钥和密钥格式(gen_job_cert)
  1. 启动作业平台

$INSTALL_PATH/job/job/bin/job.sh start

  1. 初始化作业平台,导入 SQL 文件

安装 gse_agent

在蓝鲸后台自身所在主机(install.config 中配置的 IP ),安装上 GSE_Agent。

./bkcec install gse_agent

安装 SaaS 详细步骤

SaaS 部署环境分为测试环境 (APPT) 和正式环境 (APPO),注意测试环境与正式环境不能安装在同一台主机中。对应的后台模块叫 PaaS_Agent ,正式环境和测试环境的区分主要是启动时环境变量的差异。

转存失败重新上传取消

PaaS_Agent 使用 Python 的 virtualenv 工具来隔离不同的 SaaS 环境。有一些 SaaS 需要使用 Celery 框架,故依赖 RabbitMQ 。这些依赖前述步骤已经安装完成。

集成安装这个模块的命令在快速部署文档里提到: ./bk_install app_mgr 。

激活 RabbitMQ

由于 RabbitMQ 的安装和初始化在前面步骤已经完成,此时会跳过这两步,到激活 RabbitMQ :

./bkcec activate rabbitmq

激活 RabbitMQ 是调用 PaaS 的接口,传递 RabbitMQ 的用户名和密码,供 PaaS 验证 RabbitMQ 的部署是否成功。 验证成功后,PaaS 会把这个 RabbitMQ 示例标记为激活可用状态,才能继续后面的 SaaS 安装部署操作。

安装 APPO 环境

./bkcec install appo

./bkcec initdata appo

./bkcec start appo

./bkcec activate appo

详解:

  1. 安装 APPO (install_PaaS_Agent 函数)

    • 创建 APPS 用户,该用户用来启停 SaaS 的后台 Python 工程
    • 拷贝 PaaS_Agent 二进制和证书目录
    • 安装专属 Python 解释器
    • 使用专属 Python 创建 PaaS_Agent 的 virtualenv
    • 创建 $INSTALL_PATH/.appenvs 目录作为 WORKON_HOME
    • 安装 PaaS_Agent 部署 SaaS 时的 Python 包依赖
    • 安装 Nginx 做 SaaS 的反向代理
    • 渲染 PaaS_Agent 模板,生成配置
    • 添加 /etc/hosts 记录
  2. 初始化 APPO (initdata_PaaS_Agent)
    • 初始化 PaaS_Agent MySQL 数据库
    • 注册 PaaS_Agent 到 PaaS 平台,成功后获取到 sid 和 Token。
    • 根据 sid 和 Token ,修改 PaaS_Agent 的配置文件
  3. 启动 PaaS_Agent
  4. 激活 PaaS_Agent

启用这个已经注册的 PaaS_Agent 主机。在做 SaaS 上下架时,只会操作激活过的 PaaS_Agent 服务器。

安装 APPT 环境(不安装)

./bkcec install appt

./bkcec initdata appt

./bkcec start appt

./bkcec activate appt

安装 BKDATA 详细步骤

BKDATA(蓝鲸数据平台基础服务)包含三个子工程

  • dataapi
  • databus
  • monitor

转存失败重新上传取消

新增的依赖有 ESKafkaBeanstalkInfluxDB 。其中 ES(Elasticsearch) 用来存储日志文本数据; Kafka 用来做数据流处理; Beanstalk 是监控后台依赖的队列服务, InfluxDB 是存储信息的时序数据库。

安装依赖

安装 Elasticasearch

./bkcec install es
./bkcec start es

详解:

  1. 安装 ES (install_es)

    • 安装 Java
    • 同步 ES 目录到 $INSTALL_PATH/service/
    • 渲染配置模板
    • 添加 ES 系统用户来运行 Elasticsearch
    • 修改内核参数和 open files
    • 设置目录权限,让 ES 用户可以读写
  2. 启动 ES

安装 Kafka

./bkcec install kafka
./bkcec start kafka

详解:

  1. 安装 Kafka (install_kafka)

    • 安装 Java
    • 同步 Kafka 目录到 $INSTALL_PATH/service/
    • 渲染配置模板
    • 修改 /etc/hosts 配置上主机名
  2. 启动 Kafka

安装 Beanstalk

./bkcec install beanstalk
./bkcec start beanstalk

详解:

  1. 安装 Beanstalkd(install_beanstalk) ,使用 Yum 安装。
  2. 启动 Beanstalk。

安装 InfluxDB

./bkcec install influxdb
./bkcec start influxdb

详解:

  1. 安装 InfluxDB (install_influxdb)

    • $PKG_SRC_PATH/service/influxdb-*.rpm 安装
    • 渲染配置模板,并做软链接
    • 修改目录权限让 InfluxDB 用户可以读写
  2. 启动 InfluxDB

安装 BKDATA

./bkcec install bkdata
(此处补充修改一下脚本bug,否则性能带不动)
./bkcec initdata bkdata
./bkcec start bkdata

备注(章鱼0302)

修改脚本bug《参考资料-蓝鲸社区版_部署bkdata服务无法启动问题》

#vim /data/bkce/bkdata/dataapi/databus/tests.py

修改脚本,注释掉self.update_bizid

转存失败重新上传取消

详解:

  1. 安装 BKDATA (install_bkdata)

    • 安装 dependents.env 里定义依赖的 Yum 包
    • 尝试修复可能引起安装 MySQL-python pip 包的 lib 库问题 (fixlocation_libmysqlclient_r 函数)
    • 同步代码工程目录,同步 cert 目录。
    • 因为 databus 是 Java 工程,安装 Java。
    • 安装 Python 虚拟环境(init_virtualenv 函数)
    • 安装 Python 工程的 requirments.txt 定义的 pip 包
    • 渲染配置模板
  2. 初始化 BKDATA (initdata_bkdata)
    • 初始化 MySQL 数据库表结构
    • dataapi 工程 migrate trt 初始化
    • 初始化 Kafka 的 topic 数据
  3. 启动 BKDATA
    • 启动 BKDATA
    • 如果是第一次启动 BKDATA ,那么运行 init_bkdata_snapshot 函数,因为这个初始化需要 dataapi 启动后才能运行。运行成功后,设置一个标记文件,$INSTALL_PATH/.init_bkdata_snapshot,防止重复执行。

安装 FTA

FTA 是蓝鲸故障自愈的后台进程

./bkcec install fta
./bkcec initdata fta
./bkcec start fta

详解:

  1. 安装 FTA (install_fta)

    • 安装 dependents.env 里定义依赖的 Yum 包
    • 同步代码工程目录,同步 cert 目录。
    • 安装 Python 虚拟环境(init_virtualenv 函数)
    • 安装 Python 工程的 requirments.txt 定义的 pip 包
    • 渲染配置模板
  2. 初始化 FTA (initdata fta)
    • 初始化 MySQL 的库表结构
  3. 启动 FTA

BK05-蓝鲸智云-标准部署-关键模块逐步操作相关推荐

  1. 蓝鲸智云平台部署[6.0.5]

    蓝鲸智云平台部署 生产环境部署 版本6.5 主机 ip 配置 系统 节点 bk1 192.168.96.188 4c16g centos7.6 主控节点 bk2 192.168.96.210 4c16 ...

  2. Cent OS 7.7 搭建蓝鲸智云社区版5.1.27(2)——标准部署

    前言 必须按顺序执行以下操作完成蓝鲸智云社区版基础包的安装,以下步骤若有报错/失败,需要根据提示修复错误后,在重新执行相同的命令(支持断点续装). 1.安装 PaaS 平台及其依赖服务 ./bk_in ...

  3. 腾讯蓝鲸智云版本再迎新升级,正式推出容器化部署版本V7.0

    蓝鲸版本再迎新升级,面向社区用户推出蓝鲸智云 V7,全平台支持容器化部署(基于kubernetes),带来全新的"桌面"(PaaS平台),支持AIX操作系统管控(节点管理,管控平台 ...

  4. 蓝鲸智云6.1软件单机部署安装教程

    环境准备 操作系统:centos7(64位) cpu:6核 内存:8GB 蓝鲸智云版本:社区版 6.1.2 ip:192.168.46.54 安装包下载 1.关闭 SELinux sed -i 's/ ...

  5. 腾讯蓝鲸智云社区版V6.0.3携手容器管理平台正式发布!

    2020年11月,我们正式推出了蓝鲸智云社区版V6.0 Beta版,4款新产品的亮相 + 7款产品的重大更新.今天我们为大家带来了社区版V6.0.3正式版以及期待已久的容器管理平台(BCS),快来部署 ...

  6. 记 安装单机版 腾讯 蓝鲸智云

    文章目录 1. 准备工作 1.1 VMware 1.2 Centos7镜像 2. 安装Centos7 3. 安装单机部署版蓝鲸 3.1 下载蓝鲸智云完整包 3.2 下载 证书包 3.3 修改一些设置 ...

  7. 蓝鲸智云-腾讯给广大运维工作者的福利

    这篇文章的标题起的有点大,那是因为试用过蓝鲸社区版后,真正体会到了一个统一运维平台带来的高效运维体验是多么的舒爽.接下来就简单介绍下蓝鲸这么个神器. 在介绍之前,先对运维行业的发展历程做个梳理. 发展 ...

  8. 【OSCAR开源先锋日】腾讯蓝鲸智云社区版“PaaS平台”及其调度编排SaaS“标准运维”正式开源

    2019年4月11日,由中国信息通信研究院主办,云计算标准与开源推进委员会承办,云计算开源产业联盟支持,由高效运维社区协办的OSCAR开源先锋日在深圳圆满闭幕. 此次大会由中国信通院云大所所长何宝宏, ...

  9. 蓝鲸智云体系介绍1(20210802)

    蓝鲸智云体系介绍1(20210802) 蓝鲸智云体系介绍1(20210802) 品牌介绍 IaaS PaaS SaaS 对比蓝鲸体系 蓝鲸发行版本 整体架构 PaaS平台 蓝鲸PaaS平台 各组件依赖 ...

最新文章

  1. Spring2.5注释驱动与基于注释的MVC
  2. 富士通打印机调整位置_打印机为什么卡纸 打印机四种卡纸原因及解决办法【介绍】...
  3. web.xml里filter-mapping中的dispatcher作用
  4. .sdp文件格式介绍
  5. InceptionNet V3整理总结
  6. linux虚拟网卡上网,Linux添加虚拟网卡的多种方法
  7. TensorFlow tf.data.Dataset
  8. SAP License:请教一个SD和FM基金预算集成的问题
  9. Hibernate入门教程
  10. 02.Mirth Connect client API 调用
  11. 计算机代码画玫瑰,turtle画玫瑰花(示例代码)
  12. Spring AOP原理之动态代理
  13. ps怎么抠地图线路_怎样在PS里画地图的边界线?
  14. Linux查看CPU使用率的一些命令
  15. linux c解决多个第三方so动态库包含不同版本openssl造成的符号冲突
  16. MIT线性代数笔记三 矩阵的乘法和逆矩阵
  17. 单选框(必选)功能的实现
  18. 【MySQL】MySQL高手是如何练成的?
  19. decimal 后面的后缀M的意思
  20. Ghost备份后找不到GHO镜像文件

热门文章

  1. 在Ubuntu16.04.1上安装、配置、使用Nginx
  2. Excel如何从另一个表中自动提取另一个表对应的数据?
  3. 如何使用Axis 1.x 的WSDL2Java生成客户端
  4. 特征工程——推荐系统里的特征工程
  5. 手把手带你搭建个人博客系统(一)
  6. 解决Win10搜索框不能使用
  7. zkSNARKs(零知识证明)简述
  8. 【RTX操作系统教程】第6章 RTX操作系统源码方式移植
  9. 一些好的网页设计工具
  10. VSCODE 系列(一)VSCODE下载和安装