带有 PV、PVC 问题的 Kubernetes NFS 部署

Kubernetes NFS Deployment with PV, PVC Questions

我想在 Kubernetes 中设置一个集群内 NFS 服务器来为我的 pods(nginx webroot 等)提供共享。

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

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

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

我觉得我迷路了,也许你能帮帮我。

  1. PV
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

1) 创建 NFS 服务器部署。

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

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

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

4) 创建 PVC 并将其挂载到任何需要的地方。