概述当下Docker容器化的架构备受欢迎,越来越多的企业开始利用容器来构建自己的基础架构 。通常是自己建立了Docker注册表,部署在服务器上安装Docker,安装Jenkins通过Docker插件Jenkins CI管道管理Docker容器 。更大一点规模的则会使用K8S或者Swarm编排集群 。对一个企业而言有开始尝试使用容器到逐渐深入,扩大规模要经历一系列的问题和踩坑的过程,那么如何规范化、安全的实施容器化,如何尽最大避免踩坑呢?本文虫虫给列出企业尝试容器化架构需要考虑的各方各面问题,希望可以对大家有所帮助 。
镜像问题容器注册表Docker服务都需要一个注册表(可不是我们常说的windows注册表),Docker注册表是Docker镜像的存储和在线(Web)版本仓库(类似于代码的github仓库) 。有很多公有云自有容器注册表服务,比如Docker官方的Docker Hub,很多公有云都提供自己Docker注册表服务:

文章插图
除了这些公开的注册表,基于安全、网络访问速度、规范化等考虑企业维护一个自建的Docker注册表(Docker私服)也是必须的 。构建Docker私服可以使用Docker官方的Distribution,它是Docker官方推出的Docker Registry 2开源产品,使用Golang开发,极大提高了安全和性能 。

文章插图
知名的Git服务器端Gitlab也提供了Gitlab 容器注册表,部署Gitlab企业可以直接考虑使用这个组件,实现统一管理和集成 。当然除了开源的,也可以使用商用的产品的比如Vmware开源的Harbor:

文章插图
企业选择容器注册表需要考虑以下问题:
注册表是否能集成到企业内部的身份统一系统(比如LDAP,Kerberos等)?
是否支持基于角色的访问控制(RBAC)?
统一身份认证和授权对企业来说是一个大问题 。虽然快速便宜的开放的注册解决方案可以足够开发环境的构建 。但是对企业线上环境,必须要考虑安全性、RBAC标准等 。
是否有加速镜像的方法?
镜像是要有区别对待的 。有些是快速、功能全,但是可能杂乱的的开发环境镜像,他们不需要首要考虑正确性;而线上的镜像则是要注重安全和性能和正确防护 。企业要对这些镜像分类,并且在注册表中通过实例管理流程或用标签强制执行 。
是否与其他Artefact包管理架构保持良好的一致性?

文章插图
企业可能已经有包文件库,内部的Artefact存储等(比如maven,npm,Gitlab等) 。在理想的架构中,容器注册表应该是它的一个功能 。如果架构上是分开的,那么久要考虑两者的集成和管理开销 。
镜像扫描

文章插图
这是很重要的部分 。当镜像上传到自建容器注册表时,需要检查它们是否符合标准 。例如,检查诸如此类的问题:
bash版本是否存在破壳漏洞?
ssl库是不是过时了?
该镜像是否基于一个不安全或不可接受的基本镜像(Base Image)?
是否存在有漏洞的或者过时库(Strus 2)和工具?
等等
可以通过静态镜像分析来检查这些问题 。我们需要注意的是,这些扫描可能不是十全十美的,可能会错过一些非常明显漏洞,所以它也不是解决一切安全问题的灵丹妙药,而是一种必要的手段,特别非常适合用解决:
防止恶意攻击者注入木马?
在企业范围了,统一规范标准?
快速发现和修补已知的和标准CVE漏洞?
这些问题是组成了镜像扫描评估的基础,当然也需要考虑集成的成本 。常见的镜像扫描工具有Clair,Anchore,OpenSCAP,Dockerscan等 。
镜像构建如何构建镜像?企业要支持哪些构建方法?如何将这些方组合在一起?
Dockerfiles最常用标准的方法之一,也可以使用S2I,Docker +Chef/Puppet/Ansible,甚至是手工方法构建 。
使用那种CM(配置管理,如果已经使用的话)工具管理 。
是否可以重复使用标准治理流程来和配置管理交互?
任何人都可以构建镜像吗?

文章插图
业界的经验表明Dockerfile方法是一个使用广泛而且通用的方法,而且具有大量的社区文档和问题反馈支持 。尝试更复杂的CM工具用来符合VM的公司标准的则通常有一定实施门槛 。通过S2I或Chef/Puppet/Ansible方法则更加便捷,也能很好的实现代码(playbook)重用 。
推荐阅读
- Docker初学者入门--安装笔记
- |企业新媒体运营:每天做点困难的事
- 近期勒索病毒攻击方式频频翻新,企业用户易踩陷阱有哪些
- Docker私有镜像
- 什么是Docker?看这一篇干货文章就够了
- 2 「系统架构」如何使用Dockerfile制作Docker容器?
- 崂山绿茶国家标准出台,崂山绿茶将实施国家标准
- docker 快速搭建JAVA开发环境
- 使用Docker Stack部署应用
- 企业打造私域流量池迫在眉睫
