[英]pod has unbound immediate PersistentVolumeClaims, I deployed milvus server using
etcd:已启用:真名称:etcd replicaCount:3 pdb:创建:假图像:存储库:“milvusdb/etcd”标签:“3.5.0-r7”pullPolicy:IfNotPresent
服务:类型:ClusterIP 端口:2379 peerPort:2380
身份验证:rbac:已启用:假
持久性:启用:真存储类:访问模式:ReadWriteOnce 大小:10Gi
autoCompactionMode:修订版 autoCompactionRetention:“1000”
额外的环境变量:
enter code here
值:“2500”我正在尝试在 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 他们是一个错误没有可用于此声明的持久卷并且没有设置存储类
出现此错误是因为您没有持久卷。 一个pvc需要一个至少和pvc容量一样的pv。
这可以手动完成或使用 Volume provvisioner 完成。
有人会说的最简单的方法是使用本地存储类,它使用实例化 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>
如果您使用不带 provvisioner 的 nfs,则需要定义一个链接到您的 nfs 的 storageClass。
有很多解决方案来保存持久卷。
在这里您可以找到 StorageClasses 的列表:
https://kubernetes.io/docs/concepts/storage/storage-classes/
最后,如果您不是自己管理集群,它还取决于集群的配置位置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.