Puppet踏上容器之旅,全面支持Kubernetes

简介:

一年的时间足以沧海桑田,物是人非了,即使对企业也同样如此。

今年二月,Puppet Labs公司CEO Luke Kanies曾经在接受采访时表示,他认为Docker在企业环境下的快速普及基本上只是一种幻觉。“没有哪种技术能够在企业当中拥有如此迅猛的传播速度。我根本不在乎它到底有多出色,”Kanies指出。“大家不可能突然之间就把成百上千万种生产环境下的工作负载迁移到采用完全不同于以往的软件包、运行时以及其它组件的虚拟化层当中。”

而就在不到一年之后,Puppet Labs发现自身已经处于非常尴尬的境地——其开始着手将工具转移至容器化环境当中。就在上周三,Puppet公司公布了一套面向Kubernetes的功能模块,其能够帮助这套编排环境接受Puppet代码的管理。

程序员眼中的Puppet

行业普遍认为Puppet是系统管理员的一套自动化工具,主要用于配置管理工作。而Chef与Puppet功能大致相同,但Chef是面向开发人员的。就在今年早些时候,由VB Insight发布的一份报告对此表示怀疑,它认为二者的本质差异在于Chef允许开发人员实现一系列实验性尝试,但Puppet能够最大力度避免管理员犯错。

Puppet Labs的英国高级软件开发人员Gareth Rushgrove作为本次Kubernetes支持项目中的关键性角色,当然也非常熟稔关于配置自动化的各类议题。他的主要工作就是切实让Puppet 成为足以吸引开发人员的选项。他解释称,“这是一款编程语言——而且这种定位如今正变得愈发稳固,特别是相较于几年之前。”

Rushgrove同时提到,过去几年以来,Puppet已经吸纳了一系列开发人员,它希望在一款编程语言中获得的各类不同水平的工具与支持能力。“我认为区别在于,这是一种声明性语言而非通用语言,但大家仍然能够利用它完成既定任务——因为它非常强大,”他强调称。

市面上确实存在着不少声明性编程语言,因此Puppet的声明语义应该足以让其成为其中的一员。Rushgrove解释称,声明语义能够帮助操作者(当然,大家也可以根据自己的理解将其称为‘开发者’)声明必要的系统状态,从而实现对容器平台的支持。以此为基础,这款插件将在后端实现对 Kubernetes的配置管理。

“配置管理并不仅仅在于对磁盘上的资源及文件进行管理;它的核心作用在于随时间推移实现高水平管理效果,”Rushgrove指出。“我们的客户及用户往往来自大型企业,他们对于流程更感兴趣。我们目前的努力方向在于打造相关工具,从而帮助他们在获得控制能力的同时摆脱手动操作的束缚,即无需对此类流程进行手动管理。”

在大型企业当中,他表示,这些流程包括服务管理与配置管理等随时间逐渐演变的任务,而且通常会呈现出非常混乱的运作态势。Puppet致力于了解这些流程的实际价值,他认为这将能够带来“难以获得的智慧”。

不过除了自有设备,这部分企业还需要处理一系列其它流程,包括不同转换、签名以及员工间的任务移交等——这些传输工作能够自动完成,但却无法带来任何积极效果。这种传输方式在固定线路当中仅仅表现为效率低下,但在容器编排环境中则会带来更大的麻烦。这时我们需要利用安全控制机制帮助企业维护各流程的归属权与验证机制,同时确保其中不掺杂任何人为因素。

非管理员眼中的Kubernetes

“在我们眼中,Puppet总体而言并不属于那种由管理员编写代码以实现原本需要手动完成操作的简单工具,”Rushgrove指出,“因为它属于编程语言,所以大家可以将其作为中介,使得个人之外的各团队与部门也能够与之交互。大家应该逐步摆脱将系统管理员作为个人看待的固有印象……利用这种中介机制,大家可以从软件开发实践当中提取成果——例如持续集成、单元测试以及代码审查等等。另外,大家也可以建立自己的一套共享模式,并在模式描述当中引入职责分担这一设计思路。”

这套模式能够反映出系统随时间推移的演变情况——而非单纯只是一套最佳但却固定的平台,其中应当包含特定状态可能带来的预期变化。这一切都能够在 Puppet当中完成(相信管理员已经了解到这一点),因为其会将这些状态以动态变量的形式进行声明。在新的Kubernetes平台之上,此类变更随后会被自动提出并逐步纳入平台当中。

值得强调的是,我们在自己的说明文档当中将Kubernetes描述为一套按需状态系统。“Kubernetes能够根据用户提供的需求状态请求建立起强大的声明基础。其拥有多种自我修复机制,具体包括自动重启、重新调度以及同时面向主动控制器及必要编排流程的容器复制等能力。”

Gareth Rushgrove认为,Kubernetes的强大之处恰恰体现在这些基础当中。在上周三发布的一篇官方博文当中,他表示Kubernetes对于配置任务的处理能力并不会令配置管理方案走向消亡。

