word文档 如何解密,【徽信;sjk6070】kubernetes pod 启动时会拉取用户指定的镜像,一旦这个过程耗时太久就会导致 pod 长时间处于 pending 的状态,从而无法快速提供服务。
镜像拉取的过程参考下图所示:
k8s image pull
pod 的 imagepullpolicy 镜像拉取策略有三种:
ifnotpresent:只有当镜像在本地不存在时才会拉取。
always:kubelet 会对比镜像的 digest ,如果本地已缓存则直接使用本地缓存,否则从镜像仓库中拉取。
never:只使用本地镜像,如果不存在则直接失败。
说明:每个镜像的 digest 一定唯一,但是 tag 可以被覆盖。
从镜像拉取的过程来看,我们可以从以下三个方面来加速镜像拉取:
缩减镜像大小:
使用较小的基础镜像、移除无用的依赖、减少镜像 layer 、使用多阶段构建等等。
推荐使用 docker-slim
加快镜像仓库与 k8s 节点之间的网络传输速度。
主动缓存镜像:
pre-pulled 预拉取镜像,以便后续直接使用本地缓存,比如可以使用 daemonset 定期同步仓库中的镜像到 k8s 节点本地。
题外话 1:本地镜像缓存多久?是否会造成磁盘占用问题?
本地缓存的镜像一定会占用节点的磁盘空间,也就是说缓存的镜像越多,占用的磁盘空间越大,并且缓存的镜像默认一直存在,并没有 ttl 机制(比如说多长时间以后自动过期删除)。
但是,k8s 的 gc 机制会自动清理掉镜像。当节点的磁盘使用率达到 highthresholdpercent 高百分比阈值时(默认 85% )会触发垃圾回收,此时 kubelet 会根据使用情况删除最旧的不再使用的镜像,直到磁盘使用率达到 lowthresholdpercent(默认 80% )。
题外话 2:镜像 layer 层数真的越少越好吗?
我们经常会看到一些文章说在 dockerfile 里使用更少的 run 命令之类的减少镜像的 layer 层数然后缩减镜像的大小,layer 越少镜像越小这确实没错,但是某些场景下得不偿失。首先,如果你的 run 命令很大,一旦你修改了其中某一个小的部分,那么这个 layer 在构建的时候就只能重新再来,无法使用任何缓存;其次,镜像的 layer 在上传和下载的过程中是可以并发的,而单独一个大的层无法进行并发传输。
一种利用金属纳米线上的表面等离激元干涉场作为激发源的超分辨激发和成像方法
高精地图的精益化管理
基于角色访问控制技术的数控机床信息集成系统设计
一文看懂康佳转型之路如何走
华为助力精诊科技打造多模态融合的手术计划工作站
word文档如何解密
雷达水位计介绍
保证SMT加工品质的三种方法!
NEO宣布启动 DevCon 2019
强力磁铁是什么?有哪些应用?
华为被Facebook中止业务合作 以回应美国禁令
全球光伏市场快速发展,我国光伏产品出口总额再次突破200亿美元
Maxim Integrated发布业界首款可连续监测自放电并提供保护功能的锂离子电池电量计
华为智能手机的设计新思路
受音乐频率控制的RGB led灯条的制作
3D扫描赋能长城烽火台数字化保护
方向继电器是怎样设置的?其作用是什么?
专注于全息AR技术的WayRay获8,000万美元融资
udp是什么意思 简述TCP与UDP的区别和联系
如何实现多伺服电机同步控制?