深度解析丨如何使用蓝鲸实现跨云主机管理(文末有彩蛋)!

蓝鲸智云,简称蓝鲸,它是一套基于 PaaS 的运维解决方案,提供了完善的前后台开发框架、调度引擎、公共组件等模块,帮助运维工程师快速构建低成本、免运维的支撑工具和运营系统;在运维领域,蓝鲸以“独特”的方式承载着国内游戏行业半数份额。

在之前《干货丨为什么选择蓝鲸来构建企业的自动化运维体系》这篇文章中,我们介绍过蓝鲸的设计思想和体系架构。本文主要进一步介绍蓝鲸的多云管控平台,并详细演示如何一步步使用蓝鲸实现跨云主机的管理。友情提醒:非技术咖勿看~

蓝鲸平台的多云管控

蓝鲸管控平台是整个蓝鲸平台的底层管控系统,是上层运维服务体系与底层 IaaS 的连接器,并为蓝鲸其他平台提供了人机交互的通道与能力。

主要提供三种类型的服务能力:文件分发传输能力、命令实时执行与反馈的能力、大数据采集与传输的能力。

在整个蓝鲸体系中,唯独蓝鲸管控平台没有直面用户,但蓝鲸管控平台在蓝鲸体系中却是不可或缺的。

蓝鲸管控平台是典型的两层分布式 C/S 结构,主要包含智能 Agent、提供各种服务的 Server、以及 zookeeper、redis、MySQL 等周边保障模块。其中Agent 是部署在业务机器上的程序,每台业务机器理论上只可以部署一个,其他模块部署无具体要求,用户可以单独部署,也可以混合部署。

蓝鲸管控平台同时也支持Proxy模式,当我们需要管控私有云或公有云中隔离的网络区域服务器时,可通过一级或者多级proxy级联的方式进行纳管和统一的驱动,这样使蓝鲸管控平台具备海量、跨云、全球节点管控的能力。Proxy模式架构图如下图所示:

跨云管理的条件&流程

虽然蓝鲸平台的设计思想和理念,天然具备混合云纳管的能力。但当实际配置和适配不同云厂商产品时,还是有不少坑和需注意的地方。下面我们就一起来看看蓝鲸智云管控平台如何一步步实现跨云主机管理。

先看蓝鲸智云官方的一些配置要求:

#sshnopass

蓝鲸安全指南-环境准备-配置参数

根据以上官方要求,要实现跨云管理,必须满足以下三个条件:

条件1:管理公有云主机,在服务器端GSE需要配置外网IP;

条件2:管理公有云主机,需以Proxy的方式进行管理,同一个云区域有多个主机时,其他主机可连接Proxy在与蓝鲸服务端进行通信,Proxy或节点在安装Agent时有多个服务需要互相通信;

条件3:为了保证蓝鲸平台能正常管理公有云主机,需要Proxy、P-Agent节点、GSE之间个别端口能互相访问。

必备条件总结

1、GSE所在机器必须有外网IP;

2、通过节点管理对公有云主机实现自动安装Agent时,Agent需要与Nginx服务器通信,相应的Nginx服务器也需要有外网IP;

3、公有云主机需要与GSE服务器个别端口互相通信,保证蓝鲸平台能实时获取公有云主机的数据,并能通过蓝鲸平台批量下发任务;

4、同一网段的公有云区域必须有一台云主机有外网IP。

根据蓝鲸架构设计,GSE和Nginx服务为了保证高可用,会部署到多台服务器,这样就需要多个外网IP。考虑到企业实际环境外网IP地址有限,我们可以使用一个外网IP地址通过端口映射的方式来解决外网地址短缺的问题。

根据要求,蓝鲸智云实现跨云管理的大致流程图如下:

详细配置过程

一、准备阶段

1、蓝鲸平台服务端

a) 配置GSE_WAN_IP

这里有两种情况:一种是GSE所在机器不能访问外网,则需要在 GSE所在机器配置 GSE_WAN_IP添加外网IP;一种是GSE所在机器能访问外网, 则配置export AUTO_GET_WANIP=1 。

因我们测试的环境中GSE所在机器不能访问外网,所以需在GSE_WAN_IP添加外网IP。

ssh gse主机

cd /data/install

vi globals.env

export GSE_WAN_IP=(*.*.*.*)

export NGINX_WAN_IP=(*.*.*.*)

b) 配置nginx服务

Nginx主要为Proxy提供下载服务,因外网IP未配置到Nginx服务器上,所以需要修改Nginx配置文件,以保证通过外网IP能使用下载服务。

ssh nginx主机

cd /data/bkce/etc/nginx

vi miniweb.conf

