关键区别
Ansible 和 Kubernetes 都是开源平台,各自在 IT 环境自动化中扮演着不同的角色,既可以单独使用,也可以结合使用。
Ansible 的主要目标是实现基础架构组件中重复性 IT 流程的自动化。Kubernetes 的设计目标则是对容器化应用的部署、扩展和管理进行编排,从而实现软件在混合环境中的规模化运行。在现代 IT 环境中,这些目标相辅相成,因此同时使用 Ansible 和 Kubernetes 已相当普遍。
红帽® Ansible® 自动化平台和红帽 OpenShift® 是分别基于 Ansible 和 Kubernetes 构建的企业级解决方案。它们增强了这两个工具的核心功能,且额外提供了适用于大规模任务关键型部署的功能。
什么是 Ansible?
Ansible 是一款开源的自动化引擎,旨在简化系统置备、配置管理、应用部署等任务以及其他各种 IT 流程。
系统管理员及其他 IT 专业人员可以用它来跨多种环境(例如云环境或本地环境)实现新系统的设置和部署的自动化。Ansible 可确保系统保持所需的配置,例如使软件包保持最新。举例来说,某家公司可能会使用 Ansible 在数百台服务器上部署一致的应用堆栈,从而确保系统的效率。
根据 Ansible 社区文档,Ansible 的设计原则是:
- 无代理:可避免在 IT 基础架构中额外安装软件,从而简化部署。
- 简单易用:Ansible Playbook 编写自 YAML,这是一种通俗易懂的语言,可提高代码可读性。
- 可扩展且灵活:其模块化设计支持各种操作系统,能够实现可扩展的自动化。
- 幂等且可预测:它可以重复运行模块,且不会改变预期状态。
什么是 IT 自动化?
什么是 Kubernetes?
Kubernetes 是一个开源的容器编排平台,可自动执行容器化应用的部署、管理和扩展所涉及的许多手动流程。
容器封装了将应用作为隔离进程运行所需的代码、配置和依赖项。每个应用都在各自的一个容器或多个容器中运行,这些容器被组合为容器集。正在运行的 Kubernetes 部署称为集群,也就是运行容器的一组主机。
Kubernetes 的一大优势是可在多种不同类型的基础架构(从裸机服务器到复杂的混合云环境)上运行。
Kubernetes 的构建基于 3 条核心设计原则。根据 Kubernetes 的实现细节,Kubernetes 部署应具备以下特征:
- 安全:应遵循最新的安全性最佳实践。
- 简单易用:应能通过一些简单的命令进行操作。
- 可扩展:不应偏向于某一个提供商,而是能通过配置文件进行自定义。
在 Kubernetes 环境中实现自动化
虽然 Kubernetes 在编排容器化工作负载方面表现出色,但客户通常还需要引入其他工具来实现基础架构置备、应用生命周期管理以及多集群支持。手动管理这些任务可能会让人不堪重负,并且会增加人为错误的风险。Ansible 可通过在 Kubernetes 环境中实现集群置备的自动化、实施配置以及管理应用部署来应对这些挑战。通过将 Ansible 和 Kubernetes 结合使用,企业组织能够将二者的优势相结合,从而充分利用 Ansible 的模块库、人类可读的 Playbook 以及对虚拟机迁移等复杂任务的支持。这种集成可以弥补关键的操作缺口,使 Kubernetes 环境随着时间的推移逐渐变得更加可扩展、一致且更易于管理。
Ansible 自动化平台和红帽 OpenShift
对于较小规模的部署,Ansible 和 Kubernetes 是实现配置管理的自动化以及编排容器化应用的绝佳起点。而对于大规模运维,红帽 OpenShift 和 Ansible 自动化平台则提供了更全面、更可靠的解决方案。红帽 OpenShift 是一款筑基于 Kubernetes 之上的企业级混合云应用平台,将其与红帽 Ansible 自动化平台结合使用,可将自动化扩展到整个基础架构和应用中,从而增强管理和安全防护功能。通过 OperatorHub 在红帽 OpenShift 中部署 Ansible 自动化平台,是开始安装和管理生命周期的最简单的方法。
在红帽 OpenShift 上安装 Ansible 自动化平台后,您可以将这两个平台结合使用,从而:
- 实现红帽 OpenShift 集群的自动创建、部署和管理。
- 将现有的集群外基础架构与云原生基础架构及服务进行协调。
- 通过一个通用框架可靠地支持部署、扩展和应用更新。
- 一致地迁移和管理虚拟机(VM),并针对公共云或私有云解决方案置备虚拟机。
- 为红帽 OpenShift 集群建立端到端业务连续性和灾难恢复自动化。
Ansible 自动化平台和红帽 OpenShift 都使用 YAML,因此,团队只要熟悉其中任何一个平台就能快速上手。凭借这一共同基础,OpenShift 管理员可以轻松创建 Ansible Playbook,自动化开发人员也能更高效地管理和部署集群。
将 Ansible 自动化平台和红帽 OpenShift 结合使用的其他方式:
Ansible Kubernetes Collection
Ansible Kubernetes Collection 提供的模块让用户能够实现任务的自动化,例如将应用部署到 Kubernetes 集群,管理容器集、服务和部署等资源,以及与 Kubernetes 应用程序编程接口(API)进行交互。例如,您可以使用 Ansible Playbook 在 Kubernetes 集群中自动部署微服务。
Ansible OpenShift Collection
Ansible OpenShift Collection 可简化基于 Kubernetes 架构的红帽 OpenShift 集群的自动化。借助 Ansible OpenShift Collection,管理 OpenShift 项目、扩展应用以及处理 OpenShift 资源等任务均可自动执行。
红帽高级集群管理
红帽 Kubernetes 高级集群管理这款工具可对多个 OpenShift 集群进行集中管理。它使管理员能够跨集群部署、配置和监控应用。通过与 Ansible 自动化平台结合使用,红帽高级集群管理可用于跨大量集群自动执行任务。
Kubernetes 和事件驱动的 Ansible
事件驱动的 Ansible 支持动态且实时响应系统内的事件。将事件驱动的 Ansible 与 Kubernetes 集成后,可自动响应 Kubernetes 集群中的事件,例如在流量激增时扩展容器集,或者在代码被推送到存储库后部署应用的新版本。这种集成可增强 Kubernetes 所管理环境的敏捷性和弹性。
为什么选择红帽来实现自动化和容器编排?
红帽是开源技术(包括 Ansible 和 Kubernetes)的领导者和积极构建者,我们创建的一些基本工具可以帮助您保护、简化以及自动更新 IT 基础架构。
借助 Ansible 自动化平台,您可以在整个企业范围内创建、管理和扩展自动化,它支持对数十种 IT 自动化用例进行管理,包括置备、配置管理、云和虚拟化。
红帽 OpenShift 在 Kubernetes 的基础上构建而成,借助其可扩展性以及控制和编排功能,您可以构建新的容器化应用、对其进行托管并在云中加以部署,从而轻松快速地将各种奇思妙想转变为新业务。