带有 PV、PVC 问题的 Kubernetes NFS 部署
Kubernetes NFS Deployment with PV, PVC Questions
我想在 Kubernetes 中设置一个集群内 NFS 服务器来为我的 pods(nginx webroot 等)提供共享。
理论上应该有一个持久卷、一个卷声明和 NFS 服务器,据我所知,这是一个部署。
要使用 PV 和 PVC,我需要分配 NFS 服务器的 IP 地址,我不知道,因为它是在我使用服务公开 NFS 服务器时自动生成的。
如果我想自己部署 nfs-server 部署,则会出现同样的问题,因为我将 PVC 用作卷。但是如果不给它们 NFS 服务器 IP,我就无法部署 PV 和 PVC。
我觉得我迷路了,也许你能帮帮我。
- PV
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-nfs-pv1
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 1Gi
accessModes:
- ReadWriteMany
nfs:
path: "/exports/www"
server: SERVER_NAME:PORT
- PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pv-nfs-pv1
labels:
type: local
spec:
storageClassName: manual
accessModes:
- ReadWriteMany
resources:
requests:
storage: 500Mi
- NFS 部署
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nfs-server
spec:
replicas: 1
selector:
matchLabels:
role: nfs-server
template:
metadata:
labels:
role: nfs-server
spec:
containers:
- name: nfs-server
image: gcr.io/google_containers/volume-nfs:0.8
ports:
- name: nfs
containerPort: 2049
- name: mountd
containerPort: 20048
- name: rpcbind
containerPort: 111
securityContext:
privileged: true
volumeMounts:
- mountPath: /exports/www
name: pv-nfs-pv1
volumes:
- name: pv-nfs-pv1
gcePersistentDisk:
pdName: pv-nfs-pv1
# fsType: ext4
1) 创建 NFS 服务器部署。
2) 通过创建服务公开 NFS 服务器部署,例如 "nfs-server",公开 TCP 端口 2049(假设您使用 NFSv4)。
3) 您使用以下信息创建 PV:
nfs:
path: /exports/www
server: nfs-server
4) 创建 PVC 并将其挂载到任何需要的地方。
我想在 Kubernetes 中设置一个集群内 NFS 服务器来为我的 pods(nginx webroot 等)提供共享。
理论上应该有一个持久卷、一个卷声明和 NFS 服务器,据我所知,这是一个部署。
要使用 PV 和 PVC,我需要分配 NFS 服务器的 IP 地址,我不知道,因为它是在我使用服务公开 NFS 服务器时自动生成的。
如果我想自己部署 nfs-server 部署,则会出现同样的问题,因为我将 PVC 用作卷。但是如果不给它们 NFS 服务器 IP,我就无法部署 PV 和 PVC。
我觉得我迷路了,也许你能帮帮我。
- PV
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-nfs-pv1
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 1Gi
accessModes:
- ReadWriteMany
nfs:
path: "/exports/www"
server: SERVER_NAME:PORT
- PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pv-nfs-pv1
labels:
type: local
spec:
storageClassName: manual
accessModes:
- ReadWriteMany
resources:
requests:
storage: 500Mi
- NFS 部署
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nfs-server
spec:
replicas: 1
selector:
matchLabels:
role: nfs-server
template:
metadata:
labels:
role: nfs-server
spec:
containers:
- name: nfs-server
image: gcr.io/google_containers/volume-nfs:0.8
ports:
- name: nfs
containerPort: 2049
- name: mountd
containerPort: 20048
- name: rpcbind
containerPort: 111
securityContext:
privileged: true
volumeMounts:
- mountPath: /exports/www
name: pv-nfs-pv1
volumes:
- name: pv-nfs-pv1
gcePersistentDisk:
pdName: pv-nfs-pv1
# fsType: ext4
1) 创建 NFS 服务器部署。
2) 通过创建服务公开 NFS 服务器部署,例如 "nfs-server",公开 TCP 端口 2049(假设您使用 NFSv4)。
3) 您使用以下信息创建 PV:
nfs:
path: /exports/www
server: nfs-server
4) 创建 PVC 并将其挂载到任何需要的地方。