Docker Kubernetes 技术沙龙第三期干货分享 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
Tenxcloud10
V2EX    云计算

Docker Kubernetes 技术沙龙第三期干货分享

  •  
  •   Tenxcloud10 2016-03-15 16:53:43 +08:00 2536 次点击
    这是一个创建于 3546 天前的主题,其中的信息可能已经有所发展或是发生改变。

    3 月 12 日下午,由时速云主办的 Docker&Kubernetes 技术沙龙在中关村 E 世界如期举行。本次沙龙的分享主题更加多样化,从容器云生态到 kubernetes 外服服务接入,细节处探索 Auto Scaling 的机制和实现,多元化到 docker 中一键部署 OpenStack 。

    alt 文本

    以下是干货内容总结:

    ( PPT 链接[点击此处即可下载 PPT])

    1 、深入浅出容器云(黄启功)

    分享嘉宾:黄启功,时速云创始人,云计算忠实拥趸,一直致力于打造更好的云。他的分享涉及到容器云的方方面面,也涵盖了从 BlueMix 、 CloudFoundry 到 docker 和 kubernetes 等工具的变迁。

    黄启功的分享是从以下四个方面展开的:

    ● 容器云初探:容器云恰当地解决了传统 PaaS 难以解决的业务诉求,这包括快速上线、 故障探测和发现、故障隔离、水平扩展等,而解决的法宝正是持续交付、微服务、 DevOps 等理念的落地。基于容器的解决方案(如 Docker 和 Kubernetes )践行了这些理念,容器云的诸多特征(高效虚拟化、微服务支持等),及其在应用生命周期中的功能(服务发现、负载均衡、灰度升级等),满足了当前 IT 的业务诉求。

    alt 文本

    ● 利用容器云打造持续交付体系:这个环节通过一个 demo 展示了从代码 commit 、自动化构建到应用部署的整个流程,充分体现了容器云给持续交付带来的革命性改变。

    ● 容器编排:基于 Kubernetes 的容器云支持 Pod 和 Stack 两个级别的编排。 Pod 级别的编排是指在同一个 Pod 中运行多个实现功能互补的 container ,每个 container 实现简单的功能,多个 container 通过 localhost 方式互相访问,其优势是功能解耦和分离,利于持续升级和部署,缺点是 Pod 中的多个容器只能运行在同一个宿主机上; Stack 级别的编排支持更为复杂的大型应用,应用内的多个微服务可以分布在不同的机器上,通过环境变量和 REST API 相互访问。

    ● 构建私有 Docker 主机集群:集群可以充分整合物理机、虚拟机或云主机,将它们构建成一个私有 PaaS 平台,对开发者和运维提供一套一致的管理面板,以管理容器、镜像、监控和日志报警等。

    Q&A :

    1.对于跨数据中心的集群,比如 AWS 和阿里云上都有机器,会不会有网络延迟?

    答:公有云的网络状况不一致,性能损耗比较明显,不建议跨 datacenter

    2.什么样的互联网企业比较适合使用 kubernetes ?

    答:首先,使用 windows 的企业不适合;由于容器云是面向应用的平台, kubernetes 是核心工具,因此绝大多数企业都可以使用。

    2.Kubernetes 集成外部服务实践(柴宗三)

    分享嘉宾:柴宗三,亚信大数据云平台部高级研发工程师。目前负责亚信 DataFoundry 大数据 PaaS 云平台。他分享了亚信在将后端服务( backend service )接入 kubernetes 的实践,他的 demo 里包含了诸多实战经验,令现场的小伙伴们大饱眼福。

    Kubernetes 不同组件的交互是异步的,不同组件的功能解耦做得很好。 APIServer 的功能是接收外部的 rest 请求,读写 etcd 中的数据,但不做具体的操作; kube-controller-manager 监听 Replication Controller 的变化,并创建对应的 Pod ,使其达到期望的状态; kube-scheduler 根据节点的资源和限制条件将 pod 分配给特定的 kubelet ; kubelet 作为 daemon 运行在每个 slave 节点上,用来维持节点上的容器,保持与 APIServer 、 etcd 的数据同步。

    对于 backend service ,具有持久化、插件化、服务化的特点。对于 PaaS 平台的 backend service ,尤其要应对需求多样、按需分配等需求,开箱即用也已成为标配。为了满足这些需求, backend service 必须遵循一些通用的规范,亚信的 PaaS 平台采用了 CloudFoundry 的规范(如下)。通过 REST API 的方式,极大方便了 Resource Register 、 Controller Handler 、 Api Router 、 CLI 的实现。在后面的 demo 中,柴宗三演示了如何 CloudFoundry 规范与 kubernetes 的完美结合(沙龙现场观众福利)。

    alt 文本

    Q&A:

    1.Kubernetes 的 rolling-update 是否允许修改镜像和容器中的环境变量?

    答: rolling-update 允许修改 replicas 的值,也可以修改镜像和容器运行时环境变量。

    3.Kubernetes Graceful Rolling-update (杭晨)

    分享嘉宾:杭晨,滴滴出行云基础架构技术专家,擅长互联网高性能分布式服务架构,熟悉各类分布式存储,目前专注于对 docker&kubernetes 在优化滴滴开发,发布流程的应用。就如何保证服务升级过程中也能 always available 话题,杭晨进行了深入的分享。他的分享包括三个方面:正常升级的弊端、 GraceUpdate 的优势、 kubernetes 中如何实现 GraceUpdate 。

    通常服务升级是这样的: 1. 关闭旧的 server ; 2.替换二进制文件(或更新产品代码、替换 war 包等); 3. 启动新的 server 。这样的升级会带来两个问题: 1. 现存的连接会断开,直接影响用户体验; 2. 新的 server 启动之前,服务是 unavailable 的(真空期)。为了避免这样的问题,所以出现了 GraceUpdate 。

    GraceUpdate 定义如下: while updating a socket based server (including stop old, start new), graceful updating make sure no connection will be dropped or terminated 。对于 go 语言实现的 server , facebook 推出了名为 grace 的库( https://github.com/facebookgo/grace ), 可以便捷地实现 graceful terminate 和 restart 。

    alt 文本

    kubernetes 针对 graceful update 提供了更高层次的支持,包括针对 Pod 的 rolling update 和 horizontal pods autoscaler ,对于 rolling-update 的策略,这里不做详细说明,大家可以参考 ppt 。

    4.Kolla :在 Docker 中运行 OpenStack (张雷)

    分享嘉宾:张雷, OpenStack Kolla 项目核心开发人员,早期 OpenStack 从业者,基于 OpenStack 的私有云平台解决方案和二次开发,并策划和实施过多个私有云平台的搭建。该 topic 主要讲解 Kolla 的工作原理,日志,权限,安全,配置文件等的处理方式,以及使用 Docker 过程中踩过的坑及解决方案。张雷的分享分为下面五个模块,下面我们会一一介绍。

    alt 文本

    此次沙龙的参与者主要在容器方面,对 OpenStack 可能不太熟悉,这里会详细说一下。 OpenStack 是 AWS 的开源版,它是一个云操作系统,可以管理数据中心的计算、存储和网络资源池,所有的管理操作都可以通过一个 web 终端来进行,它旨在成为一个易于实现、可扩展的、可同时满足公有云和私有云需求的开源云平台。 OpenStack 由 Swift 、 Nova 、 KeyStone 、 Cinder 等核心组件构成,另外还有众多的插件支持。

    alt 文本

    由于 OpenStack 本身比较复杂,运维困难,催生了一批部署工具, Kolla 便是其中之一。 Kolla 相对于其他部署工具更为简单,它基于 docker ,可直接提供可重用的组件,采用 ansible 进行配置管理,简化了运维管理。

    Kolla 在实现过程中使用了 docker ,考虑到了不可变基础设施、 docker 镜像的可移植性、秒计启动和强大的社区支持;缺点也比较明显,如难以审计等,但远少于优点。 Kolla 的架构如下,对 kolla 感兴趣的话,可以查看 github ( https://github.com/openstack/kolla/), 也欢迎贡献代码。之后,张雷使用 kolla 在 5min 内搭建了一个 openstack ,也将使用过程中遇到的坑分享出来(详情可下载 ppt )。

    alt 文本

    Q&A:

    1.关于相互依赖的容器, restartPolicy 设置为 always 会出现一些问题,这块有没有比较优雅的解决方案?

    答:绝大多数情况下容器退出是由于内存、磁盘或网络问题,都是需要人工排查的。我们这边仍然将 restartPolicy 设置为 always ,出现问题人工排查解决问题以后,检查存在依赖关系的应用是否正常运行。

    通过第三期 Docker 与 Kubernetes 沙龙的分享,我们看到了对 kubernetes 特性的深层次解读,也看到了它与传统工具和服务的集成。 Kubernetes 1.2 即将推出,届时将会有更多的特性发布,性能上和支持的集群规模也会有飞跃的提升,让我们拭目以待。

    沙龙最后透露: 3 月 30 日,时速云“有‘容’乃大”新品发布会将在海润艾丽华举行,真诚欢迎各位参加。

    点击 立即报名 即可参加

    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2589 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 08:19 PVG 16:19 LAX 00:19 JFK 03:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86