本文介紹如何通過Kubernetes內建的Volume功能,將NAS檔案系統掛載至Kubernetes叢集進行訪問。
前提條件
使用限制
NAS檔案系統在掛載連通性、檔案系統數量及協議類型等方面存在相應的約束條件。詳細資料,請參見使用限制。
在沒有卸載NAS檔案系統前,務必不要刪除NAS掛載點,否則會造成作業系統無響應。
操作步驟
登入自建Kubernetes叢集節點。
配置Kubernetes節點。
說明您需要為Kubernetes叢集中的每個節點都進行配置。如果該叢集有新增節點時,您也需要為其配置以下操作然後再將新增節點加入到Kubernetes叢集中。
安裝NFS用戶端。具體操作,請參見安裝NFS用戶端。
執行以下命令,配置/etc/nfsmount.conf檔案。
cat <<EOF >> /etc/nfsmount.conf [ Server "file-system-id.region.nas.aliyuncs.com" ] vers=3 Proto=tcp Lock=False resvport=False rsize=1048576 wsize=1048576 hard=True timeo=600 retrans=2 EOF
其中,
file-system-id.region.nas.aliyuncs.com
為NAS檔案系統掛載點地址,請根據實際值替換。您可以在NAS控制台,單擊目標檔案系統,然後單擊掛載使用,將滑鼠放置在掛載地址列的表徵圖上擷取掛載點地址。說明僅推薦使用NFS v3協議掛載NAS檔案系統。
以上配置參數均為必填參數,除
file-system-id.region.nas.aliyuncs.com
參數和vers
協議版本可修改外,其他參數無需修改。
驗證檔案系統與Kubernetes節點網路連通。
執行以下命令,嘗試掛載NFS協議檔案系統。
mount -t nfs file-system-id.region.nas.aliyuncs.com:/ /mnt
其中,
file-system-id.region.nas.aliyuncs.com
為NAS檔案系統掛載點地址,請根據實際值替換。如果掛載失敗,請先確認NAS掛載點網域名稱是否能夠
ping
通,並且是否連通2049連接埠。如果以上問題不存在,請使用偵查工具進行排查。具體操作,請參見Linux掛載NFS檔案系統掛載失敗排查。執行以下命令,查看掛載資訊。
mount | grep nfs | grep mnt
如果掛載參數包含vers=3、hard、noresvport、nolock等資訊,則表示網路連通。
確認網路連通後,請執行
umount /mnt
刪除掛載的NFS協議檔案系統。
啟動應用Pod通過Volume掛載使用NFS檔案系統。
本文以啟動一個nginx pod為例介紹通過Volume掛載使用NFS檔案系統。
配置
nginx.yaml
。cat << EOF > ./nginx.yaml apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: selector: matchLabels: app: nginx replicas: 1 template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80 volumeMounts: - mountPath: /data name: test-nfs volumes: - name: test-nfs nfs: server: file-system-id.region.nas.aliyuncs.com # 阿里雲NAS檔案系統掛載點地址,請根據實際值替換。例如,7bexxxxxx-xxxx.ap-southeast-1.nas.aliyuncs.com。 path: / # NAS檔案系統目錄路徑。該目錄必須為已經存在的目錄或根目錄。通用型NAS的根目錄為“/”,極速型NAS的根目錄為“/share”。 EOF
啟用nginx pod使用NFS檔案系統。
kubectl apply -f ./nginx.yaml
檢查Pod是否正常啟動及掛載NFS檔案系統成功。
執行命令,查看Pod運行狀態。
執行命令
kubectl get pods | grep nginx
返回資訊
如果Pod運行狀態為
Running
,則表示正常啟動。
執行以下命令,查看掛載結果。
執行命令
kubectl exec nginx-deployment-9b9b684f5-mgrkh -- df -h /data
返回資訊
如果返回如下類似資訊,則表示掛載檔案系統成功。