Skip to Content
Kubernetes即学即用(第二版)
book

Kubernetes即学即用(第二版)

by Brendan Burns, Joe Beda, Kelsey Hightower
June 2021
Intermediate to advanced
300 pages
5h 4m
Chinese
China Electric Power Press Ltd.
Content preview from Kubernetes即学即用(第二版)
30
2
2.2.3
镜像安全
安全性方面没有捷径可走。在构建最终将在生产环境的
Kubernetes
集群中运
行的镜像时,你需要确保遵循打包和分发应用程序的最佳实践。例如,不要
构建包含密码的镜像,这一条不仅适用于最终层,镜像中的任何一层都不可以。
容器的层引入了一个反直觉的问题,即删除某一层的文件并不会删除前一层
中的文件。这个文件仍然会占用空间,任何人都可以通过一定的工具来访问它,
有能力的攻击者可以简单地创建仅由包含密码的层组成的镜像。
机密数据和镜像永远不应该混在一起。否则,你就等着被黑客入侵,并让整
个公司或部门蒙羞吧。我们都希望有一天能上电视,但即使上电视也应该通
过更好的办法。
2.3
多阶段镜像构建
意外生成超大镜像的最常见原因之一是,在构建应用程序容器镜像的过程中
执行实际的程序编译。将编译代码作为镜像构建的一部分感觉很自然,这是
最简单的利用程序构建容器镜像的方法。然而这样做的问题在于,所有不必
要的开发工具都会遗留下来,通常,这些工具都很大,一旦进入镜像内部就
会降低部署速度。
为了解决这个问题,
Docker
引入了多阶段构建。如果采用多阶段构建,而不
是生成一个镜像,则
Docker
文件实际上会生成多个镜像。你可以将每个镜像
视为一个阶段,而且你可以将之前各个阶段的产物复制到当前阶段。
为了具体说明这一点,我们来仔细看看如何构建示例应用程序
kuard
。这个应
用程序略微复杂,其中包含一个
React.js
前端(它拥有自己的构建过程),
然后将其嵌入到
Go
程序中。最后由
Go
程序负责运行与
React.js ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

PyTorch深度学习

PyTorch深度学习

Posts & Telecom Press, Vishnu Subramanian
Python数据分析

Python数据分析

Posts & Telecom Press, Ivan Idris
Python贝叶斯分析(第2版)

Python贝叶斯分析(第2版)

Posts & Telecom Press, Osvaldo Martin
Python高级编程(第2版)

Python高级编程(第2版)

Posts & Telecom Press, Michał Jaworski, Tarek Ziadé

Publisher Resources

ISBN: 9787519856762