我想要监控运行新部署时的映像下载时间。我看到ECS控制台中的任务事件详细信息可以给我一个粗略的估计,但我不能真正判断所消耗的时间是图像下载时间还是其他时间。我还想知道它是使用缓存的图像还是来自远程存储库。有没有办法做到这一点?请帮帮忙
发布于 2020-08-07 13:17:16
,但我真的不能确定所花费的时间是图像下载时间还是其他什么
不确定您是否可以计算AWS ECS事件的镜像拉取时间,因为我在ECS event中找不到这一点,但您可以尝试的最简单的方法之一是在您的ECS实例上拉取镜像手册,这将通过使用time和docker pull给出一些更好的估计。
time docker pull alpine
Using default tag: latest
latest: Pulling from library/alpine
Digest: sha256:185518070891758909c9f839cf4ca393ee977ac378609f700f60a771a2dfe321
Status: Image is up to date for alpine:latest
real 0m5.789s
user 0m0.033s
sys 0m0.039s我还想知道它是在使用缓存的图像,还是从远程存储库。有没有办法做到这一点?
你可以使用ECS_IMAGE_PULL_BEHAVIOR this ECS变量来控制这个行为,因为在默认情况下,它每次都会拉取图像,所以如果你想缩短启动时间,你可以使用prefer-cached。
ECS_IMAGE_PULL_BEHAVIOR
Example values: default | always | once | prefer-cachedLinux上的默认值: Default
Windows上的默认值: Default
用于自定义容器实例的拉取镜像过程的行为。下面描述了可选行为:
如果指定了默认,则会远程拉取镜像。如果镜像拉取失败,容器将使用实例上缓存的镜像。
如果指定 always ,则始终远程拉取镜像。如果镜像拉取失败,则任务失败。此选项可确保始终提取最新版本的映像。任何缓存的图像都将被忽略,并受到自动图像清理过程的影响。
如果指定了once,则仅当同一容器实例上的前一个任务尚未拉取镜像,或者缓存的镜像已被自动镜像清理过程移除时,才会远程拉取镜像。否则,将使用实例上缓存的镜像。这样可以确保不会尝试不必要的镜像拉取。
如果指定了prefer-cached,如果没有缓存的镜像,则远程拉取镜像。否则,将使用实例上缓存的镜像为。容器关闭镜像自动清理功能,以确保缓存的镜像不会被移除。
https://stackoverflow.com/questions/63284212
复制相似问题