NFS exports文件配置格式
<輸出目錄> [客戶端1 選項(xiàng)(訪問權(quán)限,用戶映射,其他)] [客戶端2 選項(xiàng)(訪問權(quán)限,用戶映射,其他)]
a. 輸出目錄:
輸出目錄是指NFS系統(tǒng)中需要共享給客戶機(jī)使用的目錄芭商;
b. 客戶端:
客戶端是指網(wǎng)絡(luò)中可以訪問這個(gè)NFS輸出目錄的計(jì)算機(jī)
客戶端常用的指定方式
指定ip地址的主機(jī):192.168.0.200
指定子網(wǎng)中的所有主機(jī):192.168.0.0/24 192.168.0.0/255.255.255.0
指定域名的主機(jī):david.bsmart.cn
指定域中的所有主機(jī):.bsmart.cn
所有主機(jī):
c. 選項(xiàng):
選項(xiàng)用來設(shè)置輸出目錄的訪問權(quán)限滤馍、用戶映射等。
NFS主要有3類選項(xiàng):
- 訪問權(quán)限選項(xiàng)
設(shè)置輸出目錄只讀:ro
設(shè)置輸出目錄讀寫:rw
- 用戶映射選項(xiàng)
all_squash:將遠(yuǎn)程訪問的所有普通用戶及所屬組都映射為匿名用戶或用戶組(nfsnobody)泥技;
no_all_squash:與all_squash取反(默認(rèn)設(shè)置)懂衩;
root_squash:將root用戶及所屬組都映射為匿名用戶或用戶組(默認(rèn)設(shè)置)腕铸;
no_root_squash:與rootsquash取反;
anonuid=xxx:將遠(yuǎn)程訪問的所有用戶都映射為匿名用戶驾凶,并指定該用戶為本地用戶(UID=xxx);
anongid=xxx:將遠(yuǎn)程訪問的所有用戶組都映射為匿名用戶組賬戶掷酗,并指定該匿名用戶組賬戶為本地用戶組賬戶(GID=xxx)调违;
其它選項(xiàng)
secure:限制客戶端只能從小于1024的tcp/ip端口連接nfs服務(wù)器(默認(rèn)設(shè)置);
insecure:允許客戶端從大于1024的tcp/ip端口連接服務(wù)器泻轰;
sync:將數(shù)據(jù)同步寫入內(nèi)存緩沖區(qū)與磁盤中技肩,效率低,但可以保證數(shù)據(jù)的一致性;
async:將數(shù)據(jù)先保存在內(nèi)存緩沖區(qū)中虚婿,必要時(shí)才寫入磁盤旋奢;
wdelay:檢查是否有相關(guān)的寫操作,如果有則將這些寫操作一起執(zhí)行然痊,這樣可以提高效率(默認(rèn)設(shè)置)至朗;
****no_wdelay:若有寫操作則立即執(zhí)行,應(yīng)與sync配合使用剧浸;
subtree:若輸出目錄是一個(gè)子目錄锹引,則nfs服務(wù)器將檢查其父目錄的權(quán)限(默認(rèn)設(shè)置);
no_subtree:即使輸出目錄是一個(gè)子目錄唆香,nfs服務(wù)器也不檢查其父目錄的權(quán)限嫌变,這樣可以提高效率;
例如:/data/nfsTest/ 127.0.0.1(rw,sync,no_root_squash)
OpenShift相關(guān)的賬號(hào)權(quán)限問題
- SUPGROUP為容器運(yùn)行的用戶添加所屬組躬它,可動(dòng)態(tài)添加
securityContext:
supplementalGroups:
- 1001
- 1002
如果NFS服務(wù)共享目錄中設(shè)置了anongid
腾啥,則可以通過設(shè)置supgroup來賦予容器用戶對NFS目錄的訪問權(quán)限。
- 指定NFS請求版本
配置PV冯吓,強(qiáng)制使用NFSv3來訪問后端NFS服務(wù)碑宴。
參考配置如下:spec.mountOptions
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv0003
spec:
capacity:
storage: 5Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
mountOptions:
- hard
- nfsvers=3
nfs:
path: /tmp
server: 172.17.0.2
另外也可以通過添加annotations.volume.beta.kubernetes.io/mount-options來設(shè)置
oc patch pv pv0003 -p '{"metadata":{"annotations":{"volume.beta.kubernetes.io/mount-options":"rw,nfsvers=3"}}}'