k8s的nfs儲存外掛設定過程

王樹民發表於2020-12-18

 

需求:

  在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

相關文章