BK05-蓝鲸智云-标准部署-关键模块逐步操作
新手建议按照详细步骤,关键模块逐步操作。
一是在部署失败时,容易定位原因;
二是可以熟悉架构。
安装 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
详解:
- 拷贝 License 代码和 cert 目录。
- 渲染模块配置文件。
- 启动 License。
安装 MySQL
开始安装 MySQL 数据库,并初始化设置。
./bkcec install mysql
./bkcec start mysql
./bkcec initdata mysql
详解:
- 安装包里自带了 MySQL 的二进制,所以直接拷贝到安装目录。新建 MySQL 用户。
- 渲染 my.cnf 模板,然后建立 /etc/my.cnf 的软链。
- 执行 mysql_install_db 命令,初始化。
- 启动 MySQL。
- 对所有 install.config 里的 IP 在 MySQL 上授权。
安装 Redis
./bkcec install redis
./bkcec start redis
详解:
- 将 Redis 命令拷贝到 /usr/bin。
- 渲染配置模板。
- 修改系统内核参数。
- net.core.somaxconn = 512
- vm.overcommit_memory = 1
- 启动 Redis。
安装 Nginx
Nginx 通过 yum 命令从 EPEL 源里安装。
./bkcec install nginx
./bkcec start nginx
详解:
- yum 安装 Nginx。
- 渲染 Nginx 模板,并将 /etc/nginx/nginx.conf 软链到 $INSTALL_PATH/etc/nginx.conf。
- 创建 $INSTALL_PATH/miniweb/download 目录,并将 /data/src/miniweb 目录和 /data/install/functions 文件同步过去。供 Agent 安装时可以 HTTP 远程下载用。
- 启动 Nginx。
安装 PaaS
最后安装 PaaS 模块。
./bkcec install paas
./bkcec initdata paas
./bkcec start paas
详解:
- 安装 PaaS 用的函数叫 install_open_paas 。注意 PaaS 在安装部署脚本里均会被转换为 open_paas 来标识。这是一个特例。
- 修改 /etc/hosts 配置 FQDN。
- 拷贝代码文件到 $INSTALL_PATH/open_paas。
- 安装 open_paas 专用的 Python。
- 创建四个子工程(appengine,login,esb,paas)的 Python 虚拟环境。
- 安装每个子工程依赖的 pip 包。
- 渲染模板文件。
- 初始化 PaaS
- 导入 SQL 初始化数据库。
- PaaS Login ESB 分别做 Python migrate 初始化。
- ESB 同步 API 文档事项。
- 添加 APP 的鉴权白名单,没有 session 时也可以调用 ESB。
- 启动 PaaS。
安装 CMDB ./bk_install cmdb
详细步骤
CMDB 是蓝鲸的配置平台,数据库采用 MongoDB ,服务发现和配置管理使用 ZooKeeper ,快照数据使用 Redis 存储,快照采集依赖 GSE。
CMDB 的架构可以参考 GitHub 上的 蓝鲸智云配置平台的架构设计
CMDB 依赖的组件和服务如下:
转存失败重新上传取消
Github 上也有 CMDB 的安装说明,蓝鲸社区版集成时稍微做了些规范改造和安装自动化,需要了解为什么这样安装 MongoDB 的,可以阅读 CMDB 部署文档。
安装 MongoDB
安装 CMDB 的依赖中, MongoDB 是最重要的存储依赖,且目前只有 CMDB 独享,故先介绍 MongoDB 的安装:
./bkcec
installmongodb
./bkcec initdata mongodb
./bkcec start mongodb
详解:
- MongoDB 二进制在蓝鲸的
service/
目录下已经自包含,所以安装时直接用 rsync 将src/service/mongodb
目录同步到bkce/service/
下即可。 - MongoDB 的配置文件模板只有一个 mongodb.yaml ,里面具体配置的含义,请参考 MongoDB 官方的配置说明文档
- 初始化 MongoDB :
- 首先以不开启鉴权的方式启动 MongoDB ,并创建管理员
sysadmin
的角色,和 · 里定义的$MONGODB_USER
用户,并配置为sysadmin
角色。 - 创建
bk_cmdb
用户,创建 CMDB 数据库,并授予bk_cmdb
用户读写它的权限。 - 关闭 MongoDB 进程。
- 首先以不开启鉴权的方式启动 MongoDB ,并创建管理员
- 调用
$INSTALL_PATH/service/mongodb/bin/mongodb.sh start
启动 MongoDB。
安装 ZooKeeper
ZooKeeper 在这里的用途是作为 CMDB 的服务发现组件:
./bkcec
installzk
./bkcec start zk
详解:
- 拷贝 Java 和 ZooKeeper 代码目录到
$INSTALL_PATH/service/
下。 - 渲染配置文件模板,主要是
zoo.cfg
,并创建软连接到$INSTALL_PATH/etc/zoo.cfg
。 - 启动 ZooKeeper。
安装配置平台
需要特别注意的是 CMDB
先启动,再初始化数据:
./bkcec
installcmdb
./bkcec start cmdb
./bkcec initdata cmdb
详解:
- 安装配置平台
- 安装依赖,从
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
。
- 安装依赖,从
- 启动配置平台
- 需要等待 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 读取配置。
- 需要等待 ZK 服务可用,通过
- 初始化配置平台
- 初始化 CMDB 前需要保证所有 CMDB 后台进程的端口均可用。如果不可用说明启动 CMDB 虽然进程
RUNNING
,但是端口未监听,此时可以尝试重启 CMDB 。 - 调用 cmdb_adminserver 的 http 接口(/migrate/v3/migrate/community/0),来初始化 CMDB 。
- 初始化 CMDB 前需要保证所有 CMDB 后台进程的端口均可用。如果不可用说明启动 CMDB 虽然进程
安装管控平台
配置平台的快照数据,依赖蓝鲸组件 GSE
后台:
./bkcec
installgse
./bkcec initdata gse
./bkcec start gse
详解:
- 安装 GSE
- 拷贝 GSE 后台, cert 目录 到
$INSTALL_PATH/
下。 - 根据
globals.env
里是否自动获取外网 IP 配置,来设定 GSE 需要监听的 IP 地址。 - 渲染配置模板。
- 将 Agent , Proxy ,和证书打包,并传到 Nginx 的
miniweb
下,供安装 Agent 时使用。
- 拷贝 GSE 后台, cert 目录 到
- 初始化 GSE 的 ZK 默认配置。
- 启动 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
详解:
- 安装 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
- 启动 RabbitMQ
systemdctl start rabbitmq-server
- 初始化 RabbitMQ,会添加账户,vhost,设置权限,具体内容,请参考 initdata_rabbitmq 函数
安装作业平台
开始安装作业平台
./bkcec install job
./bkcec initdata job
./bkcec start job
详解:
- 安装作业平台(install_job 函数)
- 安装 Java 依赖
- 拷贝 JOB 工程代码
- 添加 hosts
- 渲染配置模板
- 转换 JOB 和 GSE 通信用的公钥和密钥格式(gen_job_cert)
- 启动作业平台
$INSTALL_PATH/job/job/bin/job.sh start
- 初始化作业平台,导入 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
详解:
- 安装 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 记录
- 初始化 APPO (initdata_PaaS_Agent)
- 初始化 PaaS_Agent MySQL 数据库
- 注册 PaaS_Agent 到 PaaS 平台,成功后获取到 sid 和 Token。
- 根据 sid 和 Token ,修改 PaaS_Agent 的配置文件
- 启动 PaaS_Agent
- 激活 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
转存失败重新上传取消
新增的依赖有 ES
、 Kafka
、 Beanstalk
、 InfluxDB
。其中 ES(Elasticsearch) 用来存储日志文本数据; Kafka 用来做数据流处理; Beanstalk 是监控后台依赖的队列服务, InfluxDB 是存储信息的时序数据库。
安装依赖
安装 Elasticasearch
./bkcec
installes
./bkcec start es
详解:
- 安装 ES (install_es)
- 安装 Java
- 同步 ES 目录到
$INSTALL_PATH/service/
下 - 渲染配置模板
- 添加 ES 系统用户来运行 Elasticsearch
- 修改内核参数和
open files
值 - 设置目录权限,让 ES 用户可以读写
- 启动 ES
安装 Kafka
./bkcec
installkafka
./bkcec start kafka
详解:
- 安装 Kafka (install_kafka)
- 安装 Java
- 同步 Kafka 目录到
$INSTALL_PATH/service/
下 - 渲染配置模板
- 修改
/etc/hosts
配置上主机名
- 启动 Kafka
安装 Beanstalk
./bkcec
installbeanstalk
./bkcec start beanstalk
详解:
- 安装 Beanstalkd(install_beanstalk) ,使用 Yum 安装。
- 启动 Beanstalk。
安装 InfluxDB
./bkcec
installinfluxdb
./bkcec start influxdb
详解:
- 安装 InfluxDB (install_influxdb)
- 从
$PKG_SRC_PATH/service/influxdb-*.rpm
安装 - 渲染配置模板,并做软链接
- 修改目录权限让 InfluxDB 用户可以读写
- 从
- 启动 InfluxDB
安装 BKDATA
./bkcec
installbkdata
(此处补充修改一下脚本bug,否则性能带不动)
./bkcec initdata bkdata
./bkcec start bkdata
备注(章鱼0302)
修改脚本bug《参考资料-蓝鲸社区版_部署bkdata服务无法启动问题》
#vim /data/bkce/bkdata/dataapi/databus/tests.py
修改脚本,注释掉self.update_bizid
转存失败重新上传取消
详解:
- 安装 BKDATA (install_bkdata)
- 安装
dependents.env
里定义依赖的 Yum 包 - 尝试修复可能引起安装 MySQL-python pip 包的 lib 库问题 (fixlocation_libmysqlclient_r 函数)
- 同步代码工程目录,同步 cert 目录。
- 因为 databus 是 Java 工程,安装 Java。
- 安装 Python 虚拟环境(init_virtualenv 函数)
- 安装 Python 工程的 requirments.txt 定义的 pip 包
- 渲染配置模板
- 安装
- 初始化 BKDATA (initdata_bkdata)
- 初始化 MySQL 数据库表结构
- dataapi 工程 migrate trt 初始化
- 初始化 Kafka 的 topic 数据
- 启动 BKDATA
- 启动 BKDATA
- 如果是第一次启动 BKDATA ,那么运行 init_bkdata_snapshot 函数,因为这个初始化需要 dataapi 启动后才能运行。运行成功后,设置一个标记文件,$INSTALL_PATH/.init_bkdata_snapshot,防止重复执行。
安装 FTA
FTA 是蓝鲸故障自愈的后台进程
./bkcec
installfta
./bkcec initdata fta
./bkcec start fta
详解:
- 安装 FTA (install_fta)
- 安装 dependents.env 里定义依赖的 Yum 包
- 同步代码工程目录,同步 cert 目录。
- 安装 Python 虚拟环境(init_virtualenv 函数)
- 安装 Python 工程的 requirments.txt 定义的 pip 包
- 渲染配置模板
- 初始化 FTA (initdata fta)
- 初始化 MySQL 的库表结构
- 启动 FTA
BK05-蓝鲸智云-标准部署-关键模块逐步操作相关推荐
- 蓝鲸智云平台部署[6.0.5]
蓝鲸智云平台部署 生产环境部署 版本6.5 主机 ip 配置 系统 节点 bk1 192.168.96.188 4c16g centos7.6 主控节点 bk2 192.168.96.210 4c16 ...
- Cent OS 7.7 搭建蓝鲸智云社区版5.1.27(2)——标准部署
前言 必须按顺序执行以下操作完成蓝鲸智云社区版基础包的安装,以下步骤若有报错/失败,需要根据提示修复错误后,在重新执行相同的命令(支持断点续装). 1.安装 PaaS 平台及其依赖服务 ./bk_in ...
- 腾讯蓝鲸智云版本再迎新升级,正式推出容器化部署版本V7.0
蓝鲸版本再迎新升级,面向社区用户推出蓝鲸智云 V7,全平台支持容器化部署(基于kubernetes),带来全新的"桌面"(PaaS平台),支持AIX操作系统管控(节点管理,管控平台 ...
- 蓝鲸智云6.1软件单机部署安装教程
环境准备 操作系统:centos7(64位) cpu:6核 内存:8GB 蓝鲸智云版本:社区版 6.1.2 ip:192.168.46.54 安装包下载 1.关闭 SELinux sed -i 's/ ...
- 腾讯蓝鲸智云社区版V6.0.3携手容器管理平台正式发布!
2020年11月,我们正式推出了蓝鲸智云社区版V6.0 Beta版,4款新产品的亮相 + 7款产品的重大更新.今天我们为大家带来了社区版V6.0.3正式版以及期待已久的容器管理平台(BCS),快来部署 ...
- 记 安装单机版 腾讯 蓝鲸智云
文章目录 1. 准备工作 1.1 VMware 1.2 Centos7镜像 2. 安装Centos7 3. 安装单机部署版蓝鲸 3.1 下载蓝鲸智云完整包 3.2 下载 证书包 3.3 修改一些设置 ...
- 蓝鲸智云-腾讯给广大运维工作者的福利
这篇文章的标题起的有点大,那是因为试用过蓝鲸社区版后,真正体会到了一个统一运维平台带来的高效运维体验是多么的舒爽.接下来就简单介绍下蓝鲸这么个神器. 在介绍之前,先对运维行业的发展历程做个梳理. 发展 ...
- 【OSCAR开源先锋日】腾讯蓝鲸智云社区版“PaaS平台”及其调度编排SaaS“标准运维”正式开源
2019年4月11日,由中国信息通信研究院主办,云计算标准与开源推进委员会承办,云计算开源产业联盟支持,由高效运维社区协办的OSCAR开源先锋日在深圳圆满闭幕. 此次大会由中国信通院云大所所长何宝宏, ...
- 蓝鲸智云体系介绍1(20210802)
蓝鲸智云体系介绍1(20210802) 蓝鲸智云体系介绍1(20210802) 品牌介绍 IaaS PaaS SaaS 对比蓝鲸体系 蓝鲸发行版本 整体架构 PaaS平台 蓝鲸PaaS平台 各组件依赖 ...
最新文章
- Spring2.5注释驱动与基于注释的MVC
- 富士通打印机调整位置_打印机为什么卡纸 打印机四种卡纸原因及解决办法【介绍】...
- web.xml里filter-mapping中的dispatcher作用
- .sdp文件格式介绍
- InceptionNet V3整理总结
- linux虚拟网卡上网,Linux添加虚拟网卡的多种方法
- TensorFlow tf.data.Dataset
- SAP License:请教一个SD和FM基金预算集成的问题
- Hibernate入门教程
- 02.Mirth Connect client API 调用
- 计算机代码画玫瑰,turtle画玫瑰花(示例代码)
- Spring AOP原理之动态代理
- ps怎么抠地图线路_怎样在PS里画地图的边界线?
- Linux查看CPU使用率的一些命令
- linux c解决多个第三方so动态库包含不同版本openssl造成的符号冲突
- MIT线性代数笔记三 矩阵的乘法和逆矩阵
- 单选框(必选)功能的实现
- 【MySQL】MySQL高手是如何练成的?
- decimal 后面的后缀M的意思
- Ghost备份后找不到GHO镜像文件