Docker 官方出品丨Docker 最佳实践系列指南(二)

本文首发自“Docker公司”公众号(ID:docker-cn)
编译丨小东
每周一、三、五 与您不见不散!

对于 Docker EE 安装的建议

本节详细说明架构的安装过程,并提供一个核对表。它并不能替代有关文档,后者提供了更多详细信息,从各方面来讲都是权威性的。本节的目标是帮助您定义一个可重复的(最好也是自动化的)过程,用以部署、升级和扩展 Docker EE 环境。

Docker EE 标准版或高级版安装的三个主要阶段如下所示:

  1. 部署和配置基础架构(主机、网络、存储);
  2. 安装和配置作为应用在主机上运行的 Docker 引擎;
  3. 安装和配置 UCP 和 DTR,它们作为在引擎上运行的容器而实现;

基础架构注意事项

安装文档详细说明了 Docker EE 标准版和高级版的基础架构要求。建议使用环境中现有的或特定于平台的工具来为基础架构组件提供标准化的可重复配置。

网络

Docker 组件需要通过网络通信,文档列出了为实现内部集群通信需要开放的端口。如果集群的内部网络配置不当,可能引发难以追查原因的问题。最好先从相对简单的环境开始。此参考架构假定所有主机使用同一个子网,而容器使用 Overlay 网络。

防火墙

对 Docker EE 的访问只能使用端口 443 进行(对于 DTR 是端口 443 和 80),无论访问 Web UI 还是远程 API 都不例外。因此外部防火墙配置很简单。在大多数情况下,您只需要开放端口 80、443 和 22。端口 22 用于 SSH 访问,因为 Docker EE 不需要 SSH 访问,所以它是可有可无的。对应用的访问是通过负载均衡器使用 HTTPS 进行的。如果您对外界暴露其他 TCP 服务,请在防火墙上开放这些端口。上一节已经说过,为了在集群内部通信,也需要开放多个端口。如果您在集群中的某些节点之间设有防火墙(例如用于分隔控制器与工作节点),那么也要开放相关端口。

如果在应用内部使用经过加密的 Overlay 网络,则还应该允许 ESP(封装安全有效负载)或 IP 协议 50 流量。ESP 并非基于 TCP 或 UDP 协议,它将用于安全有效负载 / 数据的端到端封装。

screenshot

负载均衡器

上一节详细说明了负载均衡器。它们必须在安装之前配置完毕,而且必须有合适的主机名。外部(负载均衡器)主机名用于 HA,也用于 TLS 证书。如果在安装期间或安装后不必重新配置它们,就会比较轻松。

请参阅上一节了解 Docker 组件来获取关于负载均衡器配置的详细信息。

共享存储

用于镜像库中镜像的 DTR 共享存储必须就绪,并且必须可从 DTR 节点访问。请使用 S3 或 NFS 命令行客户端来测试其是否工作,以避免调试 DTR 存储配置的麻烦。

主机配置

主机配置根据所使用的 OS 和现有配置标准而定,不过在安装 OS 之后必须执行几个重要步骤:

  1. 使用 NTP 或类似服务进行时钟同步。时钟偏差可能导致难以排除的错误,特别是在使用 Raft 算法的情况下(UCP 和 DTR)。
  2. 所有主机的 UCP 都需要静态 IP。
  3. 主机名用于集群中的节点标识。必须以非临时性的方式设置主机名。
  4. 主机防火墙必须在安装文档中指定的所有端口上允许集群内流量。
  5. 如果有需要,还必须配置存储。例如,devicemapper 驱动程序需要一个在 Docker 引擎安装之前配置的逻辑存储卷。

Docker EE 基础版安装注意事项

关于 EE 安装的详细说明由文档提供。要在无法访问互联网的机器上安装,请将这些软件包添加到您自己的私有镜像仓库。安装软件包之后,确保将 docker 服务配置为在系统引导时启动。

更改 Docker EE 基础版的参数的最佳方式是使用 /etc/docker/daemon.json 配置文件。这样可以确保配置能够方便地跨不同系统和 OS 复用。请参见文档了解完整的选项列表。

启动 docker 服务,并使用 docker info 验证参数,从而确保引擎配置正确。

猜你喜欢

转载自my.oschina.net/u/3611008/blog/1820534