HashiCorp发布多云服务平台Consul 1.9版

HashiCorp发布最新多云服务平台Consul 1.9,这个版本提供用户更多精细的控制,以提高对服务网格内服务的可观察性,并以Kubernetes原生的方式,集成Runtime平台。Consul是一个服务探索工具,可跨任何Runtime平台、公有云和私有云,探索、连接和保护服务。

Consul 1.9主要新功能有两个,一个是具备应用程序感知意向(Intention)功能,能够支持OSI第7层架构,并使用HTTP请求标头和URL路径,允许或是阻挡服务通信,另一个新功能则是服务网格可视化,Consul UI提供新的拓扑标签,提供拓扑图和关键服务网格指标图表,显示像是请求和错误率等信息。

官方提到,采用服务网格的企业,通常希望能从应用程序等级,精细地控制访问权限,以实现最低权限以及零信任网络。过去Consul仅能从OSI第4层,也就是连接层,来管理访问权限,但是在评估权限政策时,就无法使用更高端的应用程序协议信息,而第7层的应用程序层,赋给用户更完整构建政策的功能,在以基于HTTP授权服务到服务通信时,能够使用HTTP Path、Headers和Method等应用程序层信息。

服务网格是可配置的网络层,能够控制应用程序服务间交互的方式,用户在配置和管理服务网格,需要设置正确的代理和上游,而过去Consul用户必须通过错误日志记录,和命令行工具输出,以及发送资料平面指标到Datadog和Prometheus等监控系统,才能对Consul服务网格进行调试。而在Consul 1.9中,Consul UI加入了新的拓扑标签,显示了服务连接总览,并且提供连接指标信息,像是错误率、成功率以及计时等信息,方便用户进行错误排除。

在这个新版本,官方还提供用户以自定义资源定义(Custom Resource Definitions,CRDs)管理Consul服务网格配置的方法。当第3方软件将Kubernetes当作目标平台,就会利用Kubernetes内的CRD,集成第3方软件和Kubernetes API,让用户的Kubernetes集群可以获得更多的功能,而现在Consul与Kubernetes集成,通过CRD,让用户能够以Kubernetes对象来简单配置Consul。

现在用户可以更方便地在OpenShift上部署Consul,过去预测权限限制了Pod功能,因此要在OpenShift上部署Consul,需要先对Helm图表进行修改,而现在Consul以非root用户身份执行,确保Consul Kubernetes在OpenShift上可以安全执行,并且简单地完成安装。

另外,Consul 1.9还更新集群传递阻塞式查询更新通知的方式。部分拥有大规模Consul集群的用户,需要管理大量Consul客户端机群,并监控数万服务执行实例,皆需要利用阻塞式查询,来掌握服务执行的状况,而在引入流媒体技术后,在大规模部署中,可以大幅降低Consul服务器CPU和网络带宽使用量,在服务状态变化快速的Consul集群,新的流媒体技术对阻塞式查询特别有用。