Kubernetes 集群与 HACMP 集群

Kubernetes cluster vs HACMP cluster

HACMP 集群通过 IBM lpar 或在 AIX 物理设备中提供高可用性特性

同样,

windows 虚拟机

中的 MSCS 集群服务

Linux/Windows 虚拟机的 Veritas 集群


kubernetes集群服务与这些集群服务有何不同?

主要区别

TL;DR 背景故事

集群 = 组合多个协作服务器来完成 none 个独立服务器 ("nodes") 可以单独完成的事情。

您提到的集群产品——HACMP、MSCS 等——是在 1990 年代设计的(并随着时间的推移而发展),主要是为了提供比任何单个服务器都可以保证的更高的 app/service 可用性。如果有适当的支持集群的应用程序、数据库和中间件,如果集群中的一台服务器出现故障或出现严重故障,app/service 将继续在其余节点上运行而不会中断。在最好的情况下,这几乎可以消除计划外或计划内的停机时间。

Kubernetes 集群具有一些高可用性功能,但从一个非常不同的世界观开始——20 年后 HACMP 和朋友开始的地方。在 IT 领域,20 年 = 整整几代人。 Kubernetes 和类似集群(例如 Docker Swarm)期望每个服务器托管多个 "containers"(打包的工作负载)而不是单个 app/workload。操作系统容器是 app/system/service 虚拟化的一种轻量级形式,在大多数 HA 集群的生命周期中,主流应用程序基本上不存在。

任何平台的抽象和功能都在不断发展以匹配常见工作负载的预期问题。对于 Kubernetes,这意味着每个服务器可能有多个或多个工作负载,在 app/service 的生命周期内进行大量更新,网络是软件连接的主要方式,并且 intense apps/services 居住地的活力/不断变化。这些不是 HA 集群或其软件的期望、设计标准或常见现实 运行。除了容器(例如 Docker)与基本操作系统提供的许多抽象之外,Kubernetes 还为 "orchestrating" 许多 apps/services 跨大型服务器集群并发和动态地提供了许多抽象和工具。例如。 Pods(多个容器组一起运行)和 StatefulSets(用于管理共享持久状态)。 HA 集群包括一些 concepts/facilities 超越单个服务器的东西(例如服务定义、连接拓扑、心跳、故障转移策略)。这些可以被认为是容器和 Kubernetes 设施的祖先形式。但是,在互联网、横向扩展、虚拟化、云和 DevOps 革命之后出现的 Kubernetes 等平台比任何 1980 年代或 90 年代出生的 HA 集群都具有更大的规模和活力。

如果 HA 集群是农业时代的马拉车,那么 Kubernetes 就是州际公路上的现代拖拉机拖车 运行。两者都支持 "getting to market,",尽管规模非常不同,期望和基础设施也大不相同。

最后,由于 Kubernetes 专注于规模和动态性,因此其许多工作负载并未针对可用性进行彻底优化——至少与 HA 集群的重点不同 "it must stay running, always and forever!" 方式不同。