k8s的nfs存储外挂设置过程

需求:

  在k8s集群里的某个模块生成的目录文件或者更新的目录文件,存储到外面某台服务器上

1.安装nfs服务(192.168.1.2  Ubuntu 16.04)

apt-get install nfs-kernel-server nfs-common

2.配置nfs挂载目录

vi /etc/exports
  /data *(rw,sync,no_root_squash)

  /data:共享目录
  *:所有主机能访问
  rw:读写权限
  ro:只读
  sync:同步
  no_root_squash:不降低root的权限

3.重启nfs

/etc/init.d/nfs-kernel-server restart

 4.查看

showmount
showmount -e

5.另外,特别注意,开放端口,不然其他主机不能访问

tcp    111
udp    111
tcp    2049
udp    4046

 6.更新k8s模块的yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: newshomebg
  namespace: mod
  labels:
    app: newshomebg
spec:
  replicas: 1
  selector:
    matchLabels:
      app: newshomebg
  template:
    metadata:
      labels:
        app: newshomebg
    spec:
      containers:
      - name: newshomebg
        image: xxx
        ports:
        - containerPort: 8080
        env:
        - name: SPRING_DATASOURCE_USERNAME
          value: 'root'
        volumeMounts:
        - name: nfs-volume            #设置的名称,和下面的name要一样的
          mountPath: /home/uploads    #需要挂载的目录
          subPath: newshomebg         #卷的子目录,也就是在nfs服务目录里生成这个子目录
      volumes:
      - name: nfs-volume              #这个卷的名称,和上面的name要一样的
        nfs:                          #这里是nfs挂载
          server: 192.168.1.2         #nfs服务器的ip或者域名
          path: "/data"               #nfs服务配置的挂载目录
      imagePullSecrets:
      - name: xxx

  以上红色标记的就等同于命令:mount 192.168.1.2:/data/newshomebg /home/uploads

原文地址:https://www.cnblogs.com/chy-op/p/10388291.html