前面一篇文章成功实践了通过rancher的web终端一键部署K8S集群服务。今天的实验内容是通过rancher应用商店一键部署EFK日志监控平台,用于监控K8S集群下日志状况。
应用列表展示如下:
在应用商店中部署了“普罗米修斯”监控插件、K8S仪表盘以及今天的EFK日志监控插件。
不知道rancher对EFK插件的具体要求,也就是至少要运行几个节点。之前架构如下:
rancher master一台;
K8S master节点一台;
K8S node节点一台。
感觉节点数量不太符合EFK的最低要求,基于此,往现存的集群系统中又添加了两个node节点,分别是K8S node3和K8S node4。虚拟机配置和前面大致相当,内存都为8GB,如下所示:
为统一规范,每个虚拟机都安装了CentOS7.4版本。操作系统安装完毕后,升级内核到5.7.4版本:
因为之前添加K8S master和node节点时,没有保存自动部署的脚本,即通过运行docker命令构建容器来完成K8S节点的添加。
在rancher web界面端摸索一段时间后,发现入口如下:
点击右上角的“编辑集群”,之后鼠标一直往下,就看到我们需要的命令:
将命令复制并粘贴到新节点的字符界面下运行,就开始K8S集群新节点的加入以及rancher agent的自动部署阶段。
系统初始只需要一个镜像,即rancher/rancher-agent:V2.4.5。上面命令运行之后,会自动构建一个容器,我们通过docker logs -f-name可以看到这个容器的所有工作情况,包括拉取镜像、生成服务等操作。
在节点还未完全加入到集群中,我们可以看到节点处于等待状态,web端已发现此节点:
等节点成功加入集群后,我们可以看到节点状态为“Active”,该节点的硬件资源也正常显示:
回过头来看我们的EFK,目前处于忙碌的工作中,包括在新增节点上拉取镜像、部署服务等操作。
到所有操作完毕,我们可以看到EFK对应命名空间下所有服务的状态均为“Active”:
查看新增加的两个节点node3和node4上面的镜像部署情况:
到K8S master节点查看所有服务启动状态,以及每个服务对应启动的节点:
在这个阶段,我们看到所有服务均已就绪,且node3和node4已经承载了K8S集群的部分工作。
在应用列表,我们可以清楚的看到EFK通过nodePort的方式(暴露30235端口)进行kibana的访问,我们点击“30235/tcp”即可访问kibanaweb端。
在web端,自动发现filebeat和metricbeat,我们添加这两个index然后就可以看到整个集群的日志监控状态:
在K8S的原生dashboard端,我们可以看到EFK命名空间的运行状态:
到这里,整个实验过程结束。
此次实验后,我们的rancher+K8S集群一共分配了五个节点:
对于宿主机的资源消耗情况如下所示:
就64GB内存的宿主机来说,再添加多个节点也是可以的,接下来还可以部署CI/CD等环境。
通过此次实验的收获如下:
1,rancher下节点的添加;
2,EFK日志平台的一键部署;
3,docker logs -f-name查看容器中镜像的拉取过程以及服务的生成等;
4,EFK日志平台下日志的收集