挂载 kube 卷时出现 nfs 问题

挂载 kube 卷时出现 nfs 问题

亲爱的,我正在使用 nfs 使数据在 postgresql 部署中持久保存,部署文件如下所示

apiVersion: apps/v1
kind: Deployment
metadata:
  name: postgres-deployment
spec:
  selector:
    matchLabels:
      app: postgres
  replicas: 1 # tells deployment to run 2 pods matching the template
  template:
    metadata:
      labels:
        app: postgres
    spec:
      containers:
      - name: postgres
        image: postgres:10.4
        ports:
        - containerPort: 5432
        envFrom:
        - configMapRef:
            name: postgres-config
        volumeMounts:
        - mountPath: /var/lib/postgresql/data
          name: postgredb
      volumes:
      - name: postgredb
        persistentVolumeClaim:
            claimName: nfs-pvc

部署启动后,成功了。但是当我尝试连接服务(通过 NodePort 公开)时,出现了以下错误

psql -h XXXX --port=31329
psql: error: FATAL:  could not open relation mapping file "global/pg_filenode.map": Stale file handle

这看起来像是一个权限问题,所以我分析了 nfs 挂载和导出命令,得到了这个

root@nginx-deployment-6ff6548d78-45zkq:/# ls -l  /var/lib/postgresql/
ls: cannot access '/var/lib/postgresql/data': Stale file handle
total 0
d????????? ? ? ? ?            ? data

[admin@ip-XXXXX ~]$ sudo ls -l  /srv/nfs/postgres/
[sudo] password for admin: 
total 56
-rw-------. 1 systemd-coredump input     3 Mar  4 17:33 PG_VERSION
drwx------. 6 systemd-coredump input    54 Mar  4 17:34 base
drwx------. 2 systemd-coredump input  4096 Mar  4 17:37 global
drwx------. 2 systemd-coredump input     6 Mar  4 17:33 pg_commit_ts
drwx------. 2 systemd-coredump input     6 Mar  4 17:33 pg_dynshmem
-rw-------. 1 systemd-coredump input  4535 Mar  4 17:34 pg_hba.conf
-rw-------. 1 systemd-coredump input  1636 Mar  4 17:33 pg_ident.conf
drwx------. 4 systemd-coredump input    68 Mar  4 17:38 pg_logical

冲突似乎是由于systemd coredump - 系统核心转储用户和输入nfs 服务器上的组。

你能帮忙吗

答案1

您的部署文件包含以下条目:

 volumeMounts:
        - mountPath: /var/lib/postgresql/data

检查 NFS 是否存在。这主要是由于缺少挂载路径。执行ls -l <mountPath>。这也会给你一个Stale file handle错误。

相关内容