K8S 部署deployment 添加NFS实现数据持久NFS服务器配置

#1、服务器安装环境

yum install -y nfs-utils rpcbind
systemctl enable rpcbind nfs
systemctl start rpcbind nfs
#2、NFS配置
mkdir /home/nfs
echo '/home/nfs 192.168.250.0/24(rw,sync,no_root_squash)' >> /etc/exports
showmount -e 
rpcinfo -p
mkdir /home/nfs/data

2、准备环境

docker pull centos

3、***创建PV资源( 可选)***

apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv
spec:
  #capacity:
    #storage: 1Gi     ## 申请储存空间
  accessModes:
    - ReadWriteMany     ## 允许多个pod读写
  nfs:
    path: /home/nfs   ## 需要申请的nfs目录
    server: 192.168.250.101    ## nfs服务器地址

***4、创建PVC资源(可选) ***

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pvc
  labels:
    app: nfs-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      #storage: 1Gi    ## 需要的大小,匹配pv

YAML:

apiVersion: apps/v1                       #指定api版本,此值必须在kubectl apiversion中   
kind: Deployment                     #指定创建资源的角色/类型   
metadata:                            #资源的元数据/属性   
  name: centos-nfs                     #资源的名字,在同一个namespace中必须唯一   
  labels:                             #设定资源的标签 
    app: centos-nfs 
spec: #specification of the resource content 指定该资源的内容   
  replicas: 1
  selector:
    matchLabels:
      app: centos-nfs
  template:
    metadata:
      labels:
        app: centos-nfs        
    spec:
      containers:   
      - name: centos-nfs #容器的名字   
        image: centos #容器使用的镜像地址 
        imagePullPolicy: IfNotPresent
        command: ["/bin/sh"] #启动容器的运行命令,将覆盖容器中的Entrypoint,对应Dockefile中的ENTRYPOINT   
        args: ["-c","while true;do echo hello;sleep 1;done"]
        volumeMounts:  #挂载持久存储卷 
        - name: data #挂载设备的名字,与volumes[*].name 需要对应     
          mountPath: /data #挂载到容器的某个路径下
      volumes: #定义一组挂载设备   
      - name: data #定义一个挂载设备的名字 
        #hostPath:   
          #path: /opt #挂载设备类型为hostPath,路径为宿主机下的/opt,这里设备类型支持很多种 
        #persistentVolumeClaim: 使用PVC模式
           #claimName: nfs-pvc   
        nfs:                          #这里是nfs挂载
          server: 192.168.250.101         #nfs服务器的ip或者域名
          path: "/home/nfs/data"               #nfs服务配置的挂载目录     

5、测试

kubectl get pods
#找到centos-nfs-***的pod,并且正在运行
kubectl exec -it centos-nfs-**** /bin/sh
cd /data
touch docker-nfs-test
exit
##最后,请到nfs服务器上,查看一下是不是已经生成了一个新文件docker-nfs-test
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