容器服kubernetes
在2017年,无论是在Opensource.com上还是在整个IT基础架构社区中,容器都是大新闻。 在过去的一年中,以下三个主要故事情节主导了集装箱新闻:
- 首先是Kubernetes。 Kubernetes获得了巨大的发展势头,成为将开放容器倡议(OCI)格式的容器组合到组成应用程序的托管集群中的主要手段。 Kubernetes越来越多的广泛接受是由于其庞大而活跃的社区。
- 第二个是组件的标准化和去耦。 OCI发布了其容器映像和容器运行时格式规范的1.0版本。 现在,CRI-O提供了一种轻巧的替代方案,可以将Docker用作Kubernetes编排的运行时。
- 第三个故事情节是安全性,它被广泛认为需要保护多个级别的容器,以防止未打补丁的上游代码,对基础平台的攻击以及未快速更新的生产软件引起的威胁。
让我们看一下这些故事情节在开源世界中的表现。
Kubernetes与编排
单独使用容器对于在笔记本电脑上工作的个人开发人员来说是不错的选择。 但是,正如Dan Walsh在Linux容器如何发展中所指出的:
当您开始同时运行多个容器并将它们连接到一个功能更强大的应用程序中时,容器的真正威力就显现出来。 设置多容器应用程序的问题是复杂性Swift增加,并且使用简单的Docker命令将其连接起来就分崩离析了。 如何在资源有限的节点群集中管理容器应用程序的放置或编排? 如何管理自己的生命周期,依此类推?
但是,正如阿努拉格·古普塔(Anurag Gupta)所写, 为什么Kubernetes如此受欢迎? ,不仅仅关乎技术。 他说:
Kubernetes最近几个月超越其他系统的原因之一是该系统背后的社区和支持:它是最大的开源社区之一(在GitHub上超过27,000颗星); 有数以千计的组织(1,409个贡献者)的贡献; 并且位于大型的中立开源基金会Cloud Native Computing Foundation(CNCF)中。
Google的Sarah Novotny提供了有关如何使Kubernetes成为充满活力的开源社区的进一步见解; 她在4月份播客中的言论总结在Kubernetes如何使贡献变得容易上 。 她说,这首先是“成为一个成功的项目的目标,因此找到采用,增加采用,找到贡献者,增长他们需要的最佳工具集或他们需要的以及最终用户需要的平台。这是根本。”
标准化与解耦
OCI是Linux基金会的一部分,于2015年启动,“其明确目的是围绕容器格式和运行时创建开放的行业标准。” 当前有两个规范:运行时和映像,并且两个规范都在2017年发布了1.0版。
这里的基本思想很简单。 通过在此级别进行标准化,您可以提供一种合同,以允许在其他领域进行创新。
OCI执行董事Chris Aniszczyk在2月的开源领袖峰会上的谈话中这样说 :
人们已经吸取了教训,我认为他们希望对将允许市场增长的事物进行标准化。 每个人都希望容器是超级成功的,可以在任何地方运行,扩展业务,然后在更高的水平上竞争,并以此为基础销售服务和产品。 不要试图以人们不会采用容器的方式来细分市场,因为他们担心容器还没有准备好。
这是此方法使之成为可能的几个具体示例。
CRI-O项目的开始是为了创建专用于Kubernetes的最小可维护运行时。 正如Mrunal Patel在CRI-O中所述:所有运行时Kubernetes都需要 :
CRI-O是Kubernetes CRI(容器运行时接口)的实现,它允许Kubernetes使用任何符合OCI的运行时作为运行Pod的容器运行时...这是使用Docker作为Kubernetes的运行时的轻量级替代方案。
这样,CRI-O允许混合和匹配容器软件堆栈的不同层。
最近的社区项目是Buildah。 它使用基础容器存储来构建映像,并且不需要运行时。 结果,它也使用主机的程序包管理器来构建映像,因此生成的映像可以小得多,同时仍符合OCI规范。 William Henry的Buildah入门 (发布在Project Atomic上)提供了更多详细信息。
正如William和我在我们的免费电子书中所讨论的那样, 从《 Pots and Vats到Programs and Apps:软件如何学会自我包装》 (PDF),这里最大的一点是,OCI标准化释放了更高层次的创新能力。软件堆栈。 现在,许多图像构建,注册表拉入和推送服务以及容器运行时服务已通过OpenShift等高级工具实现了自动化。
多个级别的容器安全
容器安全性在许多层面上都存在。 Daniel Oh数了Linux容器安全性的10层 。 它始于熟悉的基础架构级别。 这就是SELinux,cgroups和seccomp等技术功能出现的地方。平台的安全性只是我说操作系统在2017年对容器的各个方面都更加重要的原因之一。
但是,Daniel还观察到您需要考虑的许多其他容器层。 “容器内的物品很重要。” 他补充说:“就像从外部来源下载的任何代码一样,您需要知道软件包的起源,生成者以及它们内部是否存在任何恶意代码。”
对传统软件开发流程不太熟悉的也许是保护构建环境,软件部署管道本身。 丹尼尔(Daniel)指出,
管理此构建过程是保护软件堆栈的关键。 秉承“一次构建,随处部署”的理念,可确保构建过程的产品与生产中的产品完全相同。 保持容器的不变性也很重要,换句话说,不要修补正在运行的容器。 重建并重新部署它们。
其他值得关注的领域包括保护Kubernetes集群,隔离网络,保护持久存储和临时存储以及管理API。
到2018年
我预计这三个领域在2018年仍将是重要主题。但是,我认为最大的故事之一将是围绕容器的开源生态系统的持续扩展。 来自Cloud Native Computing Foundation的Landscape文档对总体范围有所了解,但它涵盖了从容器运行时到业务流程,业务流程,监控,供应,日志记录到分析的所有内容。
它很好地说明了容器周围的开放源社区中发生的任何活动级别,以及开放源代码开发模型创建良好活动周期的能力。
翻译自: https://opensource.com/article/17/12/best-opensourcecom-containers
容器服kubernetes