个人服务容器化和基础监控容器化
1.前景
自己比较喜欢玩机器,目前手上有4台常用的机器如下,平常跑一些自己写的小程序还有博客和代理都在上面。
1
1核1G
2
1核2G
3
1核1G
4
2核4G
每次拿到一台新的vps环境安装就是个大问题,上学的时候那会都是完全手动敲命令装,jdk maven Nginx git Python3各种麻烦,尤其是机器格式化了重装很累,后来学着写自动化shell脚本,每次拿到新机器直接上去运行脚本等待安装,但是脚本编写麻烦维护更麻烦,并且软件直接运行在vpn上很容易污染机器。
最近这些年最热的一个词就是容器化,所以我也抽双11结束的时间实现了自己服务“小集群”的容器化。
2. 容器化方案
容器选择最常用的docker,对于容器的管理和编排有三种方案,Kubernetes, Mesos, Swarm 这三种我都在本地的VM上跑过,在工作中接触最多的是k8s,
我曾经尝试过在上述几台机器上搭建一个k8s集群,但后来放弃了,机器配置确实太低,并且结合我目前的使用场景来看,更需要一种轻量级的容器管理方案。
最后可以使用简单的webui管理docker就可以,经过了解有两款还不错的工具,shipyard和portainer。
Github地址如下:
shipyard:https://github.com/shipyard/shipyard
portainer:https://github.com/portainer/portainer
shipyard ui精简而且使用可以的是早在2016年已经停止维护了,作者没有时间和精力维护但是也没人愿意接手所以被废弃,在此向作者ehazlett致敬。
shipyard试用之后确实有很多bug,所以选择了portainer作为后续管理docker的工具。
3. 实施
现在目前自己在使用的服务分类,目前有 Python的爬出采集一些信息,还有kakfa,小的flink集群,MySQL服务和代理服务。
由于代理的特殊性,只能选择aws Tokyo节点,爬虫项目可以放在比较低配的1核1G机器上,kafka放在1核2G的机器上,小型的flink集群的MySQL服务放在2核4G的机器上。
3.1 把以上服务打成docker镜像,推到dockerhub(目前没有使用自己的私有镜像库)
顺便分享一个精简版的flink1.9.1镜像:https://hub.docker.com/repository/docker/peizhouyu/flink1.9.1
3.2 vps机器重装系统,使用部署脚本统一安装docker 18.0.9,并在aws上启动portainer容器,配置portainer连接到各个机器的docker daemon。
3.3 讲上述已经打成镜像的服务拉到对应容器并启动起来。
至此基本容器化已经完成。
4. 基础监控容器化
之前在使用“物理机“部署的时候做过监控服务,当时的监控方案是在master机器上起Prometheus 和 Grafana,在各个节点上用服务启动 node_exporter
用来监控各个机器的整体信息。
现在已经实现将上述Prometheus监控体现全部容器化,左右一个docker container在各个节点上运行。
以上是 个人服务容器化和基础监控容器化 的全部内容, 来源链接: utcz.com/z/510740.html