ITPub博客

首页 > 云计算 > 开源云工具 > 在滴滴云快速搭建自己的简易服务集群[入门版]

在滴滴云快速搭建自己的简易服务集群[入门版]

原创 开源云工具 作者:java06051515 时间:2019-03-08 13:36:33 0 删除 编辑

引言

万物互联的时代,各行各业都或多或少的接入线上,作为开发人员,我们有了小而美的产品或服务方面的想法,就把它她做出来放到线上,让它发展壮大。

我以 滴滴云 为例,教你一步一步的搭建自己的服务器集群,包括负载均衡、Web 应用安全防火墙、构建部署等,当然这些都是可以根据你的服务发展拆分的。

以下小节循序渐进,每一节都可以停止,满足你线上服务发展的每一步诉求。

名词解释

  • 内网互通:  同一账户下的资源互通,不同账户的资源内网完全隔离。
  • 地域:  指物理的数据中心的地理区域,如北京、广州。不同地域之间网络完全隔离,不同地域之间的云产品默认不能通过内网通信。
  • 可用区:  是被设计为可以隔离其他可用区的故障的不同机房位置。如广州一区、广州二区。

更多关于地域和可用区的解释和选择请参考 地域与可用区

第一节 搭建简单的服务器

首先,最基本的云服务器资源,在 滴滴云 对应的是 DC2。

下图为云服务器的创建过程,看起来很多选项,但很多使用默认的即可,下面我们一步一步来创建你的云服务器:

  • 选项-付费方式
    一开始选择付费方式,如果只是跟着例子先尝试一把的话可以先买按时长计费的(相比包月可以随时删除,搭建好后也可以转为包月计费),如果已经准备好做什么了,那选择包月付费的可以得到一定的优惠。

  • 选项-可用区
    你希望你的云服务器放在哪个地方,选择靠近您客户的地域,可降低网络延迟,提高客户的访问速度,需要注意的是不同地域的云资源之间内网互不相通。
    这里可能你会疑问为什么不放在中部,而普遍在广州、北京这种相对极南靠北的地方?
    机房选址是一个非常复杂的过程,涉及到技术方面、资金方面、投资环境、税收、电力和通信、基础设施、交通成本、人力成本等,其实就算在中部相对较远的地方也会有延迟问题,对于网络延迟问题,有多机房,CDN 等解决方案,在其他地区布设机房的的情况也在逐渐增多。

  • 选项-服务器类型
    对于服务器类型可以参考 云服务器规格族 。各个类型都有自身特定场景的优势,根据自己使用场景选择相应的类型,达到适用、够用不浪费就行。这里我们选择通用型。

  • 选项-镜像
    镜像可以简单的理解为你的服务器的系统。当然你还可以方便的使用一键部署镜像,或其他已有服务器镜像,快速的创建已部署指定应用和环境的服务器。
    下面的云安全和云监控根据需要勾选即可。
    云监控可以时刻可视化观察服务器各项指标的监控图示;主机安全在一定程度上防护服务器免受黑客或病毒侵害。

  • 选项-配置
    配置买多大合适呢?这个问题不用纠结,我们可以先买低配置的,后面根据需要,比如你的服务做大了,就可以根据业务发展在对应服务器管理界面快速的升级配置,而不用重新创建服务器及其应用和环境。
    这里也提供了 Open API,你可以写脚本根据服务器压力等指标自动的执行升配操作,参考 更改 DC2 配置

  • 选项-系统盘
    这里我们使用高效云盘, 如何选择系统盘

  • 选项-数据盘

  • 数据盘根据需要配置,也可以后期根据业务需要配置。

  • 选项-网络
    如果只是一台服务器,选择默认的即可,后面第三节会涉及到 VPC 详细的创建及配置。

  • 选项-带宽
    根据服务用户规模选择带宽大小,也可以根据需要选自适合自己的带宽计费方式,固定带宽或按量计费。
    租用带宽会固定分配一个外网 EIP,没有外网 EIP,该服务器不能直接对外提供服务,只能通过 Web 控制台访问;或第二、三节会讲到的同一个 VPC 下的其他服务器间接访问;或 SLB 的外网 EIP 间接访问。
    后面我们要创建带负载均衡 SLB 的服务集群,因此该项可以不勾选而通过 SLB 的外网 EIP 访问。

  • 选项-安全组
    这里可以先使用默认的,第三节会涉及到安全组详细的创建及配置。
    安全组可以理解为防火墙组,就是管理你的服务器的一套防护墙规则的分组。这里使用的是白名单规则,不在规则内的无法访问。比如默认规则里面添加了 [入方向->TCP->80 端口] 则外网才可以访问你的服务器的 80 端口的应用服务。

  • 选项-登录方式
    推荐添加 SSH key,方便后面免密登录服务器操作。

  • 选项-包月时长
    根据需要和当时活动选择。

  • 选项-自动续费
    按时长没有此选项,保持账户充足余额即可,包月的最好勾选自动续费,防止资源到期忘了续期被停服。]

  • 选项-数量和名称
    创建集群的时候可以批量创建服务器及配置,名称回以你输入的名称为前缀自动序号叠加。

  • 选项-添加标签
    对资源的分组标记管理,为便于管理可以添加多个。比如我们接下来创建的 app1 集群标签  cluster:app1

好了点击确认,我们的服务器创建完后,如果选择了带宽会分配外网 EIP,通过外网 EIP 用 SSH 远程登进去就可以自由的开始你的操作了。

关于其他使用说明可以参考 云服务器使用教程-Linux

第二节 搭建简易的服务器集群

首先来看下我们稍后要搭建的简易服务器集群怎么提供服务的,如下图:

如上图,我们涉及前面提到的专有网络 VPC,安全组 SG,负载均衡 SLB,及服务器 DC2,从图中可以看到所有资源在同一个 VPC 网段内,因为不同 VPC 的机器之间网络不通,这样就形成了 cluster:app1 这个集群的私有网络。

从左边开始,首先是配置有公网 EIP 的 SLB,可以通过外网访问这个 IP 下的 SLB 服务,SLB 按一定的均衡规则将请求转发到集群的某一台服务器 DC2,服务器收到请求后再将请求响应给对应请求者,完成一次服务。

这个中间的 DC2 .22.26 服务器是集群的子节点(只有内网 IP,不用购置带宽),并配置同一安全组,不让外界随意访问服务器上的应用。这里只是示意,可以根据需要自定义动态扩展或缩减集群服务器数量。

右边还有一个 Deploy DC2 用来给开发人员通过外网部署代码到集群服务器的跳板机。这里我们先使用默认的 VPC 和安全组 SG 创建集群涉及的所有资源:DC2、SLB等,下一节再讲 VPC 和 SG 等的自定义配置。

第一步 创建集群所需要的云服务器 DC2

按第一节中的步骤创建 3 台服务器,分别为 DC2.22、DC2.26、DeployDC2,前两个作为集群服务器,不用购置外网 EIP 即带宽选项,DeployDC2 作为跳板机需要外网 EIP,其他 VPC 和安全组使用默认即可。

这里先创建 DeployDC2,通过对应的外网 EIP SSH 登录到该机器后生成该机器的 SSH key,然后在用该机器的 public ssh key 去创建集群的服务器,这样后面就可以通过 DeployDC2 免密操作集群的机器了。

第二步 配置 SLB 服务

负载均衡(Server Load Balancer)是对多台云服务器 DC2 进行流量分发的负载均衡服务。

负载均衡器通过设置虚拟服务地址,将位于同一机房的多台 DC2 实例虚拟成一个高性能、高可用的应用服务池;再根据应用指定的方式,将来自客户端的网络请求分发到云服务器池中,以此来扩展应用系统对外的服务能力,并消除单点故障的影响进而提升服务系统的可用性。详情参考 负载均衡产品简介

  • 选项-地域
    和服务器一样,子网也有特定的地域供选择,同一集群我们保持所有资源的地域一致。

  • 选项-付费方式
    同 DC2。

  • 选项-设置名称
    自定义,方便识别管理即可。

  • 选项-网络
    整个集群需要在同一 VPC 专有网络下,这节配置的资源都使用默认即可。

  • 选项-带宽
    若不勾选,负载均衡仅提供滴滴云私网 IP 地址,只能通过滴滴云内部网络访问该负载均衡,Internet 用户无法访问,目前只支持公网负载均衡。
    从上面集群的结构图中也可以看到,SLB 的公网 EIP 是我们将要搭建的集群的入口,所以勾选并选择合适的带宽。这里的带宽也支持后续弹性伸缩的,所以选择默认的即可,后面根据业务需要动态伸缩。

  • 选项-设置监听
    负载均衡负责接收连接请求,然后根据均衡算法定义的转发策略将请求流量分发至云服务器。
    目前滴滴云的 SLB 是建立在 L4 上的,比如我们配置监听 TCP 的 80 端口,均衡算法选择加权轮询,然后在选择添加服务器资源的时候给上面创建 DC2.22 和 DC2.26 都是 50% 的权重,用户从 SLB 的公网 EIP 过来的请求理论上将依次交替请求到 DC2.22 和 DC2.26 服务器,达到均衡负载的能力。
    创建完成后也可以方便的添加监听,或者在指定监听下面增减服务器资源。

第三步 通过 DeployDC2 部署代码到集群

通过云服务器 DeployDC2 对应的 EIP,在 Terminal 中  ssh dc2-user@DeployDC2  的 EIP 登录到 DeployDC2 服务器,然后在通过当前服务器 SSH 使用 DC2.22 或 DC2.26 的内网 IP 分别登录到集群的两个机器上进行操作。

为了方便,你还可以在 DeployDC2 上编写脚本或者编写一个 Web 部署界面来操作上线部署,回滚等。

第三节 简易搭建安全的服务器集群

如下图,除了前两节中出现的 VPC 和安全组 SG 会在这里看到详细的配置外,还会讲到 HTTPS 的 CA 证书,Web 应用程序防火墙,与自动化构建结合部署集群。后面这些不是必须的,但在安全和便利上收益是很大的。

第一步 配置 VPC

这里我们需要搭建一套服务器集群,会涉及到 VPC 配置(Virtual Private Cloud)提供用户安全、隔离、IP 地址可自定义配置的网络环境。

您可以完全掌控自己的专有网络,包括申请弹性公网 IP、创建子网、设置地址范围、子网段、设置安全组策略,部署云服务器、负载均衡等云服务资源,类似于利用 VPC 搭建你不同服务的内网环境。

VPC 底层进行了网络隔离,确保不同 VPC 之间网络流量不可见。 VPC 内部网络资源在隧道内部一跳即可到达目标资源,减少网络传输过程中可能出现的未知隐患。此外,VPC 内提供 IP 级别安全组,可以指定对虚拟机资源进行网络安全限制,包括针对协议,端口,进出双向限制,确保 VPC 内部安全。详情参考 专有网络 VPC

  • 选项-地域
    和服务器一样,VPC 也有特定的地域供选择,同一集群我们选择所有资源的地域保持一致,不同集群也可以通过一些技术使其网络互通,比如:

    1. 使用 EIP,可以让 VPC 内一个 IP 与公网连接
    2. 使用 VPC 对等链接,可以让 VPC 之间相互打通
    3. 使用 VPN 或专线连通,VPC 可以与用户数据中心连接
    4. … …

  • 选项-名称
    按规则自定义即可。

  • 选项-VPC网段
    这里提供了为私有网络预留的三个 IP 网段 10.0.0.0/8、172.16.0.0.0/12、192.168.0.0/16, 包含可用的 IP 数依次减少,根据你的集群中服务器等资源的使用场景和规模选择合适够用的 IP 段即可。

  • 选项-子网名称
    按规则自定义即可。

  • 选项-子网可用区
    这里需要和当前集群中的服务器的可用区保持一致,同一应用服务可在不同可用区部署互作灾备。

  • 选项-子网网段
    VPC 子网网段是 VPC 网段下的子集,可以为不同的应用服务集群配置不同的子网网段,以便批量网络管理。

创建好后 VPC 及子网后,我们来创建集群中的服务器,创建过程同前面小节中的 DC2 创建过程,不同的是在 选项-网络 这一步选择这里创建的 VPC 及对应子网。当然在 VPC 的管理列表里面也有从对应子网直接以此创建 DC2 的快捷功能。

同理,SLB 的创建在选择 VPC 及子网的时候选择这里创建的同一 VPC 及子网即可。

其他详情参考  VPC 使用教程

第二步 配置应用安全组

安全组规则采用的是白名单方式,允许规则外的流量都会被禁止,滴滴云默认提供了一个基础的安全组,里面配置了基本端口的规则,比如 22,80 等,如果理解并确定不需要的规则可以修改或删除,或者不使用默认的安全组。

一个安全组对应多个规则,每个云服务器资源上可以叠加多个安全组,这样有便于你分类管理。详情可以参考 安全组使用教程

  • 选项-地域
    选择你的 VPC 所在的地域。

  • 选项-名称
    自定义即可。

  • 选项-描述
    比如某一服务需要开启一批端口号,为了后面服用,加一个描述便于区别,自定义即可。

  • 选项-VPC
    选择与集群服务器在同一个地域的 VPC。

  • 选项-添加安全组规则
    这里使用的是白名单形式,不指定则无法通过只应用该安全组的云服务器访问外部资源,也不能通过外网访问该云服务器上的服务。非必填项,可以创建后在添加配置。

  • 选项-应用到 DC2
    选择同一 VPC 地域的云服务器 DC2,非必填项,可以创建后在添加配置,也可以在 DC2 的操作页面配置改安全组。

第三步 配置 Web 应用防火墙 WAF

开通 WAF

如下图根据需要按步骤操作,开通后可以配置多个不同域名:

配置添加域名

  • 选项-填写域名
    填写你需要保护的站点的域名,例如: www.example.com

  • 选项-协议
    你的站点使用的协议是 HTTP 还是 HTTPS,根据需要选择,如果是 HTTPS 的需要配置对应域名的 HTTPS 认证证书。个人站点的话网上提供了一些免费的证书获取方式,企业的话可以在滴滴云上 购置证书

  • 选项-源站IP
    这里选择使用 SLB 的外网 EIP 即可。

配置完成后,我们在 WAF 列表找到对应域名项,复制 CNAME ,然后去购买域名的商家管理页面,将你的域名使用 CNAME 解析方式解析到刚才复制的 CNAME 。

好了,现在总算把本节开头的集群结构图上涉及的云资源配置完了。剩下最下面的自动化部署部分的方案很多,这里使用 GitLab CI&CD 的方案,可以参考前面的文章  Gitlab CI&CD 在前端项目自动化构建部署中的实践  。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31559758/viewspace-2637582/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-10-26

  • 博文量
    134
  • 访问量
    103045