Kubernetes pod 是否在容器运行时内运行?

问题描述

我认为 CR 和 Pod 都在 Kubernetes 节点中运行,该节点可以是物理机或虚拟机。知道 pod 是容器的共享命名空间,Container Runtime 运行容器,这是否意味着 Container Runtime 运行 pod,然后运行容器?

我只是想描绘这两者并了解它们的工作原理。

解决方法

CR 只运行单个容器。 Pod 可以容纳多个容器。 Pod 是一个共享命名空间和管理域,旨在将单个“主”服务保存在单个容器中,多个支持容器并排运行。 Pod 不仅仅是一个虚拟结构,因为它的存在会导致名称解析、路由表、存储等方面的物理变化。

一个 Pod 可能有许多实例运行在一个或多个节点上。一个节点可以被认为是一台物理计算机,尽管它通常是一个虚拟机。

在查看 KinD(Docker 中的 Kubernetes)类型解决方案时,事情变得更加复杂,例如 KinD 本身或 K3D,您在其中运行 kubernetes 控制平面和所有节点本身作为容器。在这种情况下,事情有点像“开始”,但在大多数情况下,它们与普通 kubernetes 完全一样建模,您可以忽略这些奇怪之处并假设您不是真的在 docker(或任何其他容器运行时)中,并且只需处理概念。