怎么使用网站程序,郑州企业网站seo,空包自己可以做物流信息的网站,wordpress运行机制容器内的目录和宿主机的目录进行挂载 容器在系统上的生命周期是短暂的#xff0c;delete#xff0c;k8s用控制器创建的pod#xff0c;delete相当于重启#xff0c;容器的状态也会恢复到初始状态#xff0c;一旦回到初始状态#xff0c;所有的后天编辑的文件都会消失 容器… 容器内的目录和宿主机的目录进行挂载 容器在系统上的生命周期是短暂的deletek8s用控制器创建的poddelete相当于重启容器的状态也会恢复到初始状态一旦回到初始状态所有的后天编辑的文件都会消失 容器和几点之间创建一个持久化保存容器内文件的存储卷即使容器被销毁删除重启节点上的存储卷的数据依然存在后续也可以继续使用。可以继续将容器内的目录和宿主机挂载保存的数据继续使用
三种存储方式 emptyDir 作用 容器内部共享存储卷k8s系统中是一个pod当中的多个容器共享一个存储卷目录emptyDir卷可以是pod当中容器在这个存储卷上读取和写入 EmpytyDir是不能挂载到节点的随着pod的生命周期结束emptyDir也会结束数据也不会保留 所以emptyDir就是用来容器内部的共享lnmp hostPath 将容器内的挂载点和节点上的目录进行挂载hostPath可以实现数据的持久化node节点被销毁那么数据也会丢失 面试题污点设置为NoExecute节点上的pod会被驱逐文件数据在不在 1.Pod被驱逐并不是node节点被销毁所有数据还保留在节点上 2.Pod被驱逐基于控制器创建的会在其他节点部署并且会在其他节点上生成一个新的存储卷数据依然可以持久化 3.EmptyDir的共享数据会丢失 NFS共享存储 所有的pod内的目录都和节点上的nfs共享目录形成数据卷所有的数据文件都保存在共享目录当中集中方便管理 查看同一容器不同副本的log
[rootmaster01 k8s.yaml]# kubectl logs nginx-c85454d4d-4m6p2 -c nginx1
[rootmaster01 k8s.yaml]# kubectl logs nginx-c85454d4d-4m6p2 -c nginx2 emptyDir
apiVersion: apps/v1
kind: Deployment
metadata:name: nginxlabels:app: nginx
spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- image: nginx:1.22name: nginx1volumeMounts:- name: htmlmountPath: /usr/share/nginx/html/
#第一个name存储的名称可以自定义mountpath定义容器内的挂载目录点和节点或者##其他容器的共享目录- image: nginx:1.22name: nginx2volumeMounts:- name: htmlmountPath: /data/
#引用上一个挂载的名称表示我将和、usr/share/nginx/html这个目录挂载由data目录和他挂载command: [/bin/bash,-c, while true; do echo $(date) /data/index.html; sleep 2; done]
#每隔两秒打印一下当前时间volumes:- name: htmlemptyDir: {}hostPath
apiVersion: apps/v1
kind: Deployment
metadata:name: nginxlabels:app: nginx
spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- image: nginx:1.22name: nginx1volumeMounts:- name: htmlmountPath: /usr/share/nginx/html
#第一个name存储的名称可以自定义mountpath定义容器内的挂载目录点和节点或者##其他容器的共享目录- image: nginx:1.22name: nginx2volumeMounts:- name: htmlmountPath: /data
#引用上一个挂载的名称表示我将和、usr/share/nginx/html这个目录挂载由data目录和他挂载command: [/bin/bash,-c, while true; do echo $(date) /data/index.html; sleep 2; done]volumes:- name: htmlhostPath:path: /opt/test1type: DirectoryOrCreate
#如果没有/opt/test1就直接创建
# /usr/share/nginx/html /data /opt/test1 三者是一体的在节点上的目录里创建或者修改文件都会改变容器内的文件不同节点上除了index.html是一样的其他不一样 NFS共享存储
[rootk8s4 ~]# vim /etc/exports
/data/volumes 192.168.233.0/24(rw,no_root_squash)
[rootk8s4 ~]# cd /data/
[rootk8s4 data]# mkdir volumes
[rootk8s4 data]# chmod 777 volumes
[rootk8s4 data]# systemctl restart rpcbind
Job for rpcbind.service failed because the control process exited with error code. See
#报错之后的操作
[rootk8s4 data]# netstat -antp | grep rpcbind
[rootk8s4 sbin]# kill -9 5513
[rootk8s4 sbin]# systemctl restart rpcbind
[rootk8s4 sbin]# systemctl restart nfs
[rootk8s4 sbin]# showmount -e
Export list for k8s4:
/data/volumes 192.168.233.0/24
#到master01操作
[rootmaster01 k8s.yaml]# showmount -e 192.168.233.84
Export list for 192.168.233.84:
/data/volumes 192.168.233.0/24
[rootmaster01 k8s.yaml]# vim e.yamlapiVersion: apps/v1
kind: Deployment
metadata:name: nginxlabels:app: nginx
spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- image: nginx:1.22name: nginx1volumeMounts:- name: htmlmountPath: /usr/share/nginx/html
#第一个name存储的名称可以自定义mountpath定义容器内的挂载目录点和节点或者##其他容器的共享目录- image: nginx:1.22name: nginx2volumeMounts:- name: htmlmountPath: /data
#引用上一个挂载的名称表示我将和、usr/share/nginx/html这个目录挂载由data目录和他挂载command: [/bin/bash,-c, while true; do echo $(date) /data/index.html; sleep 2; done]volumes:- name: htmlnfs:path: /data/volumesserver: 192.168.233.84
#这里的server可以是ip地址也可以用主机名来替代 如k8s 主机名要做映射所有的节点都必须要做