管中窥豹:Docker生态系统一览

转自点融黑帮


导语


容器化是一种便携、可控的分发和部署应用方式。为了达成此目标,需要将应用封装进一个相对标准化的、轻量的独立环境内,即容器。当下许多组织设计的应用和服务,都力求实现一个轻易部署的分布式系统,即扩展方便又得有一定故障承受能力。Docker作为一个追求将容器化过程变得更加简单、标准化的平台,辅一出现就被广泛接纳,也深深影响了应用服务的设计实现与管理。随即,一大波的工具也围绕着这个平台,如雨后春笋般兴起。



Docker和容器化 

Docker是目前最广泛使用的容器化技术。相比别家的容器技术,Docker更为人熟知的原因是它管理简便以及和其他开源项目的紧密集成合作。Docker是目前最广泛使用的容器化技术。相比别家的容器技术,Docker更为人熟知的原因是它管理简便以及和其他开源项目的紧密集成合作。 


服务发现和全局配置存储

服务发现是全局中得一个重要组件,旨在使容器的部署具备可扩展性和灵活性。服务发现这一设计,使容器在没有管理员的干预下感知识别不同的环境。容器也可以找到与之交互的组件的连接信息,并且它们可以自己注册,以便其他工具知道它们是可用的。 


这类组件通常是部署在一个集群中的各个节点上,以简单的键-值对存储。通常来说,键-值对存储的形式都会提供HTTP API来取值、设置。有些也会提供加密存储、访问控制等提升安全的机制。服务发现需要承担的职责: 

  • 允许应用获取与它自身所依赖的服务连接信息

  • 允许服务注册自身的连接信息,以供依赖方获取访问

  • 提供一个可全局访问的资源来存储任意配置信息

  • 存储集群成员相关的信息,以供其他集群组件调用


目前常见的服务发现软件有: 

  1. consul–基于raft协议实现,自带的DNS查询服务和跨数据中心级别的服务发现比较亮眼。

  2. etcd–同样基于raft协议实现,出自CoreOS项目,因为Docker的缘故而红火起来,经历了几个大版本后,也还算可以。

  3. zookeeper–基于更复杂的zab协议实现,优点是使用广泛、适应场景也多;缺点是相对上述两者,略显臃肿。


网络工具

应用容器化引领了微服务式的设计与实现。虽然这使得管理和扩展更简单,但它对各个微服务间的网络及其应用自身的健壮性,提出了更高要求的可靠性保障。

 

Docker自身提供了几种基础的网络模型,用于满足容器与容器间、容器与主机间的通讯。

 

Docker的原生网络模型提供了2种容器间通讯机制。第一种是暴露一个容器端口,然后映射到主机上的一个高位端口。这中访问方式满足了绝大部分的场景。另一种是建立 link 来促使容器间通讯,建立 link 最直观的效果就是:主动创建 link 的容器会hosts生成一条关于被链接容器的解析记录。

 

基础的网络模型适用于单机模型,或者紧密协作的环境。因此Docker生态系统早已迸发出了大量改进网络能力的项目,其中大部分项目都希望提供一些额外的功能:

  • 引入Overlay网络,简化、统一多主机间的地址空间管理

  • 引入虚拟私有网络,提供不同区域间的安全通讯

  • 根据单个主机或单个应用来分配子网

  • 创建可通讯的macvlan接口

  • 自定义配置容器的网络栈资源


这里也介绍几个有关扩展Docker网络的项目:

docker 1.8起,开始提供原生的overlay网络功能,不过1.8时还是试验阶段,目前最新的1.9版本已正式标注 production-ready:

  • fannel–overlay网络,每个主机有个独立的子网

  • weave–overlay网络,所有容器在一个网络

  •  pipework–更像是一个利用linux原生网络能力来发挥自定义能力的高级工具套件


调度、集群管理和编排

另一个构建容器集群环境的重要组件,就是调度器;在容器的世界里,调度器(或者某个子部件)需要承担一个特有的职责:编排 


编排概念的由来 

应用容器化的过程,势必会被细分成若干个功能模块,一个功能模块封装成一个容器;当我们再需要提供一个完整的服务的时候,后端需要就是一组容器了。如何将这组容器在单机或多主机上,以正确地先后顺序部署起来,就是编排的过程。 


