目录
- 安装 NFS 服务器: 首先,打开终端并安装 NFS 服务器软件包:
- 创建共享目录: 决定哪个目录你想要共享,然后创建它(如果还不存在):
- 配置共享目录权限: 配置目录的权限,确保 NFS 客户端可以访问它:
- 编辑 /etc/exports 文件: 决定你想要共享的目录和哪些客户端可以访问它,然后编辑 /etc/exports 文件:
- 应用 exports 文件并重启服务: 修改完 /etc/exports 文件后,应用更改并重启 NFS 服务:
- 节点安装数据卷驱动
- k8s配置文件
- 相关文件下载
安装 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 YAML 复制 全屏
相关文件下载
https://files.cnblogs.com/files/shiningrise/k8s_3.zip?t=1715732180&download=true