本文介紹如何通過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
返回信息
如果返回如下類似信息,則表示掛載文件系統成功。