Kubernetes 的网络、存储和运行时该如何处理?

引言

“ 系统正在变得越发复杂(sophisticated)。”

--Bill Joy, BSD 主要设计者、vi 作者、SUN 联合创始人

技术的发展,总是解决了现有的问题,进而引入新的问题,继而继续解决,如此周而复始,Docker 公司在2013年成立,将容器的概念迅速扩散。正如当年集装箱点燃了全球的货运革命一样,当时的船运公司使用这种大型的金属集装箱替代了过去纷杂的货运装置,以适应在卡车、船舶、铁路三者之间匹配。装什么无所谓,重要的是装载本身有了标准。和现实世界的集装箱运输一样,Linux 容器创建了对于应用最为基本的封装,使之可以运行在任何的基础设施平台上。一时之间,容器风靡世界。到今天为止,几乎所有的企业都有意愿将他们的应用跑在容器之上,即使是他们自己的内部的服务器,也同样在考虑。尽管容器仅仅是管理现代的应用程序的一种更好的方式,因为它们通常被分割成无数的组件(微服务),但仍然需要能够在服务器之间进行容易的移植和访问。

技术的本质就是这样,通常是解决了一个问题,而又引入新的问题,如此反复。Linux 容器也不例外,它虽然封装的很好,但是它给 DevOps 团队带来前所未有的挑战,它在应用程序的移植、部署的活动中增加了更多动态的东西。为此,Kubernetes 应时而生。

同样 Kubernetes 也没有脱离这个技术本质,容器的细粒度,将过去传统意义上每台主机一个 IP 地址,每个服务有一个或多个端口的困境,甚至是物理机虚拟化的情景彻底打破,相应的是流量的暴增,命名空间、服务发现、流量监控一时之间让管理员和开发者头痛不已。谈到存储,容器的快速,对于持久化的存储提出了极大的挑战,分布式存储、对象存储成为了配合云原生的必备,而这又反过来会影响到性能、扩展性、灵活性等诸多设计,让架构师、开发者在众多的选项中不断寻找平衡之道。哦,对了,还有如何将用户的代码和运行环境设定在可控的范围,也是云厂商运营和系统管理之间的平衡,因为达到这个目的的同时,还要保证用户对环境无感知,而不是觉得自己受限,安全与易用/性能之间的桥梁该如何架设。

KubeCon + CloudNativeCon + Open Source Summit(原LC3)中国,来自华为、阿里巴巴、VMWare、Red Hat 等众多云原生、Kubernetes 一线专家,将帮助大家解答这个困惑,以及他们提出的新的挑战。(这是一个无限的循环递归)。

分论坛主题介绍

网络

网络是一个非常大的话题,从 5G 到 SDN,从边缘计算到电信服务商,网络无处不在。Kubernetes 下我们以一位工程师的视野切入,那基本上就是 Kubernetes 在现在数据中心中、当下的软件架构中,如何实现网络的有效利用和高效管理,才是工程师们考虑的最大问题。接下来介绍的演讲,按照惯例我们从公司来介绍,他们分别是:

Jun Du – 华为 高级软件工程师

华为,Jun Du,带来的是全新的 Kubernetes 网络兴趣小组的前沿思考和实现,sig-network 正在引领社区开发一项新特性 - 拓扑感知服务路由。这项特性所有者将详细介绍设计和实施拓扑感知服务路由的挑战,并描述这项特性的未来发展方向,包括测试版和最终版标准。想知道什么是拓扑感知吗?不妨允许笔者卖个关子,你只有到现场才能真正了解。

北京优帆科技有限公司的 Xuetao Song 和 Fang Du 将带来Porter - 面向裸机 Kubernetes 的开源负载均衡器:在 Kubernetes 集群中可以使用“LoadBalancer”类型服务将后端工作负载暴露在外部。云厂商通常为 Kubernetes 提供云 LB 插件,但这需要将集群部署在特定 IaaS 平台上。然而,许多企业用户通常都将 Kubernetes 集群部署在裸机上,尤其是用于生产时。而且对于本地裸机集群,Kubernetes 不提供 LB 实施。Porter 是一个开源项目,可完美地解决此类问题。在本次会议中,Xuetao Song 和 Fang Du 将重点介绍可帮助为裸机 Kubernetes 提供服务和 EIP 管理的网络技术。

VMware ,作为 VMware 专业的网络工程师 Ron Fuller,会讲解特定于 K8s 的数据中心网络基础知识。演讲主题将涵盖 OSI 系统模型、第 2 层概念、第3 层概念、网络地址转换 (NAT) 和 IP 寻址。将专注于帮助开发人员了解其应用运行所依赖的底层连接基础设施。Ron Fuller 坦言,与会者在会议结束后,将能够更好地向基础设施团队阐明他们的需求,并了解基础设施团队需要做些什么来满足他们的需求。

