HashiCorp 發佈 Consul 1.5.0 :支持 L7 可觀察性及集中式配置

Hashicorp發佈了Consul 1.5.0版本,Consul是他們的Service Mesh應用程序和鍵-值存儲。該版本首次發佈了Consul新路線圖上的功能,包括:通過Envoy支持L7可觀察性和負載均衡,集中式配置以及對可信第三方應用程序的ACL身份驗證支持。

此版本中,通過Envoy的集成,Consul Connect現在支持L7可觀察性和負載均衡。 Connect是在1.4版本添加到Consul中的,它利用自動TLS加密和基於身份的授權,提供安全的服務到服務通信。和任何Service Mesh一樣,使用Connect時,所有進出服務的流量都通過以Connect作爲控制平面的side-car代理進行流動。它允許Connect響應工作負載和網絡的變更。這些代理構成一個數據平面,該數據平面提供一致的應用程序度量源,可以將其發送到時序數據庫或其他應用程序監控軟件。 Consul Connect還允許配置分佈式跟蹤。現在,可以爲第4層和第7層HTTP和gRPC配置度量配置和分佈式跟蹤。

1.5版本還包含了包括過期時間、角色及服務標識映射在內的ACL增強功能。這些改進使服務能夠使用第三方身份獲取有效的ACL令牌。根據Consul團隊的說法,“用戶設置時的複雜性主要體現在,如何爲具有正確訪問權限的服務創建和分發有效的ACL令牌,以便在服務目錄中註冊自己”。通過引入ACL身份認證方法,應用程序可以使用受信的第三方自動獲取具有正確權限的ACL令牌。此版本包含首個認證方法, 它使用Kubernetes服務賬戶來處理在Kubernetes上運行的服務。

此版本還旨在解決配置與應用程序部署的耦合問題。使用現有模型,配置由本地Consul代理管理,這意味着配置更改需要重新部署應用程序。通過這個版本,現在可以在一個集中的位置管理配置,讓代理在Consul服務器中監聽配置更改。更新配置後,引用該配置的所有代理將自動重新加載其設置,而無需重新部署。

圖表描述了集中式Consul服務的工作流程(來源:HashiCorp

例如,要添加集中配置開啓用於度量的StatsD收集器,可以添加以下內容:

kind = "proxy-defaults"
name = "global"
config {
    envoy_dogstatsd_url = "udp://127.0.0.1:9125"
}

假設這是在一個名爲policy.hcl 的文件中,可以使用以下命令將其寫入Consul服務器:consul config write proxy.hcl。 該寫命令還支持-cas選項(比較和轉換),以防止覆蓋其他修改。

類型(kind)支持兩個值:proxy-defaults和service-defaults。 proxy-defaults允許爲跨Connect代理配置的所有服務,配置全局默認值。目前僅支持一個全局條目。service-defaults控制服務的默認全局值,例如其協議。

Kubernetes集成也將更新,以支持上述新功能。這包括L7可觀察性和新的ACL認證方法。這些更新將在Consul 1.5.0發佈後不久發佈。有關此領域的完整變更列表,請查看consul-k8sconsul-helm的變更日誌。

此次發佈的版本還包括跨多個ConsulHTTP API的過濾支持。它允許添加查詢參數,以便使用filter參數將過濾表達式傳遞到API調用中:

curl -G <path> --data-urlencode 'filter=<filter expression>'

這些過濾器表達式以純文本格式編寫,並支持布爾邏輯、匹配運算符和括號。

根據Consul的路線圖,Consul的未來版本應該會包括基於HTTP路徑的路由和流量轉移特性。通過基於HTTP路徑的路由,Consul將能夠基於HTTP路徑或HTTP頭將流量路由到不同的上游服務。這通過第7層路由擴展到對當前的第4層網絡支持。流量轉移特性將允許一定比例的流量路由到服務的特定實例或完全不同的服務。這允許通過僅更新服務的一部分並將一小部分流量定向到更新的實例中,從而對新版本的軟件進行金絲雀測試

有關此版本的更多詳細信息及其他改進,請查看HashiCorp博客上的官方公告變更日誌提供了該版本的完整變更列表。Consul可以從HashiCorp網站免費下載

查看英文原文HashiCorp Releases Consul 1.5.0 With Layer 7 Observability and Centralized Configuration

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章