近日,来自支流科技的工程师张晋涛被添加为 Kubernetes ingress-nginx 项目的 reviewer,这也是首位来自中国的 Kubernetes Ingress Controller reviewer,与此同时,张晋涛也经过投票提名成为 Apache APISIX committer。nginx
如下是 OSCHINA 对张晋涛的专访:git
关于 Kubernetes Ingress Controllergithub
Ingress 是 Kubernetes 名称或规则的定义,是用于将外部 HTTP(S)流量路由到服务(Service)的规则集合,也是 Kubernetes 中很是重要的外部流量入口。Ingress Controller 是将 Kubernetes 集群状态同步到网关的组件的统称,它并不是 Kubernetes 自带组件。在众多 Ingress Controller 组件中,Kubernetes ingress-nginx 是当前使用最为普遍的 Ingress Controller,也是由 Kubernetes 官方维护的 Ingress Controller 组件之一。docker
提名 PR 中说道,张晋涛为 Kubernetes ingress-nginx 审查 PR 作了很是多的帮助。张晋涛最初是一名 Web 开发者,作先后端开发,2014 年接触 Docker 后,认定容器技术将会成为主流,便选择深钻容器技术。 以后,张晋涛陆续创做了《Kubernetes 上手实践》和 《Docker 核心知识必知必会》等专栏,并在 2019 年开始持续运营「K8S 生态周报」。同时他也是 Apache APISIX committer, 以及 Containerd、Docker、Helm、Kubernetes、KIND 等众多开源项目 contributor。 他称本身是一个热爱开源、喜欢折腾的工程师。他认为,参与开源贡献和开源社区活动,主要仍是应该从兴趣出发。对于云原生的发展,他认为 Kubernetes 是云原生的基石,将来的三五年内仍然会是最主要的技术方向,而且正在向 IoT 等领域扩展。此外,近两年张晋涛也开始注重研究 Kubernetes 安全性问题。apache
问:请简单介绍下本身吧?后端
张晋涛:api
我是张晋涛,是一个热爱开源,喜欢折腾的工程师。目前是 Apache APISIX committer, Kubernetes ingress-nginx reviewer 。在 Docker 和 Kubernetes 相关的不少项目都贡献过代码。我也是个一岁孩子的父亲。安全
问:恭喜您成为 Kubernetes ingress-nginx 项目的 reviewer,能够给读者们介绍下 reviewer 须要作些什么吗?项目选择 reviewer 的流程是怎样的?通常注重考察什么?微信
张晋涛:markdown
reviewer 除了对项目进行代码贡献外,最主要就是去 review 其余贡献者的代码了,以保证项目的代码质量和正确性。与此同时,也须要去跑测试,来验证 PR 是否符合预期等。 至于项目选择 reviewer 的流程,这个大前提是对项目要有持续的贡献,以及很是熟悉该项目。此外还要求至少是 5 个 PR 的主要 reviewer,以及合并过至少 20 个 实质性的 PR 。经过项目的 approver 进行提名,且没有其余人反对,就能够经过 PR 把名字写在项目的 OWNERS 文件中了。Kubernetes 相关项目的 reviewer 详细职责和选择流程等可参考此文档 github.com/kubernetes/… 刚才也提到了,可否把握项目代码的质量和正确性这个是基础,也是大前提。在此基础上会重点考察贡献度和对项目的熟悉程度。
问:您也是目前 Kubernetes Ingress Controller 开源项目惟一一位来自中国的 reviewer。能够聊聊 Kubernetes Ingress Controller 在 Kubernetes 生态中的地位和影响吗?有没有什么“过来人”的建议能够给到国内开发者?
张晋涛: Kubernetes Ingress Controller 是 Kubernetes 社区的 Ingress Controller 实现,也是当前使用最为普遍的 Ingress Controller 。不少公司或者产品都在使用它做为 Kubernetes 集群的流量入口。目前在 GitHub 上有 10.5K 的 star 。 Kubernetes Ingress Controller 这个项目在各类生产环境下久经考验,代码质量和功能都是很不错的推荐你们能够关注和学习下。我在此项目中也看到过不少来自国内的开发者,说明你们对此项目也都是有所关注的,但愿你们可以持续贡献。
问:您运营「K8S 生态周报」已经两年多了,有没有总结出一些规律,好比你们更关注什么样的信息?
张晋涛:
自我 2019 年开始运营「K8S 生态周报」的这两年多的时间里,发现你们更关注 Kubernetes 自身的一些特性变动或者漏洞之类的,这也是我在 「K8S 生态周报」的每一篇中都有一个部分介绍“上游进展”的缘由。 此外,你们对于一些新项目,或者新的提案也比较感兴趣,会给我留言,或者加我微信来讨论。
问:在「K8S 生态周报」内容的选取上有什么偏好或者原则吗?
张晋涛:
在每篇「K8S 生态周报」的开头,我都有写:「K8S 生态周报」内容主要包含我所接触到的 Kubernetes 生态相关的每周值得推荐的一些信息。 我在《K8S 生态周报一周年了》这篇文章中也曾介绍我最初的想法。“Kubernetes 生态中相关信息和变化有不少,在这个信息爆炸的时代,稍不留神就会错过不少有价值的信息,但持续的去追这些消息,也过于浪费时间,并且还须要去筛选信息。”因此我维护的 「K8S 生态周报」并不是简单的信息收集,还包含着个人思考及评价。每次周报的内容,都是我我的认为值得推荐和关注的信息。尤为是这是一份技术型的周报,而非纯资讯型,这也是和其余人或组织维护的周报最大的不一样。
问:您在许多技术社区都开设了专栏,也常常更新文章,写文章给您带来了哪些收获?您是如何在写代码之余还保持热情和精力大量产出文章的?
张晋涛:
写文章对我而言也是一个总结和学习的过程。一方面,写文章的时候,对知识进行总结概括,可让我加深印象以及梳理清楚其中的逻辑。另外一方面,毕竟写文章和记笔记不一样,会公开出来,因此对其中可能以前含糊的点,在写文章的时候,也会再次考证和实践。 同时,由于我写的文章,也结识了很多朋友。 写文章确实须要花费很多的时间和精力,我我的认为主要仍是得作好时间得规划和管理。这方面我也还在探索和学习,作的并很差。目前可能更多的仍是选择压榨其余时间吧。我通常会选择早上起来写文章。我使用 GitHub 的 Project 和 Issue 等来管理本身须要作的事情。
问:看您以前的采访是 2014 年从 Docker “入坑”容器技术领域,近几年很是关注 Kubernetes,能对两者的发展作简单预测吗?对 Kubernetes 弃用 Docker 怎么看?
张晋涛:
其实 Docker 和 Kubernetes 我都在持续的关注。我在 Docker 主仓库的贡献者排行榜中是第 66 位。 Docker 目前仍然是使用最为普遍的容器运行时和桌面容器化开发者工具。并且 Docker 目前的定位,也确实在作开发者工具方面投入了不少精力,包括默认集成了漏洞扫描工具,更好的磁盘管理工具等。将来的三五年内,Docker 在这个方面应该仍然是开发者的第一选择。 Kubernetes 是云原生的基石,将来的三五年内,仍然会是最主要的技术方向。此外,Kubernetes 也正在扩展其应用场景,包括 IoT 等领域。 在 Kubernetes 宣布 kubelet 中废弃对 dockershim 维护后,我曾专门写过一篇文章 《Kubernetes 弃用 Docker 了?Docker 不能用了?别逗了!》 事实上,这件事情影响并没那么大。由于不用在 Kubernetes 代码仓库中的 dockershim 组件,也可使用外部的 dockershim 组件。另外,从 Docker 中捐赠出来的 containerd 项目,已是 CNCF 毕业项目了,我认为迁移到 containerd 也是个不错的选择。开发者本地的环境,能够继续使用 Docker 做为开发工具。
问:您是何时加入支流科技的?为何加入,支流科技的哪些地方吸引您?目前主要负责什么工做?
张晋涛: 我是今年 4 月底加入支流科技的。支流科技是一家开源商业化公司,团队中的全部工程师都深度参与开源项目,在公司中也是以技术做为主导。全员远程,经过 GitHub 和 Slack 等进行协做,这种方式跟我平时参与开源项目体验一致。并且这里能够更好的发挥个人特长,也能够给我足够的自由,因此我比较喜欢。 我在这边主要负责 Apache APISIX Ingress Controller ,我但愿打造一款更棒的 Ingress Controller 。
问:您是如何成为 Apache APISIX committer 的?成为 Apache APISIX committer 以后,有什么新的工做规划吗?
张晋涛:
我维护了 Apache APISIX 的 Helm chart 以及为 Apache APISIX Ingress Controller 增长了 consumer 和 annotation 等特性,同时还有一些社区的活动。在完成项目 GA 后,通过社区的投票和公示流程后,正式成为 Apache APISIX committer 。 最主要的规划仍是在 Apache APISIX Ingress controller 上,准备对其架构进行调整,让它更加好用。
问:此外您也是 Containerd、Docker、Helm、Kubernetes、KIND 等众多开源项目的contributor,能够分享下参与开源项目贡献和开源社区活动的经验和想法吗?
张晋涛:
我认为参与开源贡献和开源社区活动等,主要仍是应该从兴趣出发。在参与项目的时候,应该尽量选择本身接触较多的,或者更感兴趣的项目。不要为了参与而参与,这样会把本身搞的比较累,并且对本身和社区都不必定是好事儿。 开源社区是开放和包容的,不管你是提交 PR 来改进项目,仍是提 issue 反馈 bug ,社区都是欢迎的。 另外须要补充的一点,也是以前不少人在问个人一个问题,“参与开源社区有什么回报?”我参与开源好久了,除了目前我在支流科技能够全职作开源外,以前待过的任何一家公司,我都只能利用本身的业余时间去参与,花费了挺多时间和精力。但其实并无任何物质上的回报。可能只是兴趣所在吧,刚好如今把兴趣变成了工做(还有一份不错的薪水)。欢迎任何对开源感兴趣的小伙伴给我发邮件交流,zhangjintao@moelove.info
问:云原生向来也是开源争议比较多的领域之一,好比在开源上贡献较多的公司和另外一些从开源项目中获取价值较多的公有云厂商在利益上的冲突。您怎么看?这种矛盾能够解决吗?
张晋涛: 这个问题由来已久,但也不是不能调和。就目前我看到的状况来讲,相比 3 年多以前已经好不少了,多数云厂商也正在积极贡献。不管说是为了争取拿到更多话语权,仍是为了解决本身所遇到的问题,在回馈社区。我以为都是好事儿。只有这样持续的进行正循环,开源软件和社区才能更好的发展。
Apache APISIX 是一个动态、实时、高性能的开源 API 网关,提供负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。Apache APISIX 能够帮忙企业快速、安全的处理 API 和微服务流量,包括网关、Kubernetes Ingress 和服务网格等。全球已有数百家企业使用 Apache APISIX 处理关键业务流量,涵盖金融、互联网、制造、零售、运营商等等,好比美国航空航天局(NASA)、欧盟的数字工厂、中国航信、中国移动、腾讯、华为、微博、网易、贝壳找房、360、泰康、奈雪的茶等。200 余位贡献者,一同缔造了 Apache APISIX 这个世界上最活跃的开源网关项目。聪明的开发者们!快来加入这个活跃而多样化的社区,一块儿来给这个世界带来更多美好的东西吧!- Apache APISIX 项目地址:github.com/apache/apis…- Apache APISIX 官网:apisix.apache.org/