【问题标题】:Kubernetes NFS Deployment with PV, PVC QuestionsKubernetes NFS 部署与 PV、PVC 问题
【发布时间】:2019-09-24 07:21:46
【问题描述】:

我想在 Kubernetes 中设置一个集群内 NFS-Server 来为我的 pod(nginx webroot 等)提供共享。

理论上应该有一个持久卷、一个卷声明和 NFS-Server,据我所知,这是一个部署。

要使用 PV 和 PVC,我需要分配 NFS-Server 的 IP-Adress,我不知道,因为它是在我使用服务公开 NFS-Server 时自动生成的。

如果我想自己部署 nfs-server 部署,也会出现同样的问题,因为我将 PVC 用作卷。但是如果不给它们 NFS-Server IP,我就无法部署 PV 和 PVC。

我想我迷路了,也许你能帮帮我。

  1. 光伏
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-nfs-pv1
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteMany
  nfs:
    path: "/exports/www"
    server: SERVER_NAME:PORT
  1. 聚氯乙烯
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pv-nfs-pv1
  labels:
    type: local
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 500Mi
  1. NFS 部署
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nfs-server
spec:
  replicas: 1
  selector:
    matchLabels:
      role: nfs-server
  template:
    metadata:
      labels:
        role: nfs-server
    spec:
      containers:
        - name: nfs-server
          image: gcr.io/google_containers/volume-nfs:0.8
          ports:
            - name: nfs
              containerPort: 2049
            - name: mountd
              containerPort: 20048
            - name: rpcbind
              containerPort: 111
          securityContext:
            privileged: true
          volumeMounts:
            - mountPath: /exports/www
              name: pv-nfs-pv1
      volumes:
        - name: pv-nfs-pv1
          gcePersistentDisk:
            pdName: pv-nfs-pv1
#            fsType: ext4

【问题讨论】:

    标签: kubernetes nfs kubernetes-pvc


    【解决方案1】:

    1) 您创建 NFS 服务器部署。

    2) 您通过创建服务(例如“nfs-server”)公开 NFS-server 部署,公开 TCP 端口 2049(假设您使用 NFSv4)。

    3) 您使用以下信息创建 PV:

      nfs:
        path: /exports/www
        server: nfs-server
    

    4) 您创建 PVC 并将其安装在您需要的任何位置。

    【讨论】:

    • 但是 PV 需要 NFS-Server 的 IP,而 Deployment 将 PCV 作为 volumeMount 和 Volume 附加。如果 PV 中没有设置 NFS IP,那么 PV 和 PCV 都不能部署,因此不能部署 NFS Deployment。这就是我在这里的挣扎。
    • 如果部署 nfs-server 并创建名为“nfs-server”的服务,那么 PV 可以简​​单地转到主机名“nfs-server”。在 Kubernetes 中无需使用 IP 地址。
    • 我明白了,但我仍然在部署中有一个用于 pv-nfs-pv1(这是我的 PVC)的 Volume 和 VolumeMount。部署将失败,因为在部署 NFS 时 PV/PVC 不存在。我想,我弄错了一些基础知识:D 部署“nfs-server”无效:spec.template.spec.containers[0].volumeMounts[0].name:未找到:“pv-nfs-pv1”跨度>
    • 这就是为什么您应该在运行部署之前创建 gcePersistentDisk。
    • 现在我明白了。我把卷和磁盘混在一起了。
    猜你喜欢
    • 1970-01-01
    • 2017-10-27
    • 2020-01-10
    • 1970-01-01
    • 1970-01-01
    • 2020-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多