kubernetes存储类节点选择器

kubernetes存储类节点选择器,kubernetes,rancher,kubernetes-pvc,Kubernetes,Rancher,Kubernetes Pvc,我正在尝试利用Rancher的本地卷动态provisioner for k8s,它有多个实例,每个实例都有自己的存储类,因此我可以根据性能提供多种类型的本地卷(例如ssd、hdd等) 基础设施是不对称的;有些节点只有SSD,有些只有HDD,有些两者都有 我知道我可以通过为POD提供节点关联规则来提示调度器选择适当的节点 但是,是否有更好的方法仅在provisioner/storage类级别解决此问题?例如,使存储类仅可用于集群节点的子集 我知道我可以提示调度器通过 为POD提供节点关联规则 使用

我正在尝试利用Rancher的本地卷动态provisioner for k8s,它有多个实例,每个实例都有自己的存储类,因此我可以根据性能提供多种类型的本地卷(例如ssd、hdd等)

基础设施是不对称的;有些节点只有SSD,有些只有HDD,有些两者都有

我知道我可以通过为POD提供节点关联规则来提示调度器选择适当的节点

但是,是否有更好的方法仅在provisioner/storage类级别解决此问题?例如,使存储类仅可用于集群节点的子集

我知道我可以提示调度器通过 为POD提供节点关联规则

使用持久卷时,无需在
Pod
级别定义节点关联规则。节点关联可以在
PersistentVolume
定义中指定

但是,有没有更好的办法在政府层面解决这个问题 仅限供应器/存储类?例如,仅创建存储类 可用于群集节点的子集

否,不能在
StorageClass
级别上指定它。也不能使
StorageClass
仅对节点子集可用

但对于provisioner,我想说是的,它应该是可行的,因为存储provisioner的主要任务之一是创建匹配的
PersistentVolume
对象,以响应用户创建的
PersistentVolumeClaim
。您可以阅读以下内容:

动态卷资源调配允许创建存储卷 随需应变。在没有动态资源调配的情况下,群集管理员 手动调用其云或存储提供商创建 新建存储卷,然后创建PersistentVolume对象以 用Kubernetes来代表他们。动态资源调配功能 无需群集管理员预先调配资源 存储相反,它会在需要时自动调配存储 由用户请求

因此,从一开始就看整个批量供应过程,如下所示:

用户仅创建
PersistenVolumeClaim
对象,并在其中指定
StorageClass

apiVersion:v1 种类:PersistentVolumeClaim 元数据: 姓名:myclaim 规格: 访问模式: -读写 volumeMode:文件系统 资源: 请求: 存储:10Gi storageClassName:本地存储 我知道我可以提示调度器通过 为POD提供节点关联规则

使用持久卷时,无需在
Pod
级别定义节点关联规则。节点关联可以在
PersistentVolume
定义中指定

但是,有没有更好的办法在政府层面解决这个问题 仅限供应器/存储类?例如,仅创建存储类 可用于群集节点的子集

否,不能在
StorageClass
级别上指定它。也不能使
StorageClass
仅对节点子集可用

但对于provisioner,我想说是的,它应该是可行的,因为存储provisioner的主要任务之一是创建匹配的
PersistentVolume
对象,以响应用户创建的
PersistentVolumeClaim
。您可以阅读以下内容:

动态卷资源调配允许创建存储卷 随需应变。在没有动态资源调配的情况下,群集管理员 手动调用其云或存储提供商创建 新建存储卷,然后创建PersistentVolume对象以 用Kubernetes来代表他们。动态资源调配功能 无需群集管理员预先调配资源 存储相反,它会在需要时自动调配存储 由用户请求

因此,从一开始就看整个批量供应过程,如下所示:

用户仅创建
PersistenVolumeClaim
对象,并在其中指定
StorageClass

apiVersion:v1 种类:PersistentVolumeClaim 元数据: 姓名:myclaim 规格: 访问模式: -读写 volumeMode:文件系统 资源: 请求: 存储:10Gi storageClassName:local storage####我理解(希望如此),本地持久卷功能引入的PV级节点关联。但是,只有当PV是预先静态创建的,以便调度器知道在哪个节点上调度POD时,它才有帮助。在pod重新调度期间,它也会有所帮助,因为PV定义已经可用。但是,在动态供应器WaitForFirstConsumer的情况下,pod不是安排在PV之前吗?如果是,则表示该节点已被选中。如果该storageclass无法在该节点上进行资源调配,那么它就是死路一条。我错在哪里了?我理解(希望如此),本地持久卷功能引入的PV级节点关联。但是,只有当PV是预先静态创建的,以便调度器知道在哪个节点上调度POD时,它才有帮助。在pod重新调度期间,它也会有所帮助,因为PV定义已经可用。但是,在动态供应器WaitForFirstConsumer的情况下,pod不是安排在PV之前吗?如果是,则表示该节点已被选中。如果该storageclass无法在该节点上进行资源调配,那么它就是死路一条。我这里出了什么错?