Docker社区动态


Docker社区上周发现了一个编号为CVE-2018-15664的高危安全漏洞,严重等级为8.7分(总分10分)。该漏洞属于容器权限逃逸安全漏洞,用户程序可以在容器内以root权限读取和写入主机上的任意文件,根因是Docker的Chrootarchive机制存在安全漏洞。


漏洞介绍

漏洞的核心是一个名为FollowSymlinkInScope的函数,Docker使用它来解析文件路径。研究人员发现,如果恶意攻击者将docker cp的路径修改成符号链接,那么就可以实现在容器内访问宿主机文件系统数据的目的。如果攻击者在解析后但在操作之前将符号链接添加到docker cp的路径中,那么他最终可能会以root身份解析宿主机上的符号链接对应的文件。一个潜在受攻击的场景是某些云管理服务允许用户使用docker cp命令将配置文件复制到容器中(或从容器中读取文件)。


如何修复

到目前为止,尚无官方修复可用,Docker公司也没有明确对应补丁的发布时间。

这个问题最完整的解决方案是修改chrootarchive,以便所有归档操作都以root作为容器rootfs(而不是父目录,因为父进程受攻击者控制导致漏洞), 但不幸的是让Docker短期内做这样的修改几乎是不可能的,因为这将导致Docker的TarUntar接口的重新实现。


目前推荐的几个短期缓解措施有:

  1. 禁用docker cp;

  2. 在操作宿主机文件系统时暂停容器;

  3. 使用AppArmor增强对Docker daemon使用宿主机文件系统的限制。


本公众号会持续跟踪社区上游的bug修复进度并及时在本公众号公布。



Kubernetes社区动态


修改API相关的PR:主要修改点集中在CRD和webhook

  • #78453 CRD增加了对非法表达式的校验。

  • #78445 kubect scale job命令正式被移除。

  • #78426 webhook转换成CRD这个特性正式beta。

  • #78234 CRD的spec和status字段同时支持subresources.scale.labelSelectorPath值。

  • #78135 Admission webhook支持注册指定版本的API资源,例如:apps/v1 deployments。

 

Bug fix相关的PR:

  • #77802 屏蔽Service的UDP连接的优雅删除功能,解决DNS和syslog等应用残存大量UDP连接的问题。

  • #78482 更新Event Namespace时检查namespace是否匹配。

  • #78428 修复kube-proxy解析iptables-save 输出时的panic问题。

  • #78385修复ExternalName Service不允许externalName末尾带点(例如:foo.com.)的问题。

  • #78314 把containerd的oom score adj设置成-999(最大),使得containerd不会轻易因为系统oom而被删除。

  • #78016 修复Kubelet到API Server的心跳连接错误。

  • #78257 修复卷超时相关的一些flake测试用例。

 

特性相关的PR:

  • #78447调度器使用v1beta1的Event API

  • #77755 磁盘热扩容特性目前已是Beta



云原生一周精选


01

CircleCI扩展其CI/CD平台至Kubernetes领域

CircleCI通过与Amazon Web Services(AWS),Microsoft,VMware,Red Hat和Kublr的技术合作,将其持续集成/持续交付(CI / CD)平台的范围扩展到Kubernetes领域。


此外,CircleCI还增加了与以下产品的集成

  • Helm,一个用于启动Kubernetes集群的开源工具; Nirmata的Kubernetes管理平台;

  • VMware的Code Stream应用程序发布管理软件;

  • DeployHub的持续交付平台。


CircleCI还增加了与AWS,Google,Microsoft和Docker Inc.的Container Registry的集成。


CircleCI业务开发负责人Tom Trahan表示,随着其CI/CD平台中的模块在Kubernetes上运行,这些扩展将使使用其平台的组织更容易在更大的DevOps流程环境中整合多个Kubernetes部署选项和工具。Trahan表示,CircleCI预计很快将在Kubernetes上运行构成其平台的所有模块。


CircleCI一直在围绕“orbs”构建高度可定制的同名CI/CD平台,使DevOps团队能够创建可重用的组件和管道,并根据需要添加其他工具。


虽然最佳DevOps实践的采用往往不均衡,但采用容器构建基于微服务的应用程序的组织数量的急剧增加可能会迫使DevOps问题出现在大多数应用程序中。构成应用程序的所有微服务之间存在的依赖关系数量,加上容器本身的短暂性质,要求组织采用CI/CD平台。


然而,随着时间的推移,这些CI/CD平台的提供商之间的竞争将更多地集中在环境的整体编排而不是核心平台上。 CircleCI是Continuous Delivery Foundation的早期支持者,该基金会是Linux基金会的一个分支,致力于在开源CI/CD平台上更轻松地重用管道。 Trahan说,随着这项工作的进展,每个组织都将会更容易创建一个DevOps环境,该环境由几乎可以随意替换的模块组成,前提是有一个共同的管理平面。


