如何解决Pod是否被迫在存在其持久卷的节点上运行?
我正在用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)
解决方法
假设我创建一个Persistent volume Claim,要求在worker1上存储10GB的存储空间,然后我部署了一个依赖于此PVC的服务,那么该服务是否被迫在worker1上进行了调度?
这是一个好问题。如何工作取决于您的存储系统。为您的永久卷声明定义的 StorageClass 包含有关Volume Binding Mode的信息。通常使用动态配置卷,以便在计划用户/消费者/ Pod时首先分配该卷。通常,此卷不存在于本地节点上,而是位于同一数据中心中的远程位置。 Kubernetes还支持Local Persistent Volumes,它们是位于同一节点上的物理卷,但是它们通常更昂贵,并且在需要高磁盘性能和大容量时使用。
,只是一些示例,正如已经提到的,它取决于您的存储系统,因为我看到您使用本地存储选项
本地存储: 是的,吊舱需要在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。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。