序言

    物以类聚,人以群分,朋友越来越少了,不知道是一种悲哀还是一种凄凉。


    你会给自己打什么标签呢?毕竟咱的猪脑子装不下那么多事。

标签化

    容器的每个部分都可以打标签,也就是我们经常谈到的label,例如容器container有标签,镜像image有标签,网络network有标签,存储卷volume有标签,最可恶的居然是dockerd也有标签。


    为什么需要打标签?


    在容器的使用中,打不打标签其实也无所谓,很多的调度算法是根据标签来的,例如k8s里面的pod,打上一个标签,从而指定pod的数量,从而实现流量的负载均衡;例如k8s里面的node,打上不同的标签,从而可以实现根据node的selector来实现定向调度。


    在使用dockerfile编译镜像的时候,可以直接加入label,也可以多个,例如根据环境分类,根据版本分类,根据区域分类,根据架构分类。(镜像的标签)


    在运行时也能直接加入label,从而可以将容器划分为各种环境的,例如生产环境为production。(容器的标签)

    volume也是可以打上标签的。

    网络也是可以打上标签的。

风言风语

    世界上有两种事情不能嘲笑,一个是出身,一个是梦想,除非。。。你真忍不住。


    打标签毫无意义,那为什么要瞎逼逼。因为。。。有更好玩的。

    在看一眼运行时的状态:

    你会看出什么?


    容器最主要存在的目的就是提供服务,那么在镜像中就写上健康检查的一些东西,从而更容易使用容器,当你发现容器有问题,可以直接使用label来对服务进行健康检查。


    容器的设计分为两方面,一个是服务的提供,涉及到健康检查,一个则是容器里面的服务,那么就必然存在一个问题,容器的日志怎么来清理。


    如果在容器里面运行了两个服务,一个是nginx,一个是java程序,那么必然会涉及到两方面的清理日志,crond了解一下,nginx使用logrotate,而java使用自身的日志切割即可。


    容器是有大小的,也就是无论是计算,存储,从而在进行设定的时候,需要对容器指定cpu和内存的大小(cpusets和memory),而对于存储,则可以分为两个部分来进行限制,一个是根目录的大小限制,根据projectid来限制,而对于其他的分区,则根据物理机的磁盘大小共享使用限制。


    容器的监控怎么办,其实也是使用定时任务,写一个脚本来监控容器里面的服务,从而定时发送相关的数据到告警系统中,告警系统进行响应规则的定义,然后决定是否告警。

    

    容器启动的时候,我们总是使用一个启动脚本,或者叫做entrypoint,emmm,最简单的方式莫过于一个tail -f,反正也是一直持续的在运行中,然后在中间拉起服务,例如首先拉起nginx,然后拉起java程序。


    再谈谈容器的调度,容器是运行在物理机上的,为了实现容灾效果,从而必然需要将容器分散到docker的集群之中,根据什么来进行调度?这是个好问题。在虚拟机中存在将vm打散的概念,其实容器也是一样的,也需要打散,形神俱散。


    在虚拟机中存在一个overcommit也就是超卖的概念,在容器中其实一样存在,一个56核心的cpu上能运行多少个容器?指定运行容器的core是哪些?超卖比例是多少,emmm,相当复杂,所以当出现cpu的load告警的时候,哗啦啦,一片容器全部告警,一粒老鼠屎,坏了一锅粥,想找出来,略难,告警聚合了解一下。


    

    这个锅我背定了,耶稣也拦不住,我说的。


    技术居然变成了舒适区,不可思议


    你怕挨打吗?蒙着眼睛假装看不见问题,心不见眼不烦。


    认真而不较真也是很不错的。


©著作权归作者所有:来自51CTO博客作者mb5fdb131956bf3的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 实现多文件上传案例 以及 MVC与依赖注入的原理
  2. PHP文件上传实战案例和MVC依赖注入和服务容器
  3. Facade技术和composer入门基础知识
  4. 一文教您通过 Docker 快速搭建各种测试环境(Mysql, Redis, ES, M
  5. Mybatis系列全解(八):Mybatis的9大动态SQL标签你知道几个?提前致女神
  6. PHP多文件上传案和MVC简单案例以及MVC的依赖注入和服务容器的原
  7. 多文件上传、MVC依赖注入与服务容器
  8. 多文件上传-MVC依赖注入-容器管理依赖对象实现
  9. 除了 Docker,我们还有哪些选择?

随机推荐

  1. 老板又出难题,气得我写了个自动化软件
  2. 详解增强算术赋值:“-=”操作是怎么实现的
  3. Python 为什么没有 void 关键字?
  4. Android(安卓)camera预览流程
  5. Pandas高端操作:10行代码解决用户游览日志
  6. Python到底是强类型语言,还是弱类型语言?
  7. Python 之父为什么嫌弃 lambda 匿名函数?
  8. Python 中的数字到底是什么?
  9. 监控流媒体服务器连接监控摄像头的配置方
  10. 在剪贴板上读取/写入数据,太方便了吧!