持久卷和 OpenShift 3.11

Persistent Volume and OpenShift 3.11

我刚刚安装了 OpenShift-Okd 3.11,正在试用持久性 Postgres 数据库。

尝试创建数据库后,出现以下错误:

MountVolume.SetUp failed for volume "postgresql" : 
mount failed: exit status 32 Mounting command: systemd-run Mounting arguments: --description=Kubernetes transient mount for /var/lib/origin/openshift.local.volumes/pods/b76a314a-d59a-11e8-a502-6c626d58b24d/volumes/kubernetes.io~nfs/postgresql --scope -- mount -t nfs apps.mydomain.com:/pg-data /var/lib/origin/openshift.local.volumes/pods/b76a314a-d59a-11e8-a502-6c626d58b24d/volumes/kubernetes.io~nfs/postgresql Output: 
Running scope as unit run-7329.scope. mount.nfs: Protocol not supported

我还创建了以下持久卷:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: postgresql 
spec:
  capacity:
    storage: 5Gi 
  accessModes:
  - ReadWriteOnce 
  nfs: 
    path: /pg-data 
    server: apps.mydomain.com 
  persistentVolumeReclaimPolicy: Retain

即使在创建 PV(使用 oc create -f pv.yml)之后,我仍然会收到上述错误。

看起来您在 apps.mydomain.com 上没有 NFS 服务器 运行ning,您需要有一个 NFS 服务器导出可以远程挂载到 NFS 客户端的目录,在这种情况下是您的Postgres pod.

如果您不确定如何设置 NFS 服务器,可以按照 this guide 在 Kubernetes 中安装它。

您还可以在 RHEL 7 上 运行 NFS server outside Kubernetes if you'd like to. Here's another guide to setup and NFS server