k8s核心操作_k8s中的存储抽象_基本概念与NFS搭建_Deployment使用NFS进行挂载---分布式云原生部署架构搭建028
    		       		warning:
    		            这篇文章距离上次修改已过448天,其中的内容可能已经有所变动。
    		        
        		                
                在Kubernetes中,我们可以使用PersistentVolume (PV) 和 PersistentVolumeClaim (PVC) 来抽象存储资源。这样,Pod 就可以像请求内存和 CPU 资源一样请求存储资源。
以下是如何使用 NFS 创建一个 PersistentVolume 并通过 PersistentVolumeClaim 为 Deployment 提供存储的步骤:
步骤1:创建一个 NFS 服务器
首先,你需要一个 NFS 服务器。如果你已经有一个 NFS 服务器,请跳过这一步。如果没有,你可以在你的本地机器或云服务上设置一个。
步骤2:创建一个 PersistentVolume
创建一个 PersistentVolume 资源以代表 NFS 服务器上的一个导出目录。
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv
spec:
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteOnce
  nfs:
    server: nfs-server-ip
    path: "/nfs/data"步骤3:创建一个 PersistentVolumeClaim
接下来,创建一个 PersistentVolumeClaim 来请求存储。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi步骤4:在 Deployment 中使用 PersistentVolumeClaim
最后,在 Deployment 定义中引用 PersistentVolumeClaim,以便 Pod 可以挂载所需的存储。
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nfs-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nfs-app
  template:
    metadata:
      labels:
        app: nfs-app
    spec:
      containers:
        - name: nfs-container
          image: nginx
          ports:
            - containerPort: 80
          volumeMounts:
            - name: nfs-volume
              mountPath: "/usr/share/nginx/html"
      volumes:
        - name: nfs-volume
          persistentVolumeClaim:
            claimName: nfs-pvc在这个 Deployment 定义中,我们创建了一个名为 nfs-volume 的 volume,它引用了我们之前创建的 PersistentVolumeClaim nfs-pvc。这样,每个 Pod 都会挂载 NFS 导出目录到它的容器内部的 /usr/share/nginx/html 路径。
评论已关闭