Docker宣布在其企业版平台(Docker Enterprise)中支持Windows Server 2019长期支持频道(Long Term Servicing Channel,LTSC)和Server 1809半年频道(Semi-Annual Channel,SAC)。Windows Server 2019从之前的SAC频道发布到LTSC频道后,带来了一系列提升。包括入口路由、虚拟IP服务发现和命名管道挂载。
此次发布还包括可以在包含Linux节点的混合集群中运行基于Server 2019 和 1809的容器。
从Windows Server 1709和1803的SAC发布频道升级到LTSC发布频道之后,Windows Server 2019带来了一系列提升。包括支持Docker的入口路由。入口路由是Swarm模式的一部分,能够通过简单配置提供服务发布的优化。该功能提供了一个“Swarm端口”来访问容器发布的服务,包括哪些当前没有运行容器的主机。这样,能够通过routing mesh的方式来简化负载均衡,将入口流量路由到可用节点上的容器发布的端口中。
Server 2019新增了VIP服务发现功能,作为DNS轮询(DNS Round Robin,DNSRR)方式的替代。VIP服务发现功能可以在容器通过Swarm服务发现功能发起DNS请求时,获取到一个单一的IP地址。该单一地址是一个虚拟地址,访问时会通过网络层路由到实际提供服务的容器中。由于关联到实际服务的IP地址只有一个,可以确保当容器被替换时,调用方不会缓存有过时的记录。这个实现方式和DNS轮询方式不同,后者会获取所有容器的IP地址,并通过轮询的方式做负载均衡请求。
同时,Server 2019还支持了通过命名管道运行Docker API。在之前的Server 2016版本中,访问Docker API只能通过TCP/IP。有了命名管道的支持,用户可以通过挂载卷的方式挂载命名管道到默认挂载点,然后Docker命令行工具可以通过它访问本机上的Docker API。
Server 2019的基础镜像也有了提升。来自SEAL Systems的高级软件工程师Stefan Scherer比较了Server 2016和2019版本的镜像大小,发现2019镜像相比于2016镜像要小⅓到¼。
Windows Server 2016和Server2019镜像大小比较(图片来源:Stefan Scherer)
从2014年起,微软和Docker一直致力于将容器化引入到Windows系统。容器支持最早在Windows Server 2016中随着Docker企业版引擎一起发布。2017年,实现了基于Swarm的在同一Docker企业版环境中混合Windows Server和Linux集群。2018年增加了对SAC频道Windows 1709和1803版本的支持。
2019年的计划包括支持在同一集群中Swarm和Kubernetes两种服务编排框架的相互替换。Server 2019包含了对运行Kubernetes工作负载的增强支持。Docker和微软目前正在实现使用Docker企业版来支持运行在Kubernetes上的Windows工作负载。
查看英文原文:
https://www.infoq.com/news/2019/01/docker-windows-server-2019