vi /etc/exports
/mynfs/pv003 172.16.0.0/16(rw,async)
# mkdir -p /mynfs/pv003
# exportfs -arv
编辑 pvc003.yaml 文件
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv003
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
nfs:
path: /mynfs/pv003
server: 172.16.33.98
使用kubectl 执行 pv003.yaml
$ kubectl apply -f pv003.yaml
persistentvolume/pv003 created
查看创建的PersistentVolume:
$ kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE 133m
pv003 1Gi RWO Recycle Available 3m6s
创建名为 william 的 namespace
kubectl create namespace william
查看集群中的 namespace
$ kubectl get namespace
NAME STATUS AGE
apptrace-demo Active 3d7h
cattle-logging Active 3d8h
cattle-pipeline Active 3d6h
cattle-system Active 4d3h
default Active 4d3h
ingress-nginx Active 4d3h
kube-public Active 4d3h
kube-system Active 4d3h
mongodb Active 4d3h
p-z26s7-pipeline Active 3d6h
prometheus Active 4d2h
test39080 Active 3d6h
william Active 54m
编辑 pvc003.yaml 文件
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc003
namespace: william
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
使用 kubectl 执行 pvc003.yaml 文件
$ kubectl apply -f pvc003.yaml
persistentvolumeclaim/pvc003 created
查看创建的 PersistentVolume:
$ kubectl get pvc -n william
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
pvc003 Bound pv002 1Gi RWO 59s
查看 PersistentVolume 此时的状态已经变为 Bound
$ kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pv003 1Gi RWO Recycle Bound william/pvc003 3m7s
编辑 nginx-deployment.yaml 文件
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: mynginx-pv
namespace: william
spec:
replicas: 1
template:
metadata:
labels:
name: mynginx-pv
spec:
containers:
- name: mynginx-pv
image: nginx
volumeMounts:
- mountPath: "usr/share/nginx/html"
name: pv003
tty: true
ports:
- containerPort: 80
volumes:
- name: pv003
persistentVolumeClaim:
claimName: pvc003
使用 kubectl 执行 nginx-deployment.yaml 文件
$ kubectl apply -f nginx-deployment.yaml
deployment.extensions/mynginx-pv created
查看nginx部署情况
$ kubectl get deployment -n william
NAME READY UP-TO-DATE AVAILABLE AGE
mynginx-pv 1/1 1 1 3m43s
编辑 nginx-svc.yaml 文件
apiVersion: v1
kind: Service
metadata:
name: mynginx-pv
namespace: william
spec:
type: NodePort
ports:
- port: 80
protocol: TCP
targetPort: 80
nodePort: 30088
selector:
name: mynginx-pv
使用kubectl 执行 nginx-svc.yaml 文件
$ kubectl apply -f nginx-svc.yaml
查看 nginx 服务信息
$ kubectl get svc -n william
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
mynginx-pv NodePort 10.43.77.87 <none> 80:30088/TCP 94s
将 index.html 上传到nfs服务器 /mynfs/pv003目录下