91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Ambassador 0.52 新特性:會話親和性、負載均衡控制、gRPC-Web

發布時間:2020-08-07 22:29:54 來源:ITPUB博客 閱讀:311 作者:EAWorld 欄目:互聯網科技

Ambassador 0.52 新特性:會話親和性、負載均衡控制、gRPC-Web

本文由公眾號EAWorld翻譯發表,轉載需注明出處。

作者:Richard Li 

譯者:白小白 

原文:http://t.cn/E6cZoyG

現時的云原生應用由多種異構的服務或者微服務組成,服務間、服務與客戶端之間的通信需要跨越浩繁的通信協議和拓撲結構。Ambassador就是部署在這樣不斷增長的異構的工作負載環境之下,也因此我們對于這種境況有著直接的認知。

我們著力于將Ambassador打造成全球最棒的云原生API網關。為此,我們很興奮可以發布Ambassador的0.52版本,并在新版中新增了如下的新能力:

  • 支持gRPC-Web協議。gRPC-Web基于原生的gRPC,其設計主旨服務于瀏覽器/服務器通信。在此要對 Gert van Dijk 和 Rotem Tamir 的工作表示感謝。

  • 支持先進的負載均衡控制。現在的Ambassador可以原生支持向物理IP地址的流量路由,而非DNS主機名稱。

  • 支持會話親和性(即粘滯會話)。Ambassador可以基于Cookie、HTTP頭或者來源IP地址,將來自同一個終端用戶的HTTP請求歸集到一個特定的Kubernetes Pod里。

由于實施了一些架構遷移的工作,對會話親和性和先進的負載均衡控制的支持還屬于搶先版本狀態,稍后將會介紹。

一、gRPC-Web支持

今時今日的云服務通過大批的通信協議進行暴露。Ambassador幾乎支持流行的7層協議的每一層,包括HTTP,HTTP/2,gRPC,WebSocket,以及最新支持的gRPC-Web。并且,即使開發者所使用的協議并不被直接支持,Ambassador也支持原生的TCP路由方式。

gRPC-Web協議面向前端開發者提供了很多的便利:高性能,雙向的流式通信以及廣泛的類庫支持。由于瀏覽器的限制 ,gRPC-Web并不與gRPC直接兼容。但可以設置服務端代理來解決在gRPC-Web請求和gRPC HTTP/2響應之間的翻譯轉換問題。

感謝Envoy對于gRPC-Web的支持,Ambassador現在可以通過設置 enable_grpc_web: True注解來支持gRPC-Web。需要注意的是,這是一個全局設定。

二、先進的負載均衡控制

Ambassador一直提供廣泛的路由選項,可以基于主機、HTTP方法、HTTP頭,可以采用正則表達式等等。我們知道,對路由施加靈活的細粒度的控制 對適應廣泛的使用場景至關重要。但目前Ambassador僅為運維人員提供了有限的控制,來將請求路由到不同的endpoint。過去,Ambassador直接將請求路由到Kubernetes service,由后者將請求分發到不同的Pod。這種方案工作良好,便于推理和測試。對Kubernetes service的Curl請求遵循與Ambassador請求同樣的路由路徑。

Kubernetes網絡

在一個典型的Kubernetes集群中,由kube-proxy路由Kubernetes service請求。稍顯困擾的是,kube-proxy并不是典型形態的代理,只是基于iptables規則為service實現虛擬IP的一個進程。這種架構為路由帶來了額外的復雜性:不僅引入了少量的延遲,而且iptables并不是為路由設計的,因此負載均衡策略受限于輪詢的調度模型。

盡管存在實現的復雜性,這樣的方案仍舊為Ambassador使用者提供了壓倒性的優勢:簡便性。服務發現和負載均衡都交給Kubernetes解決,可以很直接的使用類似Curl這樣的常規工具進行路由的測試。

Ambassador 0.52的負載均衡

在Ambassador 0.52版本中,我們引入了一套新的負載均衡控制機制。相關的控制選項是可選的,所以如果不做任何設置的變動,將以原本行之有效的方式來實施負載均衡控制。如果設置了AMBASSADOR_ENABLE_ENDPOINTS環境變量,將會啟用新的控制機制:

  • Ambassador會監視所有Kubernetes endpoint的狀態變更,而不僅僅關注Kubernetes service本身。

  • 有了這些狀態信息,Ambassador可以基于設置來使用不同的負載均衡算法,繞過Kube-proxy將請求直接路由到Kubernetes endpoint。

