安裝 NFS 服務器: 首先,打開終端並安裝 NFS 服務器軟件包:
sudo apt update
sudo apt install nfs-kernel-server
創建共享目錄: 決定哪個目錄你想要共享,然後創建它(如果還不存在):
sudo mkdir -p /nfs/data
配置共享目錄權限: 配置目錄的權限,確保 NFS 客戶端可以訪問它:
sudo chown root:root /nfs/data
sudo chmod 777 /nfs/data
編輯 /etc/exports 文件: 決定你想要共享的目錄和哪些客戶端可以訪問它,然後編輯 /etc/exports 文件:
sudo nano /etc/exports
在這個文件中,添加以下行
/nfs/data *(rw,sync,no_subtree_check,no_root_squash)
應用 exports 文件並重啓服務: 修改完 /etc/exports 文件後,應用更改並重啓 NFS 服務:
sudo exportfs -ra
sudo systemctl restart nfs-kernel-server
節點安裝數據卷驅動
每個節點都要運行 apt install nfs-common
k8s配置文件
# hustoj-storage-class.yml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: hustoj-storage-class
provisioner: kubernetes.io/nfs
parameters:
nfsServer: 192.168.215.129
nfsPath: /nfs/data
readOnly: "false"
#pv-definition.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: hustoj-pv
spec:
storageClassName: hustoj-storage-class
capacity:
storage: 10Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
nfs:
server: 192.168.215.129
path: /nfs/data
#pvc-definition.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: hustoj-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
storageClassName: hustoj-storage-class
#nginx-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
namespace: default
spec:
replicas: 6
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
securityContext:
fsGroup: 0
runAsUser: 0
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/shiningrise/hustoj:v1.6
securityContext:
runAsUser: 0
allowPrivilegeEscalation: true
ports:
- containerPort: 80
volumeMounts:
- mountPath: /volume # 將卷掛載到容器內的 `/path/to/mount` 路徑
name: hustoj-volume # 引用之前定義的卷名稱
volumes:
- name: hustoj-volume
persistentVolumeClaim:
claimName: hustoj-pvc
#nginx-service.yml
apiVersion: v1
kind: Service
metadata:
name: nginx-service
namespace: default
spec:
selector:
app: nginx
loadBalancerIP: 192.168.215.200
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer #NodePort LoadBalancer
相關文件下載
https://files.cnblogs.com/files/shiningrise/k8s_3.zip?t=1715732180&download=true