Fangyuan Li – VMware 软件工程师

VMware,软件工程师的 Fangyuan Li,将从最简单的 VIP iptable 实施开始。接下来,稍提难度,逐步升高,从客户端到服务器,从内核到用户空间,从 IP 到 HTTP,进行更深入的探讨。在演讲中会大体介绍下并演示如何在普通 Bash 脚本中使用不同工具。基于上述内容,我们将通过在 K8s(clusterIP / nodePort)、Docker(路由网格)、Envoy 和许多 CNI 插件中比较它们进行总结。

Sridhar Gaddam - Red Hat 首席软件工程师

Aswin Suryanarayanan - Red Hat 高级软件工程师

IBM 即将完成对 RedHat 的收购,而 IBM 的战略就是混合云,对于 Red Hat 的 OpenShift 来讲,混合云就是重点处理的利基市场,那么 Red Hat 又是如何处理复杂多变的混合云的呢?来自印度的工程师 Sridhar Gaddam 和 Aswin Suryanarayanan 将带来的是在多集群下的网络连接解决方法:1.CloudAgnostic:适用于本地和公共云。2.CNI Agnostic:适用于任何 kubernetes CNI 网络插件。3.隧道管理和状态检查:包括连接两个或多个集群并定期执行状态检查的机制。4.服务发现和服务可访问性:将集群 IP 服务提供给其他集群。5.集群间网络策略:提供明确允许/拒绝流量的机制。企业相关人员不妨考虑一下。

那么,KubeCon + CloudNativeCon 的网络论坛都有哪些精彩演讲呢?

内容更新请参阅 https://kccncosschn19chi.sched.com 选择:KC+CNC – 网络。

存储

Kubernetes 可支持基于 CPU 和内存资源的计划工作负载,并具有节点亲合性、Pod 亲和性和反亲合性。这对于无状态工作负载非常有效。而对于有状态工作负载,数据持久的存放在哪里合适?该怎么实现?传统的关系型数据库如何适应云原生?大数据的处理呢?传统架构下的集群文件系统如何向现代分布式文件系统转向?如果读者你带着这些问题的话,那么本次大会关于 Kubernetes 存储方面的经验分享可能就是你最最需要的内容。

Jiten Vaidya – PlanetScale CEO

Vitess,这是一款关系型数据库 MySQL 在云原生下的实现,由 Google 开发,用于 YouTube 等重要产品,现在为 CNCF 下重要的孵化项目,在这个主题下有两个分享,分别是来自京东的 xuhaihua,他将为大家带来京东这两年是如何实现 Vitess 的,从经济成本、技术实现、运营问题等各个环节,全方位的介绍一款开源项目如何在大型电商网站的利用和发展的。另外一个关于该主题的分享则来自 PlanetScale 公司,也是该公司的一号人物 - 首席执行官 Jiten Vaidya 为大家进行分享,他将为各位介绍数据库规划失败的案例。Jiten 将在现场进行演示,向大家展示如何使用 Vitess 设计高可用性,从而能够提前防备、避免灾难,并从灾难性故障中恢复。

Xiaoyu Yao – Cloudera 首席软件工程师

Sammi Chen – 腾讯云 软件工程师

大数据,重数据的业务,使用 Kubernetes 来处理,尽管提高了调度和计算,但是数据的存储和转移着实让人头疼,本次会议的分享在这方面的内容也有两块,首先是由 Cloudera 的 Xiaoyu Yao 和腾讯的 Sammi Chen 合作演讲的一个话题:“利用数据位置,从而实现在云原生环境中拥抱大数据工作负载“,二位将会比较 Kubernetes 主流容器挂载存储的数据位置支持。然后会介绍 Apache Hadoop Ozone 的网络拓扑支持,以及如何通过 Ozone CSI 插件将其用作位置感知容器挂载存储,以实现更出色的工作负载调度。最后是使用在 K8s 上运行的 Spark 来演示使用 Apache Hadoop Ozone 进行数据位置感知调度的好处。第二个关于和大数据处理分享的两位工程师均来自腾讯,他们分别是 Apache 成员堵俊平和他的同事 Yi Chen ,带来的主题是和 Hadoop HDFS 相关,具体内容是介绍腾讯云使用的 CSI 兼容 HDFS 插件的设计和架构。然后介绍,分享大数据工作负载 Spark 在 K8s 上运行时如何使用 HDFS CSI 插件访问 HDFS 数据的最佳实践和经验。最后,则介绍使用 TPC-DS 基准套件对 K8s 上运行的 Spark(支持HDFS)和在 YARN 运行的 Spark(支持 HDFS)之间的性能进行比较分析。

