从 0 开始学微服务
胡忠想
微博技术专家
64643 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 43 讲
开篇词 (1讲)
结束语 (1讲)
从 0 开始学微服务
15
15
1.0x
00:00/00:00
登录|注册

27 | 微服务容器化运维:容器调度和服务编排

基于注册中心的服务发现
基于Nginx的服务发现
binpack策略
spread策略
硬件过滤
存活过滤
业界容器调度方案的优缺点和适用场景
挑战与替换升级
选择合适的解决方案
自动扩缩容
服务发现
服务依赖
调度策略
主机过滤
思考题
总结
服务编排
容器调度
微服务容器运维平台

该思维导图由 AI 生成,仅供参考

专栏上一期,我给你讲解了容器运维平台的两个关键组成:镜像仓库和资源调度。复习一下,镜像仓库解决的是 Docker 镜像存储和访问的问题,资源调度决定了 Docker 镜像可以分发到哪些机器上的问题。这两个问题解决后,你就该考虑如何在集群中创建容器,也就是容器如何调度的问题;容器创建后如何运作才能对外提供服务,也就是服务如何编排的问题。下面我们就一起看看容器调度和服务编排都是如何解决的

容器调度

容器调度的问题,说的是现在集群里有一批可用的物理机或者虚拟机,当服务需要发布的时候,该选择哪些机器部署容器的问题。
比如集群里只有 10 台机器,并且已经有 5 台机器运行着其他容器,剩余 5 台机器空闲着,如果此时有一个服务要发布,但只需要 3 台机器就行了,这个时候可以靠运维人为的从 5 台空闲的机器中选取 3 台机器,然后把服务的 Docker 镜像下载下来,再启动 Docker 容器服务就算完成发布。但如果集群机器的规模扩大到几十台或者上百台时,要发布的服务也有几十个或者上百个的时候,由于每个服务对容器的要求,以及每台机器上正在运行的容器情况变得很复杂,就不太可能靠人肉运维了。
这时就需要有专门的容器调度系统了,为此也诞生了不少基于 Docker 的容器调度系统,比如 Docker 原生的调度系统Swarm、Mesosphere 出品的Mesos,以及 Google 开源的大名鼎鼎的Kubernetes。下面我就结合微博的实践经验,给你讲讲容器调度要解决哪些问题。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

微服务容器运维平台的关键技术包括容器调度和服务编排。在容器调度方面,主机过滤和调度策略解决了容器创建和主机选择的问题,而Swarm等容器调度系统应用广泛。服务编排则关注服务依赖、服务发现和自动扩缩容,以确保微服务之间的关联、新容器节点的加入以及根据实际运行状况自动调整容器数量。选择合适的解决方案时,需根据实际需求而非理论上的最佳选择,考虑到Kubernetes的成熟性和复杂性,以及Docker原生解决方案的简单性和功能限制。微服务容器化带来的挑战在于原有运维设施如何支持容器的运维,需要逐步替换升级。文章提出了思考题,邀请读者讨论Swarm、Mesos和Kubernetes的优缺点及适用业务场景。整体而言,本文深入浅出地介绍了微服务容器运维平台的关键技术,为读者快速了解容器调度和服务编排提供了有益的参考。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学微服务》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(10)

  • 最新
  • 精选
  • 有铭
    关于扩容,我觉得写的还是太简单的,很多细节没说,比如,你扩容的程序只涉及到计算程序吗,计算程序扩容是很容易的,但是数据部门呢,缓存部分顶不住了要加缓存,重新分片的逻辑是什么样的。数据库顶不住了咋办?
    2018-10-23
    38
  • mgxian
    不管什么场景直接选kubernetes绝对不会错 其他两个基本不用考虑 k8s 已经是业界标准 扩展很方便 唯一的缺点是需要理解k8s的一套概念 但是这对技术人来说不是事儿
    2018-10-23
    2
    18
  • Stalary
    cpu超过50%就自动扩容,那如果是代码逻辑错误引起的呢?这个时候会有相应的策略吗
    2018-10-23
    16
  • 饭粒
    很多东西不熟悉,甚至第一次听说,我觉得思考题应该在每下一期给出个参考想法,不熟悉的我们也看看。
    2019-03-13
    8
  • 俯瞰风景.
    微服务容器化后需要进行容器化运维,容器化运维的四个主要部分是: 1、镜像仓库 2、资源调度 3、容器调度 4、服务编排 镜像仓库是用于管理、同步、部署镜像资源的; 资源调度是用于合理地分配物理服务器资源的; 容器调度是用于合理在物理服务器上分配容器的; 服务编排是用于统一管理自动扩缩容、对依赖服务进行打包部署、自动注册服务的。
    2021-10-08
    3
  • 没实际玩过,不清楚这些,听得我一脑子浆糊,我的理解,如果没有DOCKER等容器技术,微服务还是微服务吧!有了这些只是让微服务的发布、运维、扩缩容简单容易了。如果我的理解正确,那应该讲明白,容器技术解决这些痛点的思路和原理吧?
    2019-06-16
    3
  • ylw66
    基于Ngnix的服务发现,也是要使用Consule,感觉也是类似于注册中心。不知道理解对不对?
    2019-01-03
    1
  • 亚林
    都没用过,😢
    2019-06-12
  • l y n
    老师,我还是不能理解微服务自己的注册发现机制和容器编排的服务注册机制之间的关系和不同,能不能解释一下。比如我微服务架构用了Eureka做为注册中心,容器编排用K8s,这之间怎么实现服务发现?
    2019-04-27
  • 徐冰
    老师,资源调度获取的是一组机器码?比如过是分配到哪一集群中哪些机器吗?麻烦老师回答下
    2018-11-09
收起评论
显示
设置
留言
10
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部