HashiCorp 发布了 Consul 1.2.1 ,这是其高可用、分布式服务发现和键 - 值存储的最新版本,该版本还包含 Consul Connect 的公开测试版。Consul Connect 使用 Mutual TLS 提供服务到服务的连接授权和加密,并且能够“自动把现有的任何 Consul 集群转换成服务网格解决方案”。对于所有必要的子系统,Connect 仅需要一个二进制文件。
目前,Connect 的应用场景主要是部署服务到服务加密和基于身份授权的最佳实践。Connect 并不像工程师通常可能会期望的那样,提供 Linkerd 、 Cilium 、 Envoy / Istio 等服务网格中的所有特性,如流量转移、速率限制、超时和重试,回路断线和可观测性。不过,在 HashiCorp 开发大使 Nic Jackson 的私人信函中,他写道:
Connect 被构建为可扩展的,以便它可以和现有的代理集成,如 Envoy,提供所有期望的特性。在 Connect 正式发布时还会提供原生 Kubernetes 集成。
服务或应用程序可以使用 Sidecar 代理自动为入站和出站连接创建 TLS 连接,而不必知道 Connect 的存在。在性能和安全要求较高的环境中,应用程序还可以原生集成Connect 。此外,solo.io 团队已经发布了“ Gloo Connect ”,这是 Envoy Proxy 和 Consul Connect 的集成原型。
Connect 设计得非常易于使用,只需要在通常的 Consul 配置中额外添加一个选项就可以启用;在服务注册配置中额外增加一行——“connect:”(及相关元数据)——就可以自动使现有的任何应用程序接收基于 Connect 的连接。Connect 使用标准的 TLS over TCP/IP,这让它可以工作在任何网络配置下,只要底层操作系统可以访问目标服务指定的 IP 就可以。
Connect 的核心基于 Mutual TLS 。Connect 为每个服务提供了一个编码成 TLS 证书的标识。根据 Connect 的文档,这个证书用于和其他服务之间建立连接或者接收来自其他服务的连接,TLS 证书中标识的编码符合 SPIFFE X.509 Identity Document 。证书轮换是自动完成的,不会导致停机。为了生成和分发证书,Consul 内置一个没有其他依赖的 CA,而且还提供了对 Vault 的内置支持。PKI 系统被设计成了可插拔的。
在服务到服务的授权方面,Connect 没有使用 IP 地址访问规则进行基于主机的访问授权,而是使用已注册服务的标识借助“ Intention ”来执行访问控制。使用逻辑上的服务标识名称而不是 IP 地址和端口可以简化访问控制推断。规则是规模无关的——不管是一个“Web 服务器”服务,还是数以百计的服务——使用名称还便于服务的迁移。例如,使用容器编排框架如 Kubernetes 、 Nomad 或 AWS ECS 在主机之间重新调度服务时,服务名称可以提供位置透明。
不管底层网络如何,Intention 执行都是可以完成的。因此,Connect 适用于物理网络、云网络、软件定义网络,可以跨云。对于 HashiCorp 的企业客户,还可以把 Intention 和策略即代码框架Sentinel 搭配使用,提供多级安全策略或额外的粒度。
Connect 目前只能用于单个 Consul 数据中心里服务到服务的连接;Connect 可以在多个 Consul 数据中心里启用,但只有同一个数据中心的服务可以建立基于 Connect 的连接。此外,CA 配置和 Intention 都是相应数据中心本地的;它们不会跨数据中心复制。Connect 多数据中心支持正在开发之中,将于 2018 年底作为 Consul 企业版的一项特性发布。该特性将为 Intention 复制、数据中心 Intention 约束、CA 状态复制、多数据中心证书轮换等提供便利。
该文档指出,Connect 所需的所有 API 通常都是在毫秒内响应,而且“只会对已有的服务带来很小的开销”。这是因为,与Connect 相关的API 全都通过回环接口放在了本地Consul 代理中。Consul 代理会在本地缓存大部分与Connect 相关的数据,并在后台启动服务器“阻塞查询(blocking queries)”,在后台更新缓存。这使得大部分API 调用,如检索证书或授权连接,可以使用内存内数据,实现快速响应。
文档的“代理缓存与性能”部分指出,启动Connect 后,工程师很可能会看到本地Consul 代理的内存使用增加。总内存是由与接收Connect 连接的代理中注册的服务相关的Intention 数量决定。
要了解更多有关 Consul 1.2 和 Consul Connect 发布的信息,请查看 HashiCorp 的博客。HashiCorp 创始人兼首席技术官 Armon Dadgar 还在 YouTube 上使用白板概要地介绍了Consul Connect,特性主页上也提供了更多的信息。Consul 1.2 下载,请点击这里。
查看英文原文: HashiCorp Release Consul 1.2 with Consul Connect Service Mesh Solution
评论