server {

listen 80;

server_name #默认内网IP# ;

server_name #外网IP# ; #添加外网IP

root /data/bkce/miniweb;

location / {

index index.html;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

location ~ /.ht {

deny all;

}

access_log /data/bkce/logs/nginx/www_access.log;

}

cd /data/install

./bkcec stop nginx

./bkcec start nginx

./bkcec status nginx

2、公有云控制台端

公有云控制台端配置网络访问控制策略:网络配置策略要根据实际环境情况来进行配置,按照我们现有的环境,需配置的地方有以下几点:

• APPO→Proxy(公有云主机)

在公有云控制台上开放入方向22端口,以腾讯云为例,可以放通自定义端口,也可以将所有端口放通。

• GSE→Proxy(公有云主机)

在公有云控制台上开放入方向48533、58625、58930、10020、10030等端口。

上一条安全组已放通所有端口,这里,无需再增加,如有必要可自定义添加。

• Proxy(公有云主机)→P-Agent(公有云主机)

在公有云控制台上开放如下互访端口

公有云平台内网策略一般都是默认全放通,如访问策略粒度较细,可单独开放。

3、内网防火墙端

• Proxy(公有云主机)→Nginx

在内网防火墙上开放入方向80(http服务)端口,并指定源地址及目的地址

这里我们将所有端口开放,源地址设置为any,目的地址设置为蓝鲸Nginx内网IP。

• Proxy(公有云主机)→GSE

在内网防火墙上开放入方向48533、58625、58930、10020、10030等端口,并指定源地址及目的地址,上一条策略已开放所有端口,这里需要注意的是需将GSE内网IP加入到目的地址池。

• 配置外网IP端口映射

上面必备条件总结里我们提到,实际环境中只有一个外网IP供多个业务使用,无过多外网IP单独供蓝鲸平台使用,我们使用外网IP端口映射的方式来解决该问题。

通过第一步可以看到我们只需要配置Proxy去访问Nginx、GSE之间的端口。

需要注意的是因80端口给别的业务使用了,实际环境采用8082端口进行映射。

二、节点管理

以上配置完成后,就可以进行接管工作了,具体步骤如下:

1、 配置节点管理

找到节点管理-Nginx Server,添加内网IP地址和外网IP地址,上面提到因80端口被占用,在映射时使用的是8082端口,这里需填写正确。

2、 添加Proxy

进入节点管理-安装Agent-云区域管理-新增云区域,这里增加了一个公有云区域。

选择公有云区域,点击添加Proxy,输入相关信息后进行安装,这里内网IP和外网IP需根据Proxy实际IP进行填写,外网IP与蓝鲸服务端进行通信,内网IP与P-Agent进行通信,在安装Agent的过程中,会将这两个IP地址写入到配置文件。

在测试的过程中发现一个云区域只能增加2个Proxy,如果环境中有多个网段,需要增加多个Proxy时,建议单独创建不同的云区域,一般情况下,在创建云区域时,建议一个互通网段创建一个云区域,这样就不存在刚才的问题了。

3、 添加P-Agent

Proxy添加完成后,可以继续为云区域添加P-Agent,同样在节点管理选择公有云区域-点击添加P-Agent,可以看到只需要输入一个内网IP。

安装成功后如下图所示:

小结

通过以上步骤,公有云主机会自动注册到蓝鲸CMDB,这样公有云主机就具备了蓝鲸平台所有的自动化能力了,比如文件分发、批量脚本执行、监控告警、故障自愈、日志检索、应用发布等。

最后,为了更好的方便大家使用云区域,建议根据不同的场景进行规划,具体规划建议如下:

• 主机分布在一个IP地址段,所有主机归类到直连区域;

• 主机分布在多个IP地址段,多IP地址段路由互通,所有主机归类到直连区域;

• 主机分布在多个IP地址段,多IP地址段路由不互通,与蓝鲸服务端在同一个地址段的主机归类到直连区域,其他地址段的主机归属到非直连区域,使用proxy的方式进行管理;

• 主机分布在内网和公有云,公有云主机必须归属到非直连区域,使用proxy的方式进行管理。

产权及声明:本文作者系元鼎科技云计算技术团队技术经理刘辉,未经授权,请勿转载,谢谢合作。

写在后面

元鼎科技是腾讯蓝鯨首批授权服务商。在洛阳银行新一代科技系统建设项目中,元鼎科技为其提供了元鼎·蓝鲸自动化运维解决方案(点击查看:探索DevOps丨元鼎蓝鲸智能运维成功交付银行业务)。作为领先的云管理及自动化运维专家,元鼎科技携智能多云管理平台CloudSmartOps以及自动化运维产品元鼎蓝鲸,以技术创造价值,以服务回馈客户,助力企业IT信息运维数字化转型,我们期待为更多客户创造更大价值!

彩蛋

2018年12月15日,由蓝鲸智云主办、DevOps学院承办、元鼎科技协办、OTPUB(www.otpub.com)独家直播呈现的【寻找运维的下一站-腾讯蓝鲸运维开发技术沙龙】,将在北京市海淀区知春路49号(腾讯北京分公司)希格玛大厦B1小礼堂举办。欢迎关注元鼎科技(号yd)咨询报名!