iT邦幫忙

2021 iThome 鐵人賽

DAY 17
0

正文

今天要來安裝Kubernetes上的NFS provisioner,主要就是搭配我的DS718+做dynamic provisioner

Github Repo

artifacthub

helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/

檢查一下我們準備要使用的路徑為IThomeNFS

## 先create一個namespace
kubectl create ns nfs-provisioner

##使用指令簡易安裝
helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
    --set nfs.server=192.168.1.107 \
    --set nfs.path=/volume1/IThomeNFS \
    --version 4.0.13 \
    -n nfs-provisioner

安裝完成後可以看到如下圖

這邊要注意,所有節點必須要安裝nfs-common(ubuntu),才能夠支援nfs mount
retain policy,volumebindmode 這些有需要都要記得在安裝時調整

寫一份yaml測試,其中pvc指定storage class為nfs-client

apiVersion: v1
kind: Pod
metadata:
  name: test-pv-pod
  namespace: test
spec:
  volumes:
    - name: task-pv-storage
      persistentVolumeClaim:
        claimName: test-pvc
  containers:
    - name: task-pv-container
      image: nginx
      ports:
        - containerPort: 80
          name: "http-server"
      volumeMounts:
        - mountPath: "/usr/share/nginx/html"
          name: task-pv-storage
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: test-pvc
  namespace: test
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: nfs-client
  resources:
    requests:
      storage: 30Gi

成功綁定並運行

exec進入container目錄放個檔案測試

在本機將nfs目錄mount到mnt做檢查。

sudo mount -t nfs 192.168.1.107:/volume1/IThomeNFS /mnt

沒有問題,確實有資料。

那這樣之後有pvc/pv需求時都可以直接用這個storage class了。

閒聊

storage實在也是一門高深的學問,不夠懂storage與分散式儲存的我往往能選擇的也只剩NFS、local persistent volumes這種東西(實在也不敢亂用)......就加減用吧。


上一篇
Day16,Domain&自簽憑證
下一篇
Day18,ArgoCD ( 1 / 2 )
系列文
HomeLab 30天,胡搞瞎搞亂弄一通。30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言