使用PV,PVC进行Kubernetes NFS部署问题

时间:2019-05-06 16:12:29

标签: kubernetes nfs kubernetes-pvc

我想在Kubernetes中设置群集内NFS服务器,以为我的Pod(nginx webroot等)提供共享。

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

要使用PV和PVC,我需要分配我不知道的NFS服务器的IP地址,因为当我向NFS服务器提供服务时它会自动生成。

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

我想我迷路了,也许你可以帮助我。

  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 个答案:

答案 0 :(得分:2)

1)创建NFS服务器部署。

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

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

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

4)创建PVC并将其安装在需要的地方。