知识卡片

容器打补丁是替换镜像而非改机器

普通读书笔记卡 · 1452.a

内容

容器化系统给运行中的容器打补丁,不是登录进去改文件,而是给镜像仓库中的镜像打补丁、重新构建和部署整个镜像,容器本身被当作不可变对象,不通过SSH改动。这个设计带来重要附加能力:因为知道环境中部署了哪些镜像(内容寻址),一旦某版本被发现有漏洞,可以直接从镜像仓库查出所有还在运行该版本的实例,不需要挨个扫描生产集群。发散:这本质是把补丁管理变成和代码发布同一套流程,天然复用金丝雀、监控等已有发布保障。

参考来源

- 位置:《Google系统架构解密:构建安全可靠的系统》第7章《适应变化的设计》7.3.3节(源文件:`../OREILY动物书合辑 图灵新版/_epub-src/text/part0014_split_064.html`) - 结论依据:原文明确说明容器不可变、应给镜像仓库中的镜像打补丁而非运行时容器,且因内容寻址能力可以"知道你的环境中运行了什么内容",用镜像仓库识别受影响版本而不用直接扫描生产集群。 - 原始内容:应该给镜像仓库中的镜像打补丁,而不是给运行时容器打补丁……因为容器是不可变的,所以它们提供了内容寻址能力……如果你以前部署的镜像受到新漏洞的影响,则可以使用镜像仓库来识别受影响的版本并启动修复程序,而不用直接扫描生产集群。