阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

对容器中应用程序的配置和日志的认知

483次阅读
没有评论

共计 2074 个字符,预计需要花费 6 分钟才能阅读完成。

近日在迁移应用到 Docker 的过程中,纠结于配置和日志处理,通过查阅网友们的对此的讨论、官方镜像的处理手法,结合实践,对此有所认知,欢迎斧正。以下内容,均是基于测试 / 生产环境,不涉及开发环境。

关于配置

通过几个开源项目(Wordpress,MySQL)的官方镜像处理方式,来窥探一下关于配置参数的处理手法。

  • 通过“环境”传递配置参数到容器。
  • 容器内通过 ENTRYPOINT 指令配置的脚本接收环境变量,并按格式写入配置文件。
  • ENTRYPOINT 脚本通过 exec 指令启动 CMD 指令。

观点

  • “环境”是传递数据到容器内应用程序的常规手法,但数据项太多时,会给维护造成困扰。
  • 通过“ENTRYPOINT”指令配置的脚本,完成配置的初始化是一个合理的选择。
  • 配 置初始化。实践中,配置项往往规模较大,被集中管理(zookeeper/etcd),需要区分部署的环境(测试 / 生产)。在此场景下,将“部署环境标 识”通过“环境变量”传递到容器,在容器启动时,通过 entrypoint 脚本根据“环境标识”和“应用程序配置项需求”(应用程序一般会有关于配置的 schema 文件,描述了需要哪些配置项),从配置管理设施中获取配置数据,完成配置的初始化后,启动应用程序。
  • 配置项变更。配置项的变更一般涉及两项:如何捕获这些更新(watch 配置管理设施,由谁来 watch?),以及如何让新配置生效(一般意味着进程轮换,如 nginx;或者 php 项目中清理 apc 缓存)。在 Docker 场景下,应当使用能与编排工具通信的设施负责捕获变更,并将变更转换为与镜像相关,提交给编排工具,由编排工具启动新容器轮换掉老容器,完成 配置生效。那些企图在容器内部捕获配置变更,然后使配置生效的处理手法,不符合 Docker 的设计精神,而且往往复杂度高

 

关于日志

《使用 Fluentd 管理 Docker 日志》一文对 Docker 日志的讨论,受益匪浅。

观点:

  • 从当前实际来看,通过挂载 volume 到容器,应用程序将日志写入 volume,然后通过宿主机上的 agent 实现收集,更具可操作性,与主机模型的日志处理几乎一致。当然,正如作者所言,这需要应用程序将日志写入 volume。如果我们将日志视作业务数据,将 Volume 作为存储的话,那这也合乎情理

 

对于 web 服务器来说,访问日志是其生产的内容,对于日志分析系统来说,访问日志就是业务数据。

  • Docker 收集容器内应用程序的 stdout、stderr,并存储为日志,只是一种实现。但它并不是(至少现在不是)为大规模日志(如 web 服务器)而设计,如果这种机制不满足需求,我们就需要辩证的使用它。
  • 如 果仍坚持使用 Docker 的日志机制(通过 stdout,stderr 收集应用程序日志),在制定 rotate 机制时,可考虑容器的生命周期,或许以日志 的轮转周期,启动新容器替换旧容器更符合 docker 场景。但这对于会产生大量日志的应用来说,也会带来问题:以什么样的频率轮换?
  • 如果使用 Docker 的日志机制,在收集时可考虑动态的方案。以 Flume 机制为例:主机上监听 Docker 事件,以容器 label 区分业务类型,当监听到 start 事件时,动态生成配置文件,并启动 agent。日志数据通过 docker logs -f 容器 ID 获取。当监听到 stop 事件,在日志采集完后,清理掉 agent 及相关配置。这里有几个问题:由于日志采集是异步的,如何认定日志已经采集完?另外编排系统在何时删除掉被停止的容器,当容器停止被删除后,该容器的所有数据会被清理,如何协调它们?这引入了复杂度。

 

小结

容器的启用和销毁的成本低,在生命周期管理上,往往通过容器的轮换来处理一些原来需要精细化控制的细节,如果照搬主机的处理模式,会很难受,且格格不入。

Docker 安装应用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm 

Ubuntu 14.04 安装 Docker  http://www.linuxidc.com/linux/2014-08/105656.htm 

Ubuntu 使用 VNC 运行基于 Docker 的桌面系统  http://www.linuxidc.com/Linux/2015-08/121170.htm

阿里云 CentOS 6.5 模板上安装 Docker http://www.linuxidc.com/Linux/2014-11/109107.htm 

Ubuntu 15.04 下安装 Docker  http://www.linuxidc.com/Linux/2015-07/120444.htm 

在 Ubuntu Trusty 14.04 (LTS) (64-bit)安装 Docker http://www.linuxidc.com/Linux/2014-10/108184.htm 

Docker 的详细介绍:请点这里
Docker 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-09/122633.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2074字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7960858
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

  300 元就能买到的 ” 小钢炮 ”?惠普 7L 四盘位小主机解析 最近...
开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

  开源 MoneyPrinterTurbo 利用 AI 大模型,一键生成高清短视频! 在短视频内容...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...