中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

k8s共享存儲之nfs

發布時間:2020-07-12 05:27:39 來源:網絡 閱讀:1467 作者:蔣將將 欄目:云計算

特別說明:測試使用,不建議生產環境

1、在master節點配置(node1)

1)yum安裝nfs

# yum -y install nfs-utils

NFS的關鍵工具包括:

主要配置文件:/etc/exports;

NFS文件系統維護命令:/usr/bin/exportfs;

共享資源的日志文件: /var/lib/nfs/*tab;

客戶端查詢共享資源命令: /usr/sbin/showmount;

端口配置: /etc/sysconfig/nfs。

2)新建共享目錄

# mkdir -p /data/volunes

3)設置Nfs權限

# cat /etc/exports

k8s共享存儲之nfs

權限參數說明:

ro ?只讀訪問

rw ?讀寫訪問

sync ? ?所有數據在請求時寫入共享

async ? nfs在寫入數據前可以響應請求

secure ?nfs通過1024以下的安全TCP/IP端口發送

insecure ? ?nfs通過1024以上的端口發送

wdelay ?如果多個用戶要寫入nfs目錄,則歸組寫入(默認)

no_wdelay ? 如果多個用戶要寫入nfs目錄,則立即寫入,當使用async時,無需此設置

hide ? ?在nfs共享目錄中不共享其子目錄

no_hide 共享nfs目錄的子目錄

subtree_check ? 如果共享/usr/bin之類的子目錄時,強制nfs檢查父目錄的權限(默認)

no_subtree_check ? ?不檢查父目錄權限

all_squash ?共享文件的UID和GID映射匿名用戶anonymous,適合公用目錄

no_all_squash ? 保留共享文件的UID和GID(默認)

root_squash root用戶的所有請求映射成如anonymous用戶一樣的權限(默認)

no_root_squash ?root用戶具有根目錄的完全管理訪問權限(不安全)

anonuid=xxx 指定nfs服務器/etc/passwd文件中匿名用戶的UID

anongid=xxx 指定nfs服務器/etc/passwd文件中匿名用戶的GID

4)啟動服務

# systemctl enable nfs.service

# systemctl start nfs.service

# exportfs ?-arv #不用重啟nfs服務,配置文件就會生效

2、在節點node2和node3配置Nfs

1)安裝

yum -y install nfs-utils

2)在node3和node2上掛載:

# mount -t nfs 172.160.45.160:/data/volunes/ /mnt

3、檢查

1)#查看 RPC 服務的注冊狀況

rpcinfo -p localhost

2)#showmount測試

showmount -e 172.160.45.160

4、kubernetes使用NFS共享存儲有兩種方式:

#手動方式靜態創建所需要的PV和PVC;

#通過創建PVC動態地創建對應PV,無需手動創建PV;

k8s共享存儲之nfs

################靜態創建#######################

1)靜態申請PV卷

PersistentVolumes,是k8s抽象化的存儲資源,主要包括存儲能力、訪問模式、存儲類型、回收策略等關鍵信息.PV是k8s實際對接存儲后端的真正入口;

#創建pv對應目錄

# mkdir -p /data/volunes/v{1,2,3}

#配置exportrs

# cat /etc/exports

k8s共享存儲之nfs

#立即生效

# exportfs ?-arv


2)創建pv文件

# vim nfs-pv1.yaml

apiVersion: v1

kind: PersistentVolume

metadata:

name: nfs-pv1

labels:

pv: nfs-pv1

spec:

capacity:

storage: 1Gi

accessModes:

- ReadWriteMany

persistentVolumeReclaimPolicy: Recycle

storageClassName: nfs

nfs:

path: /data/volunes/v1

server: 172.160.45.160

nfs-pv2.yaml類似


配置說明:

① capacity 指定 PV 的容量為 1G。

② accessModes 指定訪問模式為 ReadWriteOnce,支持的訪問模式有:

ReadWriteOnce(RWO):讀寫權限,但是只能被單個節點掛載;

ReadOnlyMany(ROX):只讀權限,可以被多個節點掛載;

ReadWriteMany(RWX):讀寫權限,可以被多個節點掛載;

③ persistentVolumeReclaimPolicy 指定當 PV 的回收策略為 Recycle,支持的策略有:

Retain(保留)- 保留數據,不會再分配給pvc,需要管理員手工清理數據;

Recycle(回收)- 清除 PV 中的數據,保留pv資源,可以留供其他pvc使用;

Delete(刪除)- 刪除整個pv資源及內部的數據;

④ storageClassName 指定 PV 的 class 為 nfs。相當于為 PV 設置了一個分類,PVC 可以指定 class 申請相應 class 的 PV。

⑤ 指定 PV 在 NFS 服務器上對應的目錄。

#創建pv的pod

# kubectl create-f nfs-pv1.yaml

# kubectl get pv

k8s共享存儲之nfs

狀態Available,表示 pv就緒,可以被 PVC 申請;

3)創建PVC

PersistentVolumeClaims,是對PV資源的一種聲明,pvc綁定實體資源pv后,pod通過綁定pvc來使用pv資源.PVC是k8s的一種抽象化的聲明式綁定存儲資源的管理模式的中間層,pod無法直接通過pv使用存儲資源,必須經過pvc,而pvc必須要綁定pv實體后,才可被pod使用;

# vim nfs-pvc2.yaml

apiVersion: v1

kind: PersistentVolumeClaim

metadata:

name: nfs-pvc2

spec:

accessModes:

- eadWriteMany

resources:

requests:

storage: 1Gi

storageClassName: nfs

selector:

matchLabels:

pv: nfs-pv2

執行yaml文件創建 pvc

# kubectl create -f nfs-pvc1.yaml

k8s共享存儲之nfs

查看pv資源

k8s共享存儲之nfs

備注:pv對應綁定的PVC

4)創建pod

[root@node1 yaml]# vim nfs-nginx.yaml

apiVersion: v1

kind: ReplicationController

metadata:

name: nginx-test

labels:

name: nignx-test

spec:

replicas: 3

selector:

name: nginx-test

template:

metadata:

labels:

name: nginx-test

spec:

containers:

- name: web01

image: docker.io/nginx:1.14.2

volumeMounts:

- mountPath: "/usr/share/nginx/html/"

name: nfs-pv1

- mountPath: "/var/log/nginx/"

name: nfs-pv2

ports:

- containerPort: 80

volumes:

- name: nfs-pv1

persistentVolumeClaim:

claimName: nfs-pvc1

- name: nfs-pv2

persistentVolumeClaim:

claimName: nfs-pvc2

備注:

# nfs-pv1存儲網頁文件,nfs-pv2日志文件


#執行文件

# kubectl create -f nfs-nginx.yaml

# kubectl get pods -o wide

k8s共享存儲之nfs

#創建nfs-nginx-server文件

# cat nfs-nginx-svc.yaml

apiVersion: v1

kind: Service

metadata:

name: nginx-test

labels:

name: nginx-test

spec:

type: NodePort

ports:

- port: 80

protocol: TCP

targetPort: 80

name: http

nodePort: 30088

selector:

name: nginx-test

#執行文件

# kubectl create -f nfs-nginx-svc.yaml

# kubectl get svc

k8s共享存儲之nfs

5)驗證 PV 是否可用

k8s共享存儲之nfs

測試頁面:

#內部

k8s共享存儲之nfs

#外網

k8s共享存儲之nfs


備注說明: nfs自身沒有冗余能力,數據盤損壞易丟失數據;建議使用:glusterfs或cephfs分布式存儲;


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鄄城县| 驻马店市| 黑龙江省| 贵溪市| 荣成市| 昆山市| 天镇县| 新乐市| 喜德县| 徐州市| 衡南县| 阿拉尔市| 肥城市| 宜章县| 阿城市| 安徽省| 澄迈县| 依安县| 兰溪市| 阳新县| 广宗县| 鄂伦春自治旗| 巫溪县| 盘山县| 禄劝| 四平市| 皋兰县| 铜山县| 连平县| 柘城县| 长乐市| 金湖县| 大城县| 子洲县| 阿鲁科尔沁旗| 衡山县| 双柏县| 土默特右旗| 新龙县| 象州县| 沽源县|