云原生应用的最佳实践与可移植性策略
云原生应用容器的最佳实践
1. 存储镜像到可信注册表
在平台上运行的任何镜像都应来自可信的容器镜像注册表。Kubernetes 提供了一个 Webhook(验证准入),可用于确保 Pod 仅使用来自可信注册表的镜像。如果你使用的是 Google Cloud,可以利用二进制授权安全措施,确保只有可信镜像才能部署到你的集群中。
2. 利用 Docker 构建缓存
在构建 Docker 镜像时使用构建缓存可以加快构建过程。所有镜像都是由层组成的,Dockerfile 中的每一行都会为最终镜像贡献一层。在构建过程中,Docker 会尝试重用之前构建的层,而不是重新构建。不过,只有当之前的所有构建步骤都使用了该层时,才能重用缓存层。为了充分利用 Docker 构建缓存,应将更改更频繁的命令(例如,将源代码添加到镜像、构建源代码)放在 Dockerfile 的末尾,这样前面的步骤就可以被重用。
3. 避免以特权模式运行容器
以特权模式运行容器可以访问主机上的所有内容。应使用 Pod 上的安全策略来防止容器以特权模式运行。如果某个容器因某种原因需要特权模式才能对主机环境进行更改,可以考虑将该功能从容器中分离出来,集成到基础设施配置中。
4. 使用明确的容器镜像标签
始终使用特定的标签来标记你的容器镜像,这些标签应紧密关联容器镜像和打包在镜像中的代码。为了正确标记镜像,可以使用唯一标识代码版本的 Git 提交哈希(例如,1f7a7a472)或语义版本(例如,1.0.1)。如果未提供标签,默认会使用 latest 标签
超级会员免费看
订阅专栏 解锁全文
271

被折叠的 条评论
为什么被折叠?



