Pod是否被迫在存在其持久卷的节点上运行?

时间:2020-09-18 02:10:27

标签: kubernetes persistent-volumes persistent-volume-claims

我正在用5 Rpi集群自学Kubernetes,而Kubernetes在Pod调度方面对待持久卷的方式让我有些困惑。

我有4个使用ext4格式的64GB micro SD卡的工作节点。这样做不会让GCP或AWS挣钱,但这是一个附带项目。

假设我在worker1上创建了一个Persistent volume Claim请求10GB的存储,并且我部署了一个依赖于此PVC的服务,那么该服务是否被迫在worker1上进行了调度?

我是否应该研究像Ceph或Hdfs这样的分布式文件系统,以使Pod不受限于在特定节点上进行调度?

很抱歉,如果这看起来像是一个愚蠢的问题,我是自学成才,并且仍然试图弄清楚这个问题! (随时通过拉动要求改善我的tl;dr doc for kubernetes)

2 个答案:

答案 0 :(得分:1)

假设我创建一个Persistent volume Claim,要求在worker1上存储10GB的存储空间,然后我部署了一个依赖于此PVC的服务,那么该服务是否被迫在worker1上进行了调度?

这是一个好问题。如何工作取决于您的存储系统。为您的永久卷声明定义的 StorageClass 包含有关Volume Binding Mode的信息。通常使用动态配置卷,以便在计划用户/消费者/ Pod时首先分配该卷。通常,此卷不存在于本地节点上,而是位于同一数据中心中的远程位置。 Kubernetes还支持Local Persistent Volumes,它们是位于同一节点上的物理卷,但是它们通常更昂贵,并且在需要高磁盘性能和大容量时使用。

答案 1 :(得分:1)

只是一些示例,正如已经提到的,它取决于您的存储系统,因为我看到您使用本地存储选项

本地存储: 是的,吊舱需要在PV所在的同一台计算机上运行(您的情况)

ISCSI / Trident San: 否,该节点将在将要安排Pod的位置安装iscsi块设备 (如上所述,卷绑定模式是一个重要的关键字,可能需要将其设置为“ WaitForFirstConsumer”)

NFS / Trass Nas: 不,它的nfs可以从任何地方安装,只要您可以访问它并对其进行身份验证

VMWare VMDK: 不,与iscsi相同,已安排Pod的节点从数据存储区挂载了vmdk

ceph / rook.io: 不,您会获得3个用于存储,文件,阻止对象存储的选项,每种类型都是分布式的,因此您可以在每个节点上计划一个容器。 另外,ceph是在商品硬件上承载分布式软件定义存储的理想系统,我可以推荐的https://rook.io/基本上是一个基于“容器类固醇”的开源ceph。