“有些人将配置管理(以及Puppet等工具)单纯视为一种实现主机相关资源的管理方式,包括文件、服务、软件包、用户或者群组,”Rushgrove写道。“Kubernetes引入了更为高级的基础元素,例如Pod与副本控制器,旨在以更为简便的方式实现分布式与可扩展系统的管理。如此一来,大家将不再需要通过引入新的基础元素进行配置管理。然而,配置管理是一项涵盖范畴极广的学科,其历史能够追溯到上世纪五十年代。”

他还列举了一段Puppet代码示例,其中使用了YAML,其中结合了同样使用YAML的Kubernetes代码元素。通过这种方式,任何熟悉 Kubernetes API的用户都不需要学习新的技能以运用这些基础元素——换言之,他们将能够轻松上手Puppet代码。“因此大家对Kubernetes越是了解,”Rushgrove告诉我们,“大家就越能够轻松使用这套模块。”

更重要的是,他认为负责实现Kubernetes自动化的Puppet脚本也可以被不同类型的用户所使用——例如那些对Kubernetes并不熟悉,但却希望借此处理临时性业务难题的用户。在这方面,Rushgrove提供了典型的Kubernetes示例——其能够生成一款简单的服务器负载均衡Web应用,并被重新编译为Puppet代码,这也证明了其中所涉及的编程语法实际非常有限。

通过对这款应用的简单演示,他解释称这部分潜在用户也完全能够实现自己需要的简单调整——例如控制副本控制器中的容器数量,而完全不必劳烦专业用户帮忙完成。“这意味着同一团队中的不同成员即使并非全部具备相关专业知识,也同样能够使用Kubernetes上的大型应用。他们只需要使用开发人员创造的界面,并在业务层面上进行操作即可。”


本文作者:佚名

来源:51CTO

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
8月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
1169 108
|
7月前
|
Kubernetes Devops Docker
Kubernetes 和 Docker Swarm:现代 DevOps 的理想容器编排工具
本指南深入解析 Kubernetes 与 Docker Swarm 两大主流容器编排工具,涵盖安装、架构、网络、监控等核心维度,助您根据团队能力与业务需求精准选型,把握云原生时代的技术主动权。
677 115
|
7月前
|
存储 Kubernetes 网络安全
关于阿里云 Kubernetes 容器服务(ACK)添加镜像仓库的快速说明
本文介绍了在中国大陆地区因网络限制无法正常拉取 Docker 镜像的解决方案。作者所在的阿里云 Kubernetes 集群使用的是较旧版本的 containerd(1.2x),且无法直接通过 SSH 修改节点配置,因此采用了一种无需更改 Kubernetes 配置文件的方法。通过为 `docker.io` 添加 containerd 的镜像源,并使用脚本自动修改 containerd 配置文件中的路径错误(将错误的 `cert.d` 改为 `certs.d`),最终实现了通过多个镜像站点拉取镜像。作者还提供了一个可重复运行的脚本,用于动态配置镜像源。虽然该方案能缓解镜像拉取问题,
793 2
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
401 0
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
304 1
|
弹性计算 人工智能 资源调度
DeepSeek大解读系列公开课上新!阿里云专家主讲云上智能算力、Kubernetes容器服务、DeepSeek私有化部署
智猩猩「DeepSeek大解读」系列公开课第三期即将开讲,聚焦阿里云弹性计算助力大模型训练与部署。三位专家将分别讲解智能算力支撑、Kubernetes容器服务在AI场景的应用实践、以及DeepSeek一键部署和多渠道应用集成,分享云计算如何赋能大模型发展。欲观看直播,可关注【智猩猩GenAI视频号】预约。 (239字符)
|
监控 Kubernetes Cloud Native
基于阿里云容器服务Kubernetes版(ACK)的微服务架构设计与实践
本文介绍了如何基于阿里云容器服务Kubernetes版(ACK)设计和实现微服务架构。首先概述了微服务架构的优势与挑战,如模块化、可扩展性及技术多样性。接着详细描述了ACK的核心功能,包括集群管理、应用管理、网络与安全、监控与日志等。在设计基于ACK的微服务架构时,需考虑服务拆分、通信、发现与负载均衡、配置管理、监控与日志以及CI/CD等方面。通过一个电商应用案例,展示了用户服务、商品服务、订单服务和支付服务的具体部署步骤。最后总结了ACK为微服务架构提供的强大支持,帮助应对各种挑战,构建高效可靠的云原生应用。
|
存储 运维 Kubernetes
容器数据保护:基于容器服务 Kubernetes 版(ACK)备份中心实现K8s存储卷一键备份与恢复
阿里云ACK备份中心提供一站式容器化业务灾备及迁移方案,减少数据丢失风险,确保业务稳定运行。

相关产品

  • 容器服务Kubernetes版
  • 推荐镜像

    更多
    下一篇
    开通oss服务