KubeCon + CloudNativeCon NA 2017 第二天上午共有 6 场精彩的 Keynote 演讲,从多个角度展现了 Kubernetes 和 CNCF 项目在技术开放性、企业应用、社区开发方面的魅力。
戳“阅读原文”,看现场直播!
KubeCon Opening Keynote
Cool V.S. Boring
Opening Keynote:《Project Update》
一反首日 Project Updates 逐个介绍 CNCF 项目的严肃气氛,来自 Google 的 Kelsey Hightower 的 Keynote 主要由现场演示的方式呈现。
Kelsey Hightower 在 Keynote
Kelsey 开场就声称 Kubernetes core is boring & kubectl is the new ssh。但在云原生的时代,理应有更多的工具和服务构建在 Kubernetes 之上,开发者并不需要直接接触 Kubectl。
Kelsey 尝试展现一个 Hello World KubeCon 应用的演进过程 DEMO,围绕 Git Commit / Github PR / GCE Build Pipeline 进行,对应编程、调试、QA、审核、自动化部署等常见的开发流程。
整个演示中 Kelsey 先后两次以“近乎炫技”的方式,通过 Google 语音助手来操控 GKE 部署集群及扩容服务,赢得现场观众多次的掌声回应。
Keynote:《Red Hat: Making Containers Boring (again) 》
无独有偶,第三场来自于 Red Hat 架构师 Clayton Coleman 的 Keynote 也提到了“Boring”这个关键字。Clayton 介绍了在维护 Openshift Online 这一超大型公有 Kubernetes 服务的过程中,Red Hat 遇到了许多意想不到的技术挑战,包括大量用户带来的 Events 爆炸、Secrets 过量等,工程师团队研究解决后都贡献回上游,促进项目演进以达到“Make Infrastructure Boring & Make User Happy”的目标。
Red Hat: Clayton Coleman 在 Keynote
自 Kubernetes 起,CNCF 的开源项目被众多企业广泛使用的同时,也受到全世界大量开发者的贡献和回馈,这是云原生时代的企业成功和技术发展能和谐共进的一大特色。
3
Kubernetes 与企业应用
Keynote:《The Road Ahead on the Kubernetes Journey》
Heptio 是今年 KubeCon 上一家耀眼的明星企业,Heptio CEO,同时也是 Kubernetes co-founder 之一的 Craig McLuckie,在 Keynote 中发起了对 Kubernetes 未来发展方向的思考。
Heptio: Craig McLuckie 在 Keynote
他同时指出了 Kubernetes 三个未来的方向:
-
Dev productivity matters
-
Multi cloud is coming
-
Enterprise is complicated
HBO:“权利的游戏”下的巨大挑战
Keynote:《Pushing the Limits of Kubernetes with Game of Thrones》
来自 HBO 的工程师 Illya Chekrygin 非常接地气地介绍了“权利的游戏”这一大热 IP 对 Live Streaming 服务带来的巨大挑战。
HBO: Illya Chekrygin 在 Keynote
机器资源利用率过低、VM 扩缩容太慢,从而导致尖峰流量难以支撑是流量型互联网服务的难题之一,同时也是容器化和 Kubernetes 试图用技术方式而非运维人力去解决的典型场景。
工程师 Zihao Yu 介绍了 HBO 如何一步步优化 Kubernetes + AWS 的方案,包括集群的部署管理、网络方案的选择、DNS 性能优化等,从而成功落地,抗住 GoT 第七季直播线上压力的过程。
HBO: Zihao Yu 在 Keynote
Kubernetes 的技术进步
另两场 Keynote 以技术安利为主。
Keynote:《Progress Toward Zero Trust Kubernetes Networks》
来自 Tigera 的 Spike Curtis 主要介绍了非可靠的网络环境下如何用 Calico Policy 来强化网络层面的的安全性。
Keynote:《Kubernetes Secret Superpower》
来自 Google 的 Chen Goldberg 介绍了 Kubernetes 架构中 Automation 的机制及强大的扩展性,期间 Anthony Yeh 则在现场演示了如何利用这一机制的支撑,以区区百行 JavaScript 代码实现 StatefulSet 控制器的大部分功能。
资料可以参考:
https://github.com/GoogleCloudPlatform/kube-metacontroller/tree/master/examples/catset
KubeCon:Session
Heptio: Building a Cluster Management API Using Kubicorn
来自 Heptio 的 Kris Nova 和 Google 的 Robert Bailey 给大家带来了 Kubernetes 在集群维护方面的 API 介绍和基于 Kubicorn 的现场演示。
Kris Nova 是 wg-cluster-api 的负责人之一,也是 Kubicorn 工具的作者。Kris 图示介绍了在 Kubernetes 集群维护和使用过程中 API 的逻辑层次;Cluster Managment API 介于 1、2 层中间,其中 Machine API 是底层资源(机器)的抽象,实现层面将与各大云平台打对接;控制平面 API 包括 Apiserver 等组件的维护功能,实现上交由 Kubeadmin 完成。
Kris Nova
Robert Bailey 是 SIG Cluster Lifecycle 的 Co-leader。Robert 先讲解了 Machine 的声明式定义(笔者注:与 Kubernetes Node 不同,Machine Spec 将更关注宿主机本身的配置、供应商配置以及集群外组件如 Kubelet, Container Runtime 版本等信息),然后利用 Kubicorn 工具来演示 Cluster Managment API 能达到的效果,包括机器的添加,自动加入集群,扩容,Kubernetes 版本升级等。
Robert Bailey
Q & A 阶段,Robert 介绍到未来 Cluster Managment 控制服务将可以在 Kubernetes 集群外独立运行,以完成最初的 Kubernetes 集群的创建过程,然后再将集群管理的能力交给 Kubernetes 控制平面以实现自举管理。
Robert Bailey 和 Kris Nova
Kubernetes 集群的安装和升级,长久以来都是集群运维头痛的问题,也催生了众多的工具。SIG Cluster Lifecycle 推动的统一 API 将为未来 Kubernetes 的集群管理打下良好的基础。从上游的规划来看,在 1.10,Machine API 将迎来 v1alpha1。
资料参考:
-
https://github.com/kubernetes/kube-deploy/tree/master/cluster-api
-
https://github.com/pipejakob/kube-deploy/tree/03026680effd14433ae7ed6045cc820496392d7d/cluster-api/machines-api
Joe Beda:The Road to More Usable Kubernetes
Joe Beda 在他的 Session:《如何让 Kubernetes 变得更可用》的开篇,就提到了 “开源的困境”。即如果开源软件在可用性上做得不好,那么就会给供应商提供很多机会,在易用性上进行提升并体现其产品价值;但同时,不好的易用性也会阻碍社区的发展和技术的流程。如果易用性做得好,那么社区就会发展得更好,但相应的留给供应商的机会和空间就少很多。
那么 Kubernetes 的可用性如何?从 Joe 和笔者的角度来看,Kubernetes 的可用性在今天也还不尽如人意。
接下来, Joe 开始着重分享自己对 Kubernetes 易用性的思考。根据用户体验学术界方法论 Persona,我们可以将 Kubernetes 的用户群体分为四类:
-
集群和服务运维者(Cluster/Service Ops);
-
用户应用运维者(Application Ops);
-
集群和服务开发者(Cluster/Service Dev);
-
用户应用开发者(Application Dev);
如下图所示,并针对这四类人分析了其使用场景和易用性关注点:
-
Cluster/Service Ops:集群和服务运维者更关注如何能更方便地部署、管理集群和服务;此外,可以将各类管理工具、运维工具与环境和 Kubernetes 有机地整合起来。
-
Application Ops:用户应用运维人员更关注如何定义和部署应用,并管理应用的生命周期;当前社区里有很多插件旨在对用户应用运维人员提供便利,例如 Helm 等。
-
Cluster/Service Dev:集群和服务的开发者不光包括社区 Kubernetes 开源贡献者,还包括对 Kubernetes 核心功能进行扩展的插件贡献者。这类群里关注的是如何能让自己的软件、插件更加的通用,形成标准,这就需要 Conformance(合规性)的保证。
-
Application Dev:对于用户应用开发者来说,如何让他们从传统的开发流程迁移到基于容器和 Kubernetes 的新流程则是最大的挑战;同时从传统的应用架构迁移到云原生、微服务的架构也需要开发者思维理念上的转变。
Joe 为听众带来了 Heptio 在解决上述问题的一个尝试 —— Ksonnet。Ksonet 是一个用来简化 Kubernetes 部署的工具。Ksonnet 借鉴了 Borgcfg(Google 内部容器系统 Borg 的管理工具),来提高 Kubernetes 的可用性。有兴趣的读者可以关注 Ksonet(https://ksonnet.io/)来获取更多细节。
从笔者的角度来看,Kubernetes 的易用性确实是当前无法被企业采用的最大痛点;结合今年 6 月「K8sMeetup 中国社区」所做的中国容器用户调研来看,Kubernetes 的易用性确实是中国用户的最大心头之痛。
如下图 “用户最不喜欢的 Kubernetes 的原因” 所示,陡峭的学习曲线排名遥遥领先:
毫无疑问,Kubernetes 社区会加速解决 Kubernetes 的易用性问题,让其能够更广泛地被用户采用。那同时如何解决 Joe 提出的 “开源的困境” 问题,让基于 Kubernetes 的厂商能够有自己的商业空间呢?笔者认为,真正的商业价值不仅仅局限于对 Kubernetes 自身的易用性增强,让它可以被更容易的部署和管理;真正的商业价值应该在于如何利用 Kubernetes 所提供的“算力”和能力,来构建上层的业务系统和附加功能。
Panel: Kubernetes, Cloud Native and the Public Cloud
CNCF 推广软件云原生化的忠旨是容器化封装、动态调度管理、微服务化。CNCF 管理的开源项目也逐渐增多,并在企业中落地应用。
AWS、Google、阿里云、IBM、Oracle 是当今最受欢迎的 5 家公有厂商。今天,这几家公司的专家聚集在圆桌,畅谈云原生项目在各自企业的应用。类似 Containerd、Rocket、Prometheus、Kubernetes、Istio 等项目已在这些公司的生产环境中落地或在研发部门的机器学习、微服务改造等预研课题中实践,大大优化了企业的生产流程提升了效率,云原生是今后软件的发展方向。未来将会有越来越多的项目加入 CNCF。
原文地址:http://mp.weixin.qq.com/s/iAhDDlv5qMsjLX3UBgsp4g