Jeff Layton – Red Hat 首席软件工程师

传统存储的变迁: 当仁不让的是来自 RedHat 的 Patrick Donnelly 和 Jeff Layton,Rook 是专门针对 Kubernetes 开发的存储的工具,用以自动部署存储并将存储挂载到 Pod。Rook 不断进行升级改造,以集成开源存储平台 Ceph 与 Kubernetes。Ceph 是当今广泛使用的分布式存储系统,可为应用提供统一的文件、块和对象接口。二位工程师将为与会者介绍目前已完成的 Ceph Nautilus 版本内容 —— 以动态创建高可用和可扩展的 NFS 服务器集群,这些集群可抛出 Ceph 文件系统 (CephFS),以用于 Kubernetes 或作为独立设备使用。CephFS 为应用提供了友好的编程接口,可用于创建共享卷。Ceph 和 Rook 可为每个卷协同管理动态部署 NFS-Ganesha Pod 集群的细节,并最大限度地降低操作员或用户的参与。

是不是都非常的诱人啊?解决的都是你遇到而未来得及进一步做的大问题。

那么,KubeCon + CloudNativeCon 的存储论坛都有哪些精彩演讲呢?

内容更新请参阅 https://kccncosschn19chi.sched.com 选择:KC+CNC – 存储。

运行时

在今年3月份,伯克利分校发表了一篇关于 Serverless 的论文,让人们眼前一亮,恍若回到了十年前,伯克利也是就云计算发表了一篇影响深远的论文,其中有提到随着容器沙箱的成熟,是 Serverless 进一步被广泛应用的重要基础设施支持,容器天生是为了应用而生的,几乎没有任何的隔离,安全性向来被众多敏感的工程师所诟病,AWS 的 Firecracker 开源的时候,因为其卓越的 Lambda 产品而被受到热捧。那么 Kubernetes 支持下的运行时环境又是怎样一篇天地了呢?且让笔者为你娓娓道来。

倪鹏飞 – 微软 高级软件工程师

追本溯源是工程师的天性,是成为卓越高手的必由之路,业界大名鼎鼎的倪鹏飞,在极客时间开设专栏课程的网红明星,来为大家讲讲容器运行时的演化历程:Kubernetes 正成为在生产中构建和管理云原生应用的标准。毫无疑问,容器运行时是 Kubernetes 成功的关键。在本次演讲中,倪鹏飞老师就容器运行时接口 (CRI) 和各种容器运行时提供了一份详细的指南。解答:为什么有这么多容器运行时?各自有何优缺点?如何为 Kubernetes 集群选择和自定义容器运行时?容器运行时未来会怎样?

Xu Wang - Hyper.sh 高级工程师

在了解了容器运行时之后,我们再来了解下当前的实际实现,由 Hyper.sh 的天才程序员兼首席技术官王旭和他的同事 Fupan Li 带来关于 Kata、gVisor 的定量分析,展示对 Kata 而言合理的 CPU/网络性能、文件系统存储的性能损失、Kata 的内存消耗以及 gVisor 的系统调用开销等。以及使用更新的测试套件对新推出的技术进行的基准测试,并帮助用户了解它们是否已生产就绪。

没错,gVisor 是 Google 开发的,和 Kubernetes 同门,是一种独特的开源沙箱运行时,支持以较高的隔离程度和低开销在容器中运行未修改的应用。Kata 是从 Hyper 演变而来的开源项目,二者之间究竟哪个更加适合运行时?不妨来看看工程师的实践证明:

Ian Lewis – Google 开发者倡导者

gVisor,来自 Google 的 Ian Lewis,将会与大家探讨 gVisor 的容器安全模型以及容器沙箱化的用例。在深入剖析 gVisor 架构及其与基于虚拟机的沙箱的区别之前,他会先为听众介绍各种沙箱化方法及其各自的利弊,另外,还会通过演示一个采用 gVisor 和 Kubernetes 的最小化的 Serverless 平台,来总结分享的所有内容。

Jian Huang – 华为 架构师

Kata 实践一: 华为的工程师 ChengLi 和 JianHuang 带来的是华为云利用kata实现 Serverless 服务的实践,据介绍,他俩将会展示 Kata 容器如何适应华为云的架构,以及 Kata 容器在生产中的性能和隔离测试结果。但作为一个较新的开源项目,Kata 容器还存在一些问题,例如异构硬件支持薄弱,存储和网络性能需要改进等。他俩还将分享如何解决这些问题。

Yifei Zhang – 阿里巴巴 高级工程师

