kubernetes pod具有未绑定的即时PersistentVolumeClaims,我使用部署了milvus服务器

wswtfjt7  于 2022-12-22  发布在  Kubernetes
关注(0)|答案(1)|浏览(243)

etcd:启用:真实名称:etcd复制品计数:3 pdb:创建:假像:存储库:"milvusdb/etcd"标签:"3.5.0-r7"拉动政策:如果不存在
服务:类型:群集IP端口:2379对等端口:2380
授权:rbac:已启用:假的
持久性:已启用:真存储类:访问模式:读写一次大小:10Gi

启用自动压缩

每1000次修订压缩一次

自动压缩模式:修订版自动压缩保留:"一千"

将默认配额增加到4G

额外环境变量:

  • 名称:ETCD配额后端字节值:"四二九四九六七二九六"
  • 名称:ETCD心跳间期值:"五百"
  • 名称:ETCD_选举_超时enter code here值:"两千五百"

脉冲星依赖性的配置值

参考:https://github.com/apache/pulsar-helm-chart

enter image description here
我尝试在ubuntu服务器中使用kubernete运行milvus集群。我使用了helm menifest https://milvus-io.github.io/milvus-helm/
数值. yaml https://raw.githubusercontent.com/milvus-io/milvus-helm/master/charts/milvus/values.yaml
我检查了PersistentValumeClaim,发现错误:没有可用于此声明的持久卷,并且未设置存储类

y53ybaqx

y53ybaqx1#

出现此错误是因为您没有永久卷。PVC需要一个容量至少与PVC相同的PV。
这可以手动完成,也可以使用卷提供程序完成。
有人会说,最简单的方法是使用本地storageClass,它使用示例化pod的节点的磁盘空间,添加pod关联,以便pod始终在同一节点上启动,并可以使用该磁盘上的卷。在您的情况下,您正在使用3个副本。尽管可以在同一节点上启动所有3个示例,这很可能不是你想用Kubernetes实现的。如果那个节点坏了,你就不会有任何其他示例在另一个节点上运行。
您首先需要考虑群集的基础架构。卷的数据应该存储在哪里?
一个网络文件系统nfs可能是一个可行的解决方案,在这种情况下,你在你的基础设施中的某个地方有一个nfs,所有的节点都可以访问它。
因此,您可以创建一个可从所有节点访问的PV。
要不总是手动分配PV,您可以在群集内安装Volumeprovisioner。
我在某个集群中使用了这个:https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner
正如我所说,您必须已经有一个nfs,并使用路径配置provvisioner.yaml。
它看起来像这样:

# patch_nfs_details.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: nfs-client-provisioner
  name: nfs-client-provisioner
spec:
  template:
    spec:
      containers:
        - name: nfs-client-provisioner
          env:
            - name: NFS_SERVER
              value: <YOUR_NFS_SERVER_IP>
            - name: NFS_PATH
              value: <YOUR_NFS_SERVER_SHARE>
      volumes:
        - name: nfs-client-root
          nfs:
            server: <YOUR_NFS_SERVER_IP>
            path: <YOUR_NFS_SERVER_SHARE>

如果您使用的是没有provisioner的nfs,则需要定义一个与nfs链接的storageClass。
有很多解决方案来保持持久的卷。
您可以在此处找到StorageClasses的列表:

https://kubernetes.io/docs/concepts/storage/storage-classes/

最后,如果您不是自己管理集群,这还取决于集群的供应位置。

相关问题