1.当容器发生故障时候,kubelet会重新启动容器, 但容器会以干净的状态重启;
2.当 Pod 被删除时,Volume 才会被清理,并且数据是否丢失取决于 Volume 的具体类型,比如:emptyDir 类型的 Volume 数据会丢失,而 PV 类型的数据则不会丢失;
3.临时卷类型的生命周期与 Pod 相同,但持久卷可以比 Pod 的存活期长;当 Pod 不再存在时,Kubernetes 也会销毁临时卷;不过 Kubernetes 不会销毁 持久卷。对于给定 Pod 中任何类型的卷,在容器重启期间数据都不会丢失;
emptyDir、configMap、downwardAPI、secret 是作为 本地临时存储 提供的,它们由各个节点上的 kubelet 管理;
4.对于给定 Pod 中任何类型的卷,在容器重启期间数据都不会丢失;docker容器重启未删除的情况下,日志或者是有状态的服务数据不会丢失;
5.docker默认容器的数据是保存在容器的可读写层,当容器被删除时其上的数据也会丢失,所以为了实现数据的持久性则需要选择一种数据持久技术来保存数据。官方提供了三种存储方式:Volumes、Bind mounts和tmpfs(以内存形式);
容器重启后无状态应用数据不丢失,删除容器才会丢失(数据保存在可写层);
docker镜像是分层组合而成的,即一个完整的镜像会包含多个数据层,每层数据相互叠加、覆盖组成了最终的完整镜像;
6.有状态应用在dockerfile未注明volume的情况下启动,就会有数据丢失的风险;
7.匿名卷的目的是为了防止用户忘记将关键数据挂载到宿主机目录,为了防止运行时用户忘记将动态文件所保存目录挂载为卷,在 Dockerfile中,我们可以事先指定某些目录挂载为匿名卷,这样在运行时如果用户不指定挂载,其应用也可以正常运行,不会向容器存储层;写入大量数据;
8.Pod 会保持在该节点上运行,直到 Pod 结束执行、Pod 对象被删除、Pod 因资源不足而被 驱逐 或者节点失效为止;
9.当某工作负载的 Pod 模板被改变时,控制器会基于更新的模板 创建新的 Pod 对象而不是对现有 Pod 执行更新或者修补操作;
容器存储组成:只读层(容器镜像) + 读写层 + 外置存储(数据卷)
浙公网安备 33010602011771号