Kata 实践二: 阿里巴巴,Yifei Zhang 和 Huamin Tang,二位带来的亦是 Kata 应用于 Serverless 服务的情景,在阿里云,使用的是 ECS 裸机实例 + Kubernetes 作为 Serverkless 的基础设施,且将 Kata 容器用作容器运行时。Yifei Zhang 和 Huamin Tang 将谈论阿里云从使用 Kubernetes 解决裸机云多租户难题并实现高性能中所汲取的经验教训,多租户 Kubernetes 的设计和架构,如何使用 VPC 网络进行隔离,以及如何改进采用直连网络的 Kata 容器的性能以实现原生性能,例如使用 RunC 和 qcow2 图形驱动程序而非使用 9pfs 改进 I/O。

运行时,是平衡乖张的容器应用和安全运行不信任的代码之间完美的平衡之作,随着 Serverless 的兴起,这势必是很多人所关心的话题。

那么,KubeCon + CloudNativeCon 的运行时论坛都有哪些精彩演讲呢?

内容更新请参阅 https://kccncosschn19chi.sched.com 选择:KC+CNC – 运行时。

总结

300+ 的演讲者分享,任谁也无法照顾到所有,我们会尽最大努力帮助你梳理,根据你的兴趣来找到对应的分享嘉宾,让你有所成长、有所收获。

具体的技术术语,必须放在具体的环境中,才能理解其真实的涵义,围绕 Kubernetes 所发展起来的全新生态和技术世界,技术术语开始延伸、演变甚至和原来的意思想去甚远,网络也不再是国内计算机相关教育所使用的教材下网络术语,存储更是超越了当代学生的想象力。至于运行时,干脆就是给写代码的人一个任性的“沙箱“,笔者突然想到了 Richard Dawkins 和 Kevin Kelly 的观点,也就是说技术本身、文化本身也是向自然界一样演化的,而这个过程是逐步的,慢慢的,超越想象力的。就引用理查德道金斯先生的一句话来结束本文的冒险之旅吧.

“The solution often turns out more beautiful than the puzzle.”

------Richard Dawkins 生物学家《自私的基因》《盲眼的钟表匠》等科普畅销书作者

不出意料,本次大会的售票异常火爆,出于会场的安全考虑,参加大会的人数是被严格限制的,会务组将根据注册的人数提前关闭超过限额的售票通道,所以千万不要等到通道被关闭后再追悔莫及,现在的票价还有优惠。

本文分享自微信公众号 - CNCF(lf_cncf)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT大咖说

20个月测试,40次迭代,这款谷歌Kubernetes自动化开源工具通用了

近日,谷歌宣布开源工具Skaffold全面上市,该工具可以使开发人员更轻松地使用Kuberentes。目前该项目在Github上开源,已经超过8000个星。

6800
来自专栏达达前端

前端零基础入门:页面结构层HTML(3)

<div>标签 是一个区块容器标记,<div></div>之间是一个容器,可以包含段落,表格,图片等各种HTML元素。

6200
来自专栏前端自习课

【CSS】410- 关于CSS盒子模型、BFC及其应用

把所有 HTML 元素都看作是一个 盒子(Box), 这个盒子包着一层又一层, 这就是盒模型.

4720
来自专栏Lambda

一篇文章学会Docke

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

6200
来自专栏happyJared

Docker Build Ship and Run

在 Docker 官网,挂着如下的字样:Docker - Build, Ship, and Run Any App, Anywhere。那么 Build, Sh...

8300
来自专栏京程一灯

完全搞懂 Javascript 中的... [每日前端夜话0xE3]

曾几何时,ES6/ES2015 对 Javascript 语言进行了重大升级。它引入了许多不同的新功能。其中之一就是我们可以用在任何兼容容器(对象、数组、字符串...

7120
来自专栏后端Coder

容器化技术docker架构体系

参考:https://www.runoob.com/docker/docker-architecture.html

6110
来自专栏Hadoop实操

0729-6.3.0-如何修改CDSW1.6中Docker服务的默认网关

CDSW服务Docker组件启动时自动创建docker0网桥,其默认IP为172.17.0.1。该网段的网关与公司的网关冲突,导致服务器上挂载的公共盘不能正常使...

7020
来自专栏后端Coder

容器化技术docker~redis

其实之前在学习java环境的时候,不可避免的就是如何在linux环境上面配置一些开发需要的环境,比如说tomcat这样的web应用服务器,将自己开发的项目放入里...

7410
来自专栏java思维导图

Spring Boot 这么火,常用注解和原理都给你整理好了!

查看源码可发现,@SpringBootApplication是一个复合注解,包含了@SpringBootConfiguration,@EnableAutoCon...

12130

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励