1

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

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

要使用 PV 和 PVC,我需要分配 NFS-Server 的 IP 地址,我不知道,因为它是在我使用服务公开 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. PVC
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
4

1 回答 1

2

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

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

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

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

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

于 2019-05-06T16:30:40.670 回答