以下的示例映射表展現了我們如何添加load_balancer注解:

apiVersion: ambassador/v1
kind: Mappingname: qotm_mapping
prefix: /qotm/
service: qotm
load_balancer:
policy: round_robin

需要注意的是,可以在Ambassador模塊中添加注解,來使默認的負載均衡策略全局有效。

會話親和性

除了默認的round_robin策略,Ambassador 0.52還可以基于ringhash策略支持會話親和性(即“粘滯會話”)。在此過程中需要為路由指定客戶端的唯一標識。可以支持任意的HTTP頭,Cookie或者實際的來源IP地址。

搶先版本

我們在0.52中將先進的負載均衡控制機制作為搶先版本發布,以進行更廣泛的測試并收集反饋。我們尤其感興趣的是,在不同的工作負載和Kubernetes集群環境下,啟用這一特性有怎樣的效果。我們希望 endpoint數多于service數,這樣就可以對Kubernetes的API服務器產生持續增長的工作負載。我們熱切的期待你的反饋,無論是積極的或者是負面的都可以,只要是關于這一特性的。

三、Ambassador 0.52版本的其他改變

在新版的Ambassador中,我們還提供了對大量的用戶反饋Bug的修復,并提供了諸多的加強。

  • Ambassador現在支持HTTP/1.1請求和gRPC后端服務之間的橋接。

  • 在使用HTTP API的時候,為extauth過濾器添加了一個tracing header。(在使用gRPC API的時候,已經添加了這樣的tracing header)

  • 允許extauth建立原本不存在的header(#1313)。

  • 可以使用Lua過濾器,在映射中嵌入簡單的腳本。鳴謝Liam Costello的貢獻。

  • 啟動性能改進。

  • 使用C YAML解析器代替Python實現以改進解析性能(#1294,#1318)

  • 加入xff_num_trusted_hops設置。如果用戶使用了如CloudFlare這樣的CDN服務,并且依賴X-Forwarded-For header來應對流量限速的使用場景,提供這樣的設置將十分重要。

更新的核心設置文檔覆蓋了上面提到的新的選項(如Lua,gRPC HTTP/1.1 橋接等)。

四、即將到來的0.60中的重大變更

Ambassador 0.60將默認在8080端口偵聽明文HTTP請求(取代原來的80端口),在8443端口偵聽HTTPS請求(取代原來的443端口),以便在沒有Root權限的情況下簡化Ambassador的運行。如果你的現存服務依賴上述默認端口,需要修改相關的配置文件,Ambassador 0.52會在診斷服務中提出警報。

五、安裝Ambassador 0.52

可以通過下面的Docker標簽獲得Ambassador 0.52版本:

quay.io/datawire/ambassador:0.52.0

通過標簽更新現有的部署清單,kubectl會將0.52版本安裝到集群中。

也可以通過Helm安裝:


helm install stable/ambassador


、升級到Ambassador 0.52

Ambassador的更新依賴Kubernetes的部署。在更新Ambassador之前,需要將Kubernetes部署清單指向quay.io/datawire/ambassador:0.52.0然后基于更新后的清單運行kubectl。Kubernetes會以滾動更新的方式將Ambassador更新到0.52版本。

、后續

如果你在更新過程中遇到任何問題,可以發issue或者加入我們的Slack求助。

提交Issue的地址:https://github.com/datawire/ambassador/ 加入Slack的地址:http://d6e.co/slack

如果Ambassador工作良好,我們也很樂于得到這樣的消息。可以在文末或者在我們的推特賬號@getambassadorio留言。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁阳县| 百色市| 伊宁市| 双峰县| 襄城县| 马山县| 江津市| 瑞金市| 内江市| 都安| 新民市| 绥阳县| 图片| 应用必备| 元氏县| 东丰县| 黄梅县| 旬阳县| 金沙县| 南投县| 伽师县| 雅安市| 惠水县| 休宁县| 瑞昌市| 贺兰县| 延长县| 锦屏县| 京山县| 湖口县| 商丘市| 定襄县| 天柱县| 临泉县| 蓬溪县| 南昌市| 湟中县| 闵行区| 扶绥县| 邢台县| 高唐县|