怎么用服务器ip做网站,w网站建设需求说明,.netcms网站管理系统,搭建企业交流平台1、定义
容器内的目录和宿主机的目录进行挂载
容器在系统上的生命周期是短暂的#xff0c;一旦容器被删除#xff0c;数据会丢失。k8s基于控制器创建的pod#xff0c;delete相当于重启#xff0c;容器的状态会恢复到原始状态。一旦回到原始状态#xff0c;后天编辑的文件…1、定义
容器内的目录和宿主机的目录进行挂载
容器在系统上的生命周期是短暂的一旦容器被删除数据会丢失。k8s基于控制器创建的poddelete相当于重启容器的状态会恢复到原始状态。一旦回到原始状态后天编辑的文件都会消失所以容器和节点之间要创建一个持久化保存容器内文件的存储卷即使容器被销毁、删除、重启节点上的存储卷依然存在后续可以继续将容器内的目录和宿主机挂载保存的数据可以继续使用
2、存储方式
1emptyDir容器内部共享存储卷在k8s系统中是一个pod中的多个容器共享一个存储卷目录。emptyDir可以使pod中的容器在这个存储卷上读取和写入但不能挂载到节点上随着pod的生命周期结束emptyDir也会被销毁导致数据丢失
一个pod里两个容器。加上-c 容器名进入一个pod里的不同容器
2hostPath将容器内的目录和节点上的目录进行挂载hostPath可以实现数据持久化。若node节点被销毁数据也会丢失常用
注意这种挂载方式非常直接但有一个重要的限制hostPath 是特定于节点的而不是集群范围的 污点设置为NoExecute会把节点上的pod驱逐文件数据在不在【面试题】
emptyDir的共享数据会丢失
hostPath的共享数据不会丢失。pod被驱逐不是node节点被销毁之前的数据还保留在原来的节点上基于控制器创建的pod被驱逐会在其他节点重新部署所以会在其他节点生成一个新的存储卷数据依然可以持久化
nfs的共享数据不会丢失 容器 容器内的目录 挂载点 容器1 /usr/share/nginx/html 节点上的/opt/test 容器2 /data 节点上的/opt/test 因为两个容器内的目录均和节点上的/opt/test进行挂载所以这个两个容器之间的目录也能数据同步形成容器1的/usr/share/nginx/html、容器2的/data、节点上的/opt/test三者数据同步 注意这种挂载方式非常直接但有一个重要的限制hostPath 是特定于节点的而不是集群范围的 hostPath 是特定于节点的而不是集群范围的 查看一个pod里多个容器的日志。-c 容器名 3NFS共享存储数据集中在同一个节点上管理常用。推荐
所有pod内的目录都和节点上的NFS共享目录形成数据卷所有数据文件都保存在共享目录中集中、方便管理 指定共享目录/data/volumes 发布共享目录 在其他节点查看共享目录 方式1指定IP地址 测试
查看容器中是否同步数据 结论每个pod中数据同步 结论每个pod中的所有容器数据同步
方式2指定主机名 所有主机做主机名映射 测试
在共享目录中创建文件 查看pod是否同步数据 结论容器和节点上的挂载目录数据同步 k8s持久化存储数据方式的特点 方式 挂载点 特点 emptyDir 容器与容器进行挂载 一旦pod被销毁数据丢失 hostPath 容器与节点进行挂载 持久化存储数据pod销毁数据仍存在但数据分散存储在各个节点上不方便管理 nfs 容器与节点进行挂载 pod销毁数据仍然存在并且数据集中在一个节点上方便管理
3、PV和PVC【面试必问】
1pvc定义
全称Persistent Volume Claim持久化存储的请求描述或声明希望使用什么样的pv来进行存储。pvc是虚拟化的请求存储资源或检索存储资源选择一个最合适的pv来存储资源
2pv定义
全称Persistent Volume持久化存储卷描述和定义一个存储卷pv由运维人员来定的。pv是集群中虚拟化的存储资源
pv和pvc是一一映射的关系描述、存储大小
pvc向pv请求存储在NFS服务器上
pv和pvc都是虚拟化的概念是k8s的抽象的虚拟的存储资源 pv3和pv4都满足要求但优先选择pv3若pv3被占用则选择pv4 3pv和pvc之间有生命周期管理 配置provisioning→pvc请求request→检索找一个合适的pv→pvc和pv绑定bending→使用use→pod被删除pv的资源被释放releasing→回收recycling 配置分为静态请求和动态请求 绑定把pv分配给pvc 使用pod通过pvc使用存储资源 释放pod解除和挂载卷之间的关系删除pvc 回收保留pv以供下一个pvc使用 4pv和pvc的映射方式 ①静态请求 ②动态请求 5pv的状态 Available 可用且没有被任何pvc绑定 Bound 绑定pv已经绑定pvc绑定即使用 released 释放pvc已被删除但集群尚未回收pv的存储资源 Failed pv资源回收失败且pv处于不可用状态 6pv支持的读写方式 ReadWriteOnce RWO存储pv可读可写但只能被单个pod挂载 pv可读可写只能挂载单个pod ReadOnlyMany ROX存储pv可以以只读的方式被多个pod挂载 pv只读能挂载多个pod ReadWriteMany RWX存储pv可以以读写的方式被多个pod挂载 pv可读可写能挂载多个pod NFS支持以上三种读写和挂载方式hostPath只支持ReadWriteOnce方式在配置文件中都是全称 ISCSI设备不支持ReadWriteMany方式注意环境检查 iscsiadm -m session -P 3 #查看服务器是否有iscsi设备 -m session指定操作的会话模块管理iscsi的会话 -P 3显示详细信息的级别3表示显示详细信息 7集群回收pv资源的方式 Retain 保留。pod和挂载点的数据不会被删除默认策略。常用 回收资源后pv处于released状态需人工调整成Available状态 Recycle 回收。pv上的数据会被删除挂载点的数据也被删除 回收资源后pv自动调整成Available状态 Delete 删除。解绑时自动删除pv上的数据本地硬盘不能使用只有云平台支持动态卷的可以使用pv不再可用云平台自己处理 当pod运行之后通过pvc请求到了pv除非pod被销毁否则无法删除pvc先删除pod才能删除pvc 运维负责pv创建好持久化存储卷声明好读写和挂载类型以及可以提供的存储空间。开发负责pvc与开发对接好条件期望的读写和挂载类型以及存储空间 创建静态pv实验默认策略是Retain
1、发布共享目录 在其他节点上查看共享目录 一保留策略Retainpod销毁存储卷上的数据不会被删除
2、创建多个pv
定义pv能支持的读写方式和能接收pvc请求的存储大小
此时各个pv支持的读写方式、存储大小以及与节点的挂载目录 PV 支持的读写方式 存储大小 节点上的挂载目录 PV001 ReadWriteMany ReadWriteOnce 1G /data/v1 PV002 ReadWriteOnce 2G /data/v2 PV003 ReadWriteMany ReadWriteOnce 2G /data/v3 PV004 ReadWriteMany ReadWriteOnce 4G /data/v4 PV005 ReadWriteMany ReadWriteOnce ReadOnlyMany 5G /data/v5 客户端发送PVC请求到PV上请求存储资源PV通过nfs方式挂载到节点上的目录实际上数据还是存储在节点上 3、定义pvc
向pv发起请求 4、测试 pvc请求具体用哪个pv的存储pv和物理存储做挂载最终由物理设备提供持久化存储
5、删除pvc运行中的pod无法删除pvc
• 先删除pod • 再删除pvc 6、pv恢复可用状态 二回收策略Recycle
2、定义pv 3、定义pvc
向pv发起请求 4、测试
在共享目录中创建文件 查看容器是否同步数据 结论数据同步
5、删除pvc 稍等一会自动变成可用状态 三删除策略delete
2、定义pv 3、定义pvc
向pv发起请求 4、测试
在共享目录中创建文件 查看容器中是否数据同步 结论数据同步成功
5、删除pvc Failed表示资源回收失败并且pv处于不可用状态
注delete只支持动态卷删除
6、恢复pv