回过头来说下调度器,这些调度器主要是为了完成在管理员既定规则下的操作,这些既定规则可能是: 

  • 根据一个指定的容器,调度新容器至同一主机,或不同主机

  • 通过标签或者metadata来匹配选择主机,并将容器调度至此

  • 根据资源使用率来调度


目前一些比较热门的集群调度工具: 

  1. swarm–Docker原生的集群服务管理调度器,支持良好,使用案例不多

  2. mesos–立意高远,针对数据中心级别的调度

  3. kubernetes–出身名门(谷歌),自带光环(师从Brog),目前开发节奏很快,被寄予厚望


总结

至截稿之时,笔者仅以自己的经验和眼界,从最主要的三方面:服务发现、网络、集群调度管理,讲述了我自身的所见所闻所感。Docker生态系统的发展之迅猛,当然绝不止于此,Docker发展过程中,众多的优秀工具或废弃、或吞并、或历久弥新,笔者此刻凝思回想,也是唏嘘不已。

 

Docker的发展历程,借用一句矫情的话:唯一不变就是变化。本文仅为一家之言,欢迎高手赐教、指正;如果你还是徘徊在Docker大门外的新人,那就不要光憧憬了,赶紧去官网下个toolbox玩一玩,体验下吧~


以下是对提供的参考资料的总结,按照要求结构化多个要点分条输出: 4G/5G无线网络优化与网规案例分析: NSA站点下终端掉4G问题:部分用户反馈NSA终端频繁掉4G,主要因终端主动发起SCGfail导致。分析显示,在信号较好的环境下,终端可能因节能、过热保护等原因主动释放连接。解决方案建议终端侧进行分析处理,尝试关闭节电开关等。 RSSI算法识别天馈遮挡:通过计算RSSI平均值及差值识别天馈遮挡,差值大于3dB则认定有遮挡。不同设备分组规则不同,如64T和32T。此方法可有效帮助现场人员识别因环境变化引起的网络问题。 5G 160M组网小区CA不生效:某5G站点开启100M+60M CA功能后,测试发现UE无法正常使用CA功能。问题原因在于CA频点集标识配置错误,修正后测试正常。 5G网络优化与策略: CCE映射方式优化:针对诺基亚站点覆盖农村区域,通过优化CCE资源映射方式(交织、非交织),提升RRC连接建立成功率和无线接通率。非交织方式相比交织方式有显著提升。 5G AAU两扇区组网:与三扇区组网相比,AAU两扇区组网在RSRP、SINR、下载速率和上传速率上表现不同,需根据具体场景选择适合的组网方式。 5G语音解决方案:包括沿用4G语音解决方案、EPS Fallback方案和VoNR方案。不同方案适用于不同的5G组网策略,如NSA和SA,并影响语音连续性和网络覆盖。 4G网络优化与资源利用: 4G室分设备利旧:面对4G网络投资压减与资源需求矛盾,提出利旧多维度调优策略,包括资源整合、统筹调配既有资源,以满足新增需求和提质增效。 宏站RRU设备1托N射灯:针对5G深度覆盖需求,研究使用宏站AAU结合1托N射灯方案,快速便捷地开通5G站点,提升深度覆盖能力。 基站与流程管理: 爱立信LTE基站邻区添加流程:未提供具体内容,但通常涉及邻区规划、参数配置、测试验证等步骤,以确保基站间顺畅切换和覆盖连续性。 网络规划与策略: 新高铁跨海大桥覆盖方案试点:虽未提供详细内容,但可推测涉及高铁跨海大桥区域的4G/5G网络覆盖规划,需考虑信号穿透、移动性管理、网络容量等因素。 总结: 提供的参考资料涵盖了4G/5G无线网络优化、网规案例分析、网络优化策略、资源利用、基站管理等多个方面。 通过具体案例分析,展示了无线网络优化中的常见问题及解决方案,如NSA终端掉4G、RSSI识别天馈遮挡、CA不生效等。 强调了5G网络优化与策略的重要性,包括CCE映射方式优化、5G语音解决方案、AAU扇区组网选择等。 提出了4G网络优化与资源利用的策略,如室分设备利旧、宏站RRU设备1托N射灯等。 基站与流程管理方面,提到了爱立信LTE基站邻区添加流程,但未给出具体细节。 新高铁跨海大桥覆盖方案试点展示了特殊场景下的网络规划需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值