OpenStack 本身跑在操作系统上,不跑在 Hypervisor 上。
它是管理 Hypervisor,而不是运行在 Hypervisor 里面。
层级关系(从上到下)
1. 物理服务器
2. 操作系统(Linux)
◦ OpenStack 所有服务(Nova、Neutron、Glance…)都运行在这一层
3. Hypervisor(KVM / VMware / Xen 等)
◦ 同样安装在 Linux 上,和 OpenStack 平级
4. OpenStack 控制 Hypervisor
◦ OpenStack 通过 API 告诉 Hypervisor:创建虚拟机、删虚拟机、配网络
5. 用户虚拟机(VM)
◦ 真正跑在 Hypervisor 上
跟 OpenStack 逻辑完全一样,一句话先给结论:
Kubernetes 跑在操作系统上,不是跑在容器运行时上
完整层级(从上到下)
1. 物理机 / 虚拟机
2. 操作系统(Linux)
◦ kube-apiserver、kubelet、kube-scheduler 等全都跑在这里
3. 容器运行时(containerd、CRI-O、Docker)
◦ 也安装、运行在 Linux 上
4. Kubernetes 通过 CRI 接口控制容器运行时
5. 真正的容器(业务 Pod)跑在容器运行时之上
简单类比
• K8s ≈ OpenStack
• 容器运行时 ≈ Hypervisor(KVM)
• 容器 ≈ 虚拟机
所以:
• OpenStack 跑在 OS 上,管理 Hypervisor
• K8s 跑在 OS 上,管理容器运行时
两者架构思路是一模一样的。