首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes :使用NFS的动态持久卷供应

Kubernetes :使用NFS的动态持久卷供应
EN

Stack Overflow用户
提问于 2017-04-08 22:33:46
回答 6查看 17.6K关注 0票数 15

我有多节点kubernetes设置。我正在尝试使用带NFS卷插件的存储类动态分配持久卷。我找到了glusterfs、aws-ebs、etc.but的存储类示例,但没有找到任何示例。如果我只创建PV和PVC,那么NFS工作得很好(没有存储类)。我尝试通过引用其他插件来为NFS编写存储类文件。请在下面参考它,

nfs-storage-class.yaml

代码语言:javascript
复制
kind: StorageClass
apiVersion: storage.k8s.io/v1beta1
metadata:
  namespace: kube-system
  name: my-storage
  annotations:
    storageclass.beta.kubernetes.io/is-default-class: "true"
  labels:
    kubernetes.io/cluster-service: "true"

provisioner: kubernetes.io/nfs
parameters:
  path: /nfsfileshare
  server: <nfs-server-ip> 

nfs-pv-claim.yaml

代码语言:javascript
复制
apiVersion: v1
metadata:
  name: demo-claim
  annotations:
    volume.beta.kubernetes.io/storage-class: my-storage
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 3Gi

它没有起作用。所以,我的问题是,我们可以为NFS编写一个存储类吗?它是否支持动态配置?

EN

回答 6

Stack Overflow用户

发布于 2020-08-15 12:15:12

截至2020年8月,以下是Kubernetes上NFS持久性的情况:

你可以的

  • 将NFS卷直接放到Pod上:

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
  name: test-pd
spec:
  containers:
  - image: k8s.gcr.io/test-webserver
    name: test-container
    volumeMounts:
    - mountPath: /test-pd
      name: test-volume
  volumes:
  - name: test-volume
    nfs:
      path: /foo/bar
      server: wherever.dns

  • 手动创建一个由NFS支持的持久卷,并使用持久卷声明装载它(PV规范如下所示):

代码语言:javascript
复制
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv0003
spec:
  capacity:
    storage: 5Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  storageClassName: slow
  mountOptions:
    - hard
    - nfsvers=4.1
  nfs:
    path: /tmp
    server: 172.17.0.2

  • 使用external-storage中的NFS PV provisioner (现已弃用)。这是两年前的最后一次更新,并且已经正式终止,祝你好运。使用此路由,您可以创建一个如下所示的Storage Class,以从您的NFS服务器实现PVC。

代码语言:javascript
复制
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: example-nfs
provisioner: example.com/nfs
mountOptions:
  - vers=4.1

  • 显然,CSI是未来的趋势,然而,there is a NFS CSI driver.还不支持动态预配置,所以它并不是非常有用。
    • Update (2020年12月):CSI driver.

Dynamic provisioning显然正在开发中(在master上,但尚未发布

  • 你也许可以用社区里的东西或者你自己写的东西来代替external-storage的NFS配置器。在研究这个问题的时候,我偶然发现了a provisioner written by someone on GitHub,。这样的配置器是否执行得很好,是否安全,或者是否能正常工作,我无从得知,但它们确实存在。
票数 5
EN

Stack Overflow用户

发布于 2017-04-12 02:45:12

我也在考虑做同样的事情。我找到了https://github.com/kubernetes-incubator/external-storage/tree/master/nfs,我想你的配置器是基于它的?

我认为nfs提供程序需要在定义的路径下创建一个唯一的目录。我真的不确定该如何做到这一点。

也许这是作为kubernetes repo上的github问题更好。

票数 2
EN

Stack Overflow用户

发布于 2017-08-02 02:05:00

使用NFS的动态存储预配置不起作用,最好使用glusterfs。有一个很好的教程,可以解决设置过程中的常见问题。http://blog.lwolf.org/post/how-i-deployed-glusterfs-cluster-to-kubernetes/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43295344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档