每个组织试图通过尽可能标准化工具和平台来在简单性之间取得平衡。然而,Trahan指出,在他们需要新功能的那一刻,他们总是希望平台能够无限扩展。


控制DevOps的战斗可能需要一段时间才能在未来几个月和几年内完全发挥作用。与此同时,随着微服务开始跨越多个组织,已经拥抱容器来构建和部署应用程序的组织,不仅需要考虑如何在其组织内实现这些流程,还需要考虑如何在其他组织中工作的开发团队中实施这些流程。


02

 Nvidia推出基于Kubernetes的边缘机器学习平台EGX

各种软件正在转向轻量级应用程序容器,对Nvidia来说也是如此—这个GPU巨头已经在网络边缘推出了基于Kubernetes的机器学习平台。


EGX与Nvidia制造的所有主流设备兼容,从用于原型设计的小型Jetson Nano板(6月发货)到通常在云数据中心中使用的全套T4 GPU。


它旨在简化从传感器收集信息并通过机器学习算法运行以获得实时响应的任务,而无需将数据传送回公司仓库。

该平台是Red Hat创建的,并使用其OpenShift容器编排软件。它在世界上最大的电脑展-台北的Computex上亮相。


EGX将OpenShift与Nvidia的Edge Stack结合在一起-其中包括驱动程序,CUDA容器运行时,CUDA Kubernetes插件,CUDA-X库以及一系列容器化AI框架和应用程序,如用于TensorFlow推理的TensorRT和用于计算机视觉的DeepStream。


所有“云原生”应用程序-打包在应用程序容器中的应用程序,都可以在EGX上运行,为EGX开发的任何应用程序都可以在任何主要的公共云中运行。


该平台可以使用AWS IoT Greengrass和Microsoft Azure IoT Edge服务进行远程管理。


它还测试了与Mellanox和Cisco的网络套件的兼容性,以供想要在本地运行EGX的客户使用。


该平台适用于电信,医疗保健,制造,零售和运输等行业的应用。EGX的早期采用者包括富士康,它使用机器学习扫描PC生产线上的工厂缺陷; GE Healthcare,使用算法加速MRI过程;和Seagate一起部署了ML来检查硬盘读写头的质量。


“Nvidia EGX平台极大地加速了边缘推理,使我们能够看到人类操作员过去无法看到的细微缺陷,”希捷高级首席数据科学家Bruce King称。 “我们希望通过提高效率和提高质量,实现高达10%的制造吞吐量和高达300%的投资回报率。


03

Kubernetes的新功能:使用Kyma扩展基于云的应用程序

Kyma是一个由SAP捐赠的灵活的开源项目,它使用一组云原生组件和服务来扩展Kubernetes。它包含一个应用程序连接器和服务目录,可帮助您和您的团队解决难题。Kyma 1.0版本刚刚发布。


“Kyma提供了一系列云原生组件和服务,这些组件和服务构建了遵循性能,可扩展性,效率和安全性的最佳实践方法的现代端到端用户体验场景”。


它的所有原生组件都是用Go编写的。它的架构可能有几个您熟悉的功能。每个部分都基于其团队认为最适合工作的常用技术。


这个项目的关键特性包括:

  • 快速部署:根据文档,“您创建的扩展和定制化功能与核心应用程序分离,这意味着部署很快”。

  • 无服务器:Lambda函数在Node.js中使用JavaScript运行。Lambas可以“创建和管理lambda函数;触发基于业务事件的函数;通过HTTP暴露函数;消费服务;为客户提供定制功能;lambda函数的版本管理;并链接多个函数”。

  • 与Knative集成:Kyma与Knative eventing和Knative serving共同协作。

  • 应用程序连接器:允许用户连接外部解决方案。

  • 服务目录:将可重用的集成服务组合在一起,以便在应用程序中管理和使用它们。

  • 强大的安全模型:在集群中使用基于角色的访问控制

  • Helm broker:使用Helm和Kyma包运行集群并部署Kubernetes原生资源。

  • Event bus:基于CNCF项目NATS

  • 附带功能齐全的即用型代码片段,用于测试扩展

  • Service Mesh:使用Istio服务网格,能处理服务到服务的通信,代理,服务发现,可追溯性和安全性。


04

KubeEdge v0.3发布:把边缘设备管理能力带到Kubernetes

北京时间5月29日,KubeEdge发布了第三个特性版本v0.3.0。


本次发布的新版本包含了边缘设备管理、一键安装部署工具、端到端性能测试框架,以及21处问题修复。


作为v0.3版本的关键新特性,边缘设备管理能力的引入使得KubeEdge可以完整打通各类云、边、设备协同的场景;KubeEdge installer的加入大大简化了安装部署一套完整KubeEdge集群的难度;端到端性能测试框架的实现则为后续的规模测试及性能优化工作奠定了基础。