使用K8S管理工具

Rancher是一个开源的企业级容器管理平台。通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。

Linkyoyo可以将Rancher配置使用多种、私有云的VM或者物理主机资源。Rancher仅需要主机有CPU,内存,本地磁盘和网络资源。

Kubernetes为运行容器化的应用实现了一层灵活的基础设施服务。通过Rancher控制的Kubernetes平台可以灵活控制的基础设施服务包括网络, 存储, 负载均衡, DNS和安全模块。比较好的是,Rancher的基础设施服务也是通过容器部署的,所以同样Rancher的基础设施服务可以运行在任何Linux主机上。

rancher 的特色

平台部署方便。管理 docker 的平台本身也基于 docker 部署。只要你有 docker ,一个命令就完成平台的部署了。

平台扩展方便。通过 agent 机制,一句 docker 命令完成 agent 部署,快速增加你的物理机。同时也支持 AWS 等云主机, 2.1版本甚至还支持 K8s多集群管理。

自带账户权限。相比 K8s 没有账号管理,rancher 自带账号权限体系。账号可以独立创建,也可以很方便地接入 ldap 等账号体系。对于公司使用是一大利器。

基于LinkYoyo扩展的Rancer应用

Rancher集群:

rancher集群主要配置docker服务的运行和管理,建议rancher集群采用HA配置,基于基数个ETCD节点的高可用,最少建议3个节点(允许一个节点出现问题)以保障集群可用性。

Kubernetes集群:

该集群主要用于运行应用程序。建议集群采用HA配置,基于基数个ETCD节点的高可用,最少建议3个节点(允许一个节点出现问题)以保障集群可用性。

负载均衡:

为rancher集群提供入口和证书。目前配置的都是7层负载均衡。

私有镜像库:

私有镜像库用于存放业务镜像,可以使用私有镜像库使用的是Harbor,也可使用阿里云私有镜像库,但是目前接入AWS ECR存在问题。

Filebeat+ ElasticSearch:

该模块主要用于业务日志的收集和分析,帮助开发人员快速查看日志,协同监控解决方案,监控业务系统运行。

Gitlab :

作为代码仓库,配合LinkYoYo DevOps整体解决方案。

Jenkins :

用于做代码的自动发布,配合LinkYoYo DevOps整体解决方案。

LDAP:

AD用户信息接入。

监控:

基于prometheus和Zabbix双内核的整体监控解决方案,快速部署并监控容器与业务系统。

LinkYoYo基于K8S的系统平台整体解决方案示意图

日志收集架构

1. 使用AWS提供的ElasticSearch,支持备份、高可用和存储容量扩展,同时集成了Kibana组件。

2. 每个Docker宿主机启动filebeat容器进行log4j和pods输出日志的收集。

3. 使用sidecar模式,增加辅助容器来进行日志的收集。

4. 根据实际项目测试情况目前业务日志主要由两部分组成,一部分为输出到终端上的日志(也就是能通过rancher界面查看到的日志),一部分为输出到docker指定路径的日志。输出到指定终端的日志需要使用宿主机上配置的filebeat容器进行日志收集,输出到指定路径的日志需要通过sidecar模式抓取日志。

基于Prometheus 和Zabbix 双内核的监控解决方案

主机基础监控内容(zabbix):

CPUPerc CPU 使用率。

MemUsage 内存使用量。

NetIO 网络 I/O。

BlockIO 磁盘 I/O。

MemPerc 内存使用率

业务监控(zabbix):

通过rancher-api和ElasticSearch监控指定项目是否可以正常提供服务

容器的监控:

在rancher集群中安装prometheus来监控各个pod的运行情况及资源使用情况