Art*_* K. 0 orchestration ansible kubernetes
我目前对 Ansible 和 Kubernetes 之间的差异感到困惑。以及自动化和编排的相关术语。据我所知,自动化只是自动执行特定任务的过程。同时,编排是自动化一系列单独任务以协同工作的过程。
Ansible 可用于设置能够表示单个任务以及安装、更新或删除软件包、配置等的步骤的 Playbook。一旦您拥有 Playbook,您就可以为多个服务器及其应具有的软件定义状态通过您的剧本安装。但基本上,您必须告诉 Ansible 在哪台主机上应该达到什么状态。
使用像 Kubernetes 这样的编排工具,您可以简单地定义一个状态(即 3 个 x 类型的容器,2 个 y 类型的容器等)。然后软件将自动选择注释来启动您的 pod 等。
那么基本上编排(自动达到给定状态)和配置(如 Ansible)只是自动执行命令吗?
谢谢。
问候阿图尔
简短的回答是;ansible -> 一次性任务(安装一堆东西然后退出),kubernetes -> 生命周期管理(不仅仅是部署、监控、维护、健康检查、保护、高可用性等)。
正如您正确指出的那样,Ansible 是一个声明性自动化系统;也就是说,你定义了一个你想要的状态,它会幂等地(它检查某件事是否已经完成并跳过它以避免副作用)为你实现这一目标。
Kubernetes 也是一个声明式系统,您可以在其中定义基础设施所处的状态,它会为您实现它。
区别在于每个人的目的以及他们要解决的问题。Ansible 解决了执行我们所说的基础设施操作的问题day-1,即在基础设施组件上安装操作系统、依赖包、执行网络配置等。它使用声明性剧本(只需定义您想要完成的操作)来实现此目的,而不是命令式脚本(您还必须描述您希望如何完成它)。它被称为infrastructure-as-code.
Kubernetes 是在此之后day-2的内容,即操作,您已经准备好底层基础设施,并且现在希望能够在其之上配置云基础设施。并不是说您只想部署容器化云,还要维护它,为其提供 HA、安全性,以便能够管理其上的应用程序工作负载、审核它、扩大和缩小规模以及许多其他可以做到的事情。被称为day-3、day-4任务等。
因此,正如您可以想象的那样,它们都有一些共同点(都进行基础设施管理,都是声明性的),但它们有不同的用例。通常,如果您要设置云设置,您将执行以下操作:
day-0; get all of your infrastructure; hardware/public-cloud etc.
day-1; use something like Ansible to setup the infrastructure components (EC2 nodes, hardware servers or GCE instances)
day-2; install k8s on them to start running containerized workloads
day-3; use k8s native mechanisms to deploy and manage and monitor applications
...
Run Code Online (Sandbox Code Playgroud)
我希望这能澄清您心中的大局!
| 归档时间: |
|
| 查看次数: |
451 次 |
| 最近记录: |