[.com原稿]2018年5月18-19日,由座谈会主办的全球软件与运维技术峰会在北京召开。来自全球企业的技术精英齐聚北京,共话软件技术前沿,共同探索运维技术新边界。本次大会,除了星光熠熠的主论坛外,12个分论坛各具特色,聚焦最受关注的容器、AI、区块链、大数据、高并发、物联网等前沿技术领域.其中,开源与容器技术分论坛聚焦开源容器的构建,结合实际场景,旨在帮助开发者了解国内外相关公司的容器应用案例,并在选型过程中和实施。实践经验与总结思考。知乎容器平台演进与大数据融合实践探索容器技术融合。张复兴表示,知乎容器平台的演进分为四个阶段:从Mesos到Kubernetes,从单集群到混合云架构,从滚动部署到部署发布分离,从无状态到有状态。知乎计算平台负责人张复兴由于容器平台是基础组件中的基础组件,每一次掉坑都可能是生产环境的一次重大失败。张复兴与观众分享了容器平台遇到的几个坑:K8S事件:在一个风雨交加的夜晚,K8SAPIServer无法访问并开始报警,整个K8S集群失控。后来才知道是事件引起的。是K8S集群变更事件记录,默认会写入etcd。etcd的TTL是通过遍历实现的,效率比较低。随着集群规模的增加,etcd集群最终崩溃了。查明原因后,通过K8S配置将事件隔离到一个独立的etcd集群中。同时,这个etcd集群只使用一个节点,去除了raft的开销,每晚清空这个节点来代替TTL机制。K8SEviction:在Kubernetes1.5之前的版本中,ControllerManager会删除Node上无法访问的Pod。如果APIserver挂掉一段时间后恢复,ControllerManager会删除所有的Pod实例。1.5版本后,可以配置unhealthy-zone-threshold,防止集群Pod在大规模节点异常时被意外驱逐。·Docker容器端口泄露:DockerDaemon从分配一个端口到记录这个端口的过程不是原子的。如果DockerDaemon中途退出,在重启恢复过程中忽略分配的端口,会导致容器端口让路。·TCP连接重置:TCP连接重置将在DockerNAT网络模式下发生。主要原因是系统默认的配置对于乱序的网络包过于严格。对于公共网络等较差的网络环境,当乱序数据包超过TCP窗口时,连接将被重置。张复兴总结道,从实践经验来看,基本思路是业务侧隔离集群,使用K8S进行多集群部署和管理,使用Docker进行资源隔离和监控,使用Docker实现更细粒度的资源分配。在管理运维方面,践行DevOps理念,让平台更专注于工具开发本身,而不是局限于琐碎的运维操作。展望未来,知乎将尝试使用K8S实现更多组件的集群隔离、更细粒度的资源分配和进程级资源监控,从而更好地在生产环境中进行管理和维护,提高资源利用率。一方面为业务提供更好的PaaS平台服务,最终实现数据中心资源统一交给K8S进行分配调度的DCOS。容器技术在雪球的实践雪球网高级运维开发架构师董明鑫的演讲,主要介绍了容器技术在雪球测试和生产环境中的使用,以及网络模式、负载均衡、日志采集、监控系统等相关组件的Evolution迭代。我们从一开始雪球引入容器技术的原因出发,讨论了各种方案的优缺点,并向大家展示了雪球是如何一点一滴改变基础设施,逐步发展和完善流程的,展示了容器技术对企业的影响通过数据稳定。性能和生产力的巨大改进。董明鑫,***雪球网运维开发架构师随着业务的发展,受不同业务影响的概率比较大。雪秋希望商家不要互相打扰。发现容器技术其实更适合,因为容器本身的镜像比较小,更灵活,启动速度也更快。相比虚拟机,更适合雪球的业务发展。经过比较,雪秋最终选择了Docker。在运行过程中,雪球发现使用Docker主要需要解决三个问题:网络连接、多节点服务部署更新、优秀的监控解决方案。雪球希望做一个实现容器物理机管理、容器管理、IP、MAC地址管理和进程控制的平台。经过一段时间的使用,雪球发现,自研的容器管理平台虽然实现了流程控制和权限控制,固化了代码和环境,但让多版本镜像管理更加方便,部署效率和伸缩效率都得到了提升.但进程控制逻辑与机器管理、网络管理耦合严重,无法实现自动选择物理机和自动分配容器IP,也没有自愈功能。于是,雪球引入了Swarm,做了一个三层的部署模型。后期雪秋又对这个进行了优化。自助流程解放运维工作,引入优化调度方案,支持多机房多云环境。***,雪球介绍Kubernetes,每个项目可能有多个互联网数据中心(IDC),每个IDC有不同的集群(Cluster),给每个项目分配一个命名空间(Namespace),有自己的Deployment。由于Kubernetes本身有比较完善的解决方案,Snowball已经有很多解决方案,比如日志、负载均衡、监控等。如何以更低的成本引入Kubernetes,让开发尽可能做到无意识,最好的办法就是让合约兼容。最后,雪球只使用了Kubernetes的Deployment和HPA。Kubernetes网络走得更远。灵雀云K8S***专家刘梦欣的演讲围绕三个部分展开:Kubernetes网络模型、Kubernetes网络模型问题和网络改进。他表示,Kubernetes网络模型在功能、性能、稳定性等方面存在一些问题。灵雀云通过固定IP、IP虚拟服务器(IPVirtualServer,简称IPVS)和自研Ingress对其进行了改进。灵雀云K8S***专家刘萌新,首先在功能上,由于Kubernetes网络模型中IP不固定,无法精细管控IP资源,无法使用基于IP的监控和基于IP的安全策略。另外,一些IP-discoveredService的部署难度很大,给运维人员增加了很多难度。为了解决这个问题,灵雀云将IP作为重要资源单独管理。灵雀云自研的CNIIPAM插件,实现了IP导入和IP权限管理等功能,可以在Kubernetes中进行网段的增删改查和网段的细粒度配置。其次,在性能方面,由于Kubernetes最开始是基于Iptables的,Iptables并没有增量更新的功能。更新一条规则需要全盘刷新,更新时间长。这段时间内,交通会受到不同程度的影响;iptablesrulestringsOK,没想到Kubernetes会在一台机器上有很多条规则。流量需要通过所有的规则进行匹配,匹配后进行转发。否则会消耗大量的时间、CPN和内存,尤其是在大规模的情况下。对性能的影响非常明显。刘萌新指出,Kubernetes升级到1.8或1.9版本后,安装时可以选择IPVS模式。行的匹配会通过一定的规则由hashmap映射到对应的规则上,在大规模情况下性能不会线性下降。***,在稳定性方面,Kubernetes网络缺少健康检查功能,NodePort阻塞直接访问Pod,上层健康检查失败,网络分区和网络问题导致的转发异常时有发生。灵雀云采用自研的OpenRestyIngress,方便新增功能,可监控多端口。官方的NginxIngress只能监控80和43端口,但是很多客户需要监控更多的端口,比如按端口区分的服务。灵雀云对此做了一些改动,自研的Ingress支持多端口功能。分布式镜像仓库技术解析高级容器技术开发者肖德士的演讲题目是《分布式镜像仓库技术实战解析》,主要涉及OCI分发规范分析、镜像分发的现状与痛点、业界对镜像分发技术的实战分析与经验总结。肖德士表示,容器镜像仓库一直以单机版的形式存在于社区。Harbor,国内最先进的开源镜像仓库管理系统,在架构上只能提供简单的前端HA或复制模式,无法实现真正??的分布式应用实现。资深容器技术开发者肖德士表示,OCI是OpenContainerConsortium的缩写,是行业容器标准的行业联盟。目前已经发布了以下容器标准:命令行工具,runtime-spec是符合容器行业标准的容器运行时标准,image-spec是符合容器行业标准的容器镜像格式标准,distribution-spec是符合容器行业标准的容器分发标准。distribution-spec目前还没有正式发布1.0,基本上围绕着镜像仓库(DockerRegistryHTTPAPIV2)的标准作为基础规范。定义范围包括:Namespace-orientedURILayout、PUSH/PULLregistryserverforV2imagemanifestformat、ResumablelayerPUSHsupport、V2Clientlibraryimplementation等。关于镜像分发的现状和痛点,他表示DockerRegistry缺少很多功能,这将导致企业无法实施和满足企业的任何生产需求。镜像分发的目的是需要一个仓库,就是一个可以打包、存储、分发容器的仓库:DockerHub是公有云实现,没有技术架构可以参考;适应分布式环境下复杂的图像分发需求;DockerRegistry2.0的开源代码分发没有考虑企业特性,只能作为类库使用。针对这些痛点,业界在图片分发技术上进行了大量的实践探索:腾讯的做法是快速分发,将500M图片以更快的速度分发到200个节点,比之前的分发时间快91%Docker的本机方法。%;部署FID、Kubernetes等上层系统,无需修改任何代码和逻辑,即可享受P2P加速。目前,Harbor在国内被广泛使用。比如Vmware推出的Harbor就是一个基于DockerDistribution的企业级Registry服务。Harbor是一个开源项目,提供管理界面,支持分组,可以添加一些企业功能。***,肖德士总结,P2P技术可以提高图片分发效率,单层体积越大,分发效率越高。镜像存储可以使用共享层模式来减少存储冗余。高可用性解决方案仍然需要大量的生产实践,分发标准也在不断发展。以上内容是记者根据WOT2018全球软件与运维技术峰会《开源与容器技术》分论坛发言内容整理而成。更多WOT资讯请关注51cto.com。【原创稿件,合作网站转载请注明原作者和出处为.com】
