k8s核心操作_k8s中的存储抽象_基本概念与NFS搭建_Deployment使用NFS进行挂载---分布式云原生部署架构搭建028
在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
路径。
评论已关闭