Kubernetes v1.17 正式发布

上周,Kubernetes 迎来了 2019 年的最后一个新版本 1.17。新版本包含 22 个增强功能:14 个增强功能已进入稳定,4 个增强功能已进入 beta,4 个增强功能已进入 alpha。

可以说,此次新版本中最重要的功能是对 IPv4 和 IPv6 网络协​​议的双栈支持。容器存储接口(CSI)迁移已进入 beta 版本,旨在将外部存储系统集成到 Kubernetes。同时,Volume Snapshot 也进入 beta。

此外,新版本提供了可用于云服务的 Kubernetes 实例标签。这些标签将使编写 Kubernetes 的规范成为可能,方便集群在多个云计算供应商之间具有更高的可移植性。

该版本的技术负责人兼 GitHub 软件工程师 Guinevere Saenger 表示:

Kubernetes 1.17 版本原本有 44 个建议新增功能,但考虑到圣诞节及 KubeCon + CloudNativeCon 2019 的时间安排,TOC 成员投票决定将其中的一些项目更新延后到将来的版本中,其中未改进的最关键功能是对容器部署为 Sidecar 的支持。

更多新版本信息,请见《Kubernetes v1.17 重磅发布:稳定性!》。

让 K8s 更好用的 11 种工具

尽管 Kubernetes 很受欢迎,但它目前还存在许多不足,如数据库支持和持续部署。以下是一些工具,可以帮助 Kubernetes 用户简化应用程序定义、迁移集群、简化云部署,提高工作效率。

  • Gravity:可以为 Kubernetes 集群、容器注册表以及正在运行的应用程序提供快照,方便用户把复杂的应用程序部署到本地企业环境中;
  • Kaniko:允许在 Kubernetes 集群中构建容器;
  • Kedge:提供了一种简单的语法,可将用户编写的简洁应用程序定义自动扩展为复杂的 Kubernetes 定义;
  • Koki Short:提供了一种简单的语法,允许用户简短定义容器,并自动将定义转换成完整的语法;
  • Kubecost:可以使用实时 Kubernetes 指标以及主要云提供商上的实际成本信息,提供成本仪表板视图;
  • KubeDB:允许管理员创建 Kubernetes Operator 来管理数据库;
  • Kube-monkey:随机杀死指定集群中的 Pod 进行混沌测试;
  • Kubernetes Ingress Controller for AWS:能自动管理集群中每个 Ingress 对象的 AWS 资源,为新的 Ingress 资源创建负载均衡器,并为已删除的负载均衡器删除负载均衡器;
  • Skaffold:能自动检测源代码更改,触发构建和部署过程,并在出现错误时发出警告,是一种连续部署工具;
  • Teresa:可在 Kubernetes 上作为简单的 PaaS 运行,方便用户部署和管理应用程序;
  • Tilt:允许开发人员仅通过更新 Dockerfile 即可实时更新活动集群。

K8s 落地应用催生新 IT 需求

当前,Kubernetes 集群已逐渐成为核心 IT 基础设施,而不是开发人员在 VM 内部进行容器管理的平台。在技术转型过程中,企业 IT 运维团队也需要更好的工具,以便在生产中部署和管理 Kubernetes。

Kubernetes 与 Docker。以下场景将成为企业常态:开发团队将使用 Docker 容器构建和打包应用程序,运维团队将部署和管理运行容器的 Kubernetes 集群。

Kubernetes 大规模应用。大规模运行 Kubernetes 是企业面临的下一个主要挑战,它们很快就会发现自己可能会同时在云和本地运行多个 Kubernetes 发行版,需要花一段时间探索最佳 DevOps 流程集来管理集群。

监控和故障排除。现有的企业 IT 监控工具需要扩展其覆盖范围,将 Kubernetes 作为平台包括在内。

数据存储和管理。Docker 和 Kubernetes 内部的许多应用都需要文件和数据库服务器来保存大量数据,数据的高效迁移会是一个艰巨挑战。

Service Mesh。Kubernetes 上的每个应用不一定都需要服务网格,但是该技术有可能成为 Kubernetes 平台中都应包含的标准件。

2020 DevOps 趋势

随着客户需求发生变化、网络威胁诱因改变、新的工具不断引入,DevOps 也正在发生巨大变化。以下是 2020 年值得关注的一些 DevOps 趋势。

Shift Left 测试。尽早发现,预防问题,使用必要的测试手段在软件开发周期的早期阶段发现问题。

混合云解决方案。将云的可伸缩性和本地环境结合在一起,在没有孤岛的情况下用云和本地部署来管理其应用和工具集。

DevSecOps。本地和云上的开发工作流现在需要引入全自动、端到端的 CI/CD,包括静态应用程序安全测试(SAST)、动态应用程序安全测试(DAST)、风险评估和合规性检查。

Kubernetes 与 FaaS。无服务器,功能即服务(FaaS),将围绕自定义云管理和节省成本和 Kubernetes 展开竞争。

本周 K8s 开源项目推荐

kubernetes-basicLearning

buck

  • https://github.com/brigadecore/buck
  • 这是为 Kubernetes 构建新控制器的最快方法:只需定义 CRD(或使用现有资源),并为控制器代码编写几行 JavaScript。

sloop

  • https://github.com/salesforce/sloop
  • 这是一个历史可视化工具,可以记录事件和资源状态变化的历史记录,并提供可视化信息以帮助调试历史事件。

k8s-cluster-switcher-ubuntu-indicator

clusterman

  • https://github.com/Yelp/clusterman
  • 这是用于 Mesos 和 Kubernetes 集群的自动扩展引擎。它可以查看指标并启动/终止计算以满足工作负载需求,类似于官方的 Kubernetes Cluster Autoscaler。

kardio

nginx 作者被捕

上周,俄罗斯警方突击搜查了 NGINX 公司在莫斯科的办事处,并带走了公司联合创始人 Igor Sysoev 和 Maxim Konovalov,lgor Sysoev 同时也是 nginx 服务器项目的创建者。

nginx 是世界第二大开源 Web 服务器,全球超过三分之一的网站都在使用这个工具,包括中国的百度、京东、新浪、网易、腾讯、淘宝等。2004 年,Sysoev 开源 nginx,并在 2015 年与他人共同创立 NGINX,该公司于今年 3 月被美国技术公司 F5 Networks 以 6.7 亿美元收购。

此次提起侵权投诉的是俄罗斯最大的门户网站之一 Rambler Group。该公司发言人表示,2000 年,Sysoev 在 Rambler 担任系统管理员期间利用工作时间在办公室使用公司的设备开发出了 nginx,因此 nginx 源代码的版权应归属 Rambler。

事后,Sysoev 和 Maxim Konovalov 被警方释放。前 Rambler CEO Igor Ashmanov 在 Facebook 上为 Sysoev 正名:我已经同意 Sysoev 先生在 2000 年开发了 nginx 后可以继续发展 nginx。他确实曾是 Rambler 的系统管理员,但开发软件并不是他的工作职责。我也不认为 Rambler 能就在内部开发 Web 服务器拿出一点证据。

Maxim Konovalov 之后也在接受采访时对媒体表示:

NGINX 公司于 2011 年正式注册,现在是 2019 年,这很有趣,在此期间,Rambler 从未提出任何问题,也从没找过我们。现在我们与 F5 达成了交易,NGINX 公司的价值得到了体现,他们就开始行动了,这一切的动机再明显不过。

这项指控引起了俄罗斯科技界的愤怒,很多人相信,对于每一位开发者,这起起诉这件事本身就是一个非常不好的信号。