云计算平台搭建与部署(云计算系列丨打造轻量级容器自动化编排部署平台(一))

阅读指南

说到自动化编排和部署平台,每个人都会想到kubernetes(以下简称k8s)。然而,对于中小型场景来说,k8s过于沉重和复杂。

郭敬才部署的“轻量级容器+云”项目取得了显著成效。通过本系列的主题分享,我期待着与您讨论k8s替代方案。

Nomad简介

Nomad是一个基于go语言开发的编舞和工作流架构应用服务。其优点如下:

  1. 重量轻。单一可执行文件,集成服务器、客户端和web管理界面;
  2. 它不仅支持容器部署,还支持本机模式部署;
  3. 基于JSON格式的作业文件,编写的代码量远远少于k8s;
  4. 内置灰色发布、自动回滚、水平伸缩、节点疏散等自动部署所需的基本功能。

因此,与需要自行安装多个组件的k8s相比,Nomad的部署更简单。

官方网站指南

https:www.nomadproject。comio/

关于Consul

Consul也是基于围棋语言开发的,具有以下功能:

  1. 内部DNS解析;
  2. 服务自注册、生存监控、动态负载平衡;
  3. 支持网络通信加密;
  4. 跨平台、服务友好的微电网。

官方网站指南

https://www.consumer。comio/

信智“天天人才”项目平台部署流程

1.应用程序编译和打包后,将其制作成docker映像并推送到docker私有库中。

2.根据申请要求,编写相应的Nomad作业并发送给Nomad服务器。

3.Nomad根据资源池选择合适的服务器节点,从私有的库拉获取图像,启动docker容器,随机选择主机上的一个端口映射到容器中的应用服务监听端口。

4.Nomad然后根据作业配置中的声明向Consul注册服务名称、主机IP和集装箱端口。

5.使用traefik或Fabio服务监听Consul注册的信息,提供反向代理服务,动态热更新每个应用服务的访问地址列表。通过这种方式,应用程序之间的访问可以遵循统一的API网关接口,而不需要知道它们的特定访问地址。

Consul关于构建轻量级集装箱自动排列和部署平台的文章

以Ubuntu20.04为例,Consul可以通过依次执行以下三个命令来安装:


Curl-fsslLiuYifei://apt.releaseshashicorp。com/gpg|sudoapt按键添加-

sudoaptaddrepository";Deb[arch=AMD64]https://apt.releaseshashicorp。com$(lsb_发行版-cs)main和#34;

sudo-apt-get-update&sudo-apt-get-install-consur


完成安装。

其配置文件位于/etc/consumerd/consul中。hcl.以192.168.56.101服务器的配置为例,查找并修改以下关键配置:


客户地址=";0.0.0.0",

绑定地址=";192.168.56.101",

#服务器配置

ui=true,

server=true,

bootstrap(NicholasTse_uuuu)expect=3,

重试uu-Ma-Huateng=[";192.168.56.101";";192.168.56.102";";192.168.56.103";]


具有服务器角色的其他两台服务器的配置只需修改绑定即可。addr的值是相应的IP。

修改服务器的配置后,执行

服务领事重启

只是然后,您可以通过以下命令查看集群的建立状态。

Journalctl-Xe|格雷普消费者|格雷普join

看到这样的内容表明集群已经建立。

代理:(兰)join编辑:节点数=3

接下来,安装并配置其余四个代理。以192.168.56.104为例,其配置为:


客户地址=";0.0.0.0",

绑定地址=";192.168.56.104",

#代理配置

ui=false,

server=false,

重试uu-Ma-Huateng=[";192.168.56.101";";192.168.56.102";";192.168.56.103";]


其他三台具有代理角色的服务器只需修改绑定即可。addr的值是相应的IP。记住执行服务消耗重启以使新配置生效。

Consul默认使用8600端口提供DNS解析服务。为了维护自己的服务并支持标准端口53,它需要通过dnsmasq进行一些额外的处理和代理。

首先,您需要停止系统本身的DNS服务(根据每个发行版,我们以Ubuntu20.04为例进行全文介绍)。

systemctldisable--现在systemd已解决

然后安装dnsmasq

aptget安装-ydnsmasq

创建/etc/dnsmasqD/10consumer并写入和保存以下内容。

服务器=/consu/127.0.0.1#8600

服务器=223.5.5.5

服务器=223.6.6.6

只需重新启动服务

服务dnsmasq重启

现在让我们验证一下。查看Consul为其服务注册的域名使用情况。领事


挖掘领事。服务领事


;<;<;>;>;挖掘9.16.1-Ubuntu<;和lt;>;>;领事服务领事

;;全局选项:+cmd

;;得到答案:

;;->;>;标题<;<;<;-操作码:查询,状态:无错误,id:26656

;;旗帜:qr-aa-rd-ra;查询:1,答案:3,权限:0,ADDITIONAL:1


;;选择假节:

;EDNS:版本:0,标志:;udp:4096

;;问题部分:

;领事服务领事在一个


;;回答部分:

领事服务领事192.168.56.103中的0

领事服务领事192.168.56.101中的0

领事服务领事192.168.56.102中的0


;;查询时间:3毫秒

;;服务器:127.0.0.1#53(127.0.0.1)

;;12月23日:12:25:18CST2021

;;味精大小:98

搭建云计算平台


你可以看到,在这个域名下,注册了三个IP地址(都在服务器端)。此外,每个查询的返回顺序不同,可以说间接实现了负载平衡的效果。

Consul还带来了自己的网络用户界面,可以在浏览器中访问http://192.168.56.101:8500

它提供了一个非常简单实用的界面,您可以在其中查看哪些服务已注册,以及服务的运行状况如何。

如果服务出现故障,Consul将根据阈值要求有条件地从域名中删除相应的IP,并在管理界面上标记故障点。这样就很好地解决了故障节点影响业务流程的问题,极大地方便了运维人员的管理。

以perconaxtradb集群为例。JetLiclient安装在三个数据库节点上,用于建立服务注册和监控配置文件,如/etc/consumerd/pxc。JSON,一个节点的配置文件内容如下:

保存后,让Consul重新加载配置。

服务领事

然后查看mysql服务。内部域名消费者

挖mysql。服务领事

查看三个节点的IP地址是否已注册

mysql。服务领事192.168.0.7中的0

mysql。服务领事192.168.0.8中的0

mysql。服务领事192.168.0.9中的0

通过这种配置,所有数据库访问连接都使用mysql服务。域名消费者。它不仅起到读写负载平衡的作用,而且当节点出现故障时,Consul会自动删除其IP。各应用终端对数据库的访问保持畅通,运维人员只需关注维修服务即可。

应该注意的是,Consul的开源版本没有用户系统。因此,如果您想在生产中使用它,您需要保护它的访问,以防止恶意更改。

小结

这就是Consul的快速部署。在下一期中,我们将讨论如何快速构建Nomad基于Consul的自动部署平台。你可以继续关注我们的“心之云”公众号,关注下一个问题云计算专栏更新为。

同时,欢迎大家在下面留言,积极提问和讨论,共同学习进步。

您可以还会对下面的文章感兴趣

最新评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

使用微信扫描二维码后

点击右上角发送给好友