摘要:Containous 發佈了全新的服務網格 Maesh,Maesh 是從頭開始重新設計的,易於安裝和使用。在 HTTP 模式下,Maesh 使用 Traefik 的特性集實現在虛擬主機、路徑、頭信息和 cookie 上功能豐富的路由。

作者 | Damien Duportal

譯者 | 張衛濱

本文最初發表於 medium 博客,經原作者 Damien Duportal 和 Traefik 團隊授權由 InfoQ 中文站翻譯分享。

Containous 發佈了全新的服務網格 Maesh,Maesh 是從頭開始重新設計的,易於安裝和使用。Maesh 允許對 Kubernetes 集羣內部的流量進行可視化和管理,這種流量與 ingress 和 egress 流量同等重要。

Maesh 構建在 Traefik 之上,是一個簡單卻功能齊全的服務網格。它是容器原生的,適合作爲 Kubernetes 集羣中的實際服務網格。它支持最新的 Service Mesh 接口規範(Service Mesh Interface,SMI),藉助該規範,我們能夠更容易地與現有解決方案集成。此外,默認情況下,Maesh 是可選的,這意味着在決定將現有服務添加到網格中之前,它們不會受到任何影響。

非侵入式服務網格

Maesh 並沒有使用 sidecar 容器,而是通過運行在每個節點上的代理端點來處理路由。網格控制器運行在一個專門的容器中,會處理所有的配置解析以及到代理節點上的 deployment。Maesh 支持多種配置選項:用戶服務對象的註解和 SMI 對象。不使用 sidecar 就意味着 Maesh 不會修改 Kubernetes 對象,也不會在你不知情的情況下修改你的流量。只需使用 Maesh 端點就滿足所有需求了。

依賴 Kubernetes DNS

Maesh 利用了 Kubernetes 默認安裝的 CoreDNS 平臺。它允許用戶使用 Maesh 端點(而不是標準的 Kubernetes 服務端點)。Maesh 端點會與用戶服務一起運行:你可以自行決定是否要使用它們(可選的)。這會給用戶帶來更多的自信,因爲用戶知道他們能夠測試和恢復至用戶服務。

另外,CoreDNS 的更新使得 Maesh 的安全達到了最小化和無侵入,並且能夠很容易移除。

多個網絡層

Maesh 可以在 TCP 和 HTTP 模式下運行:

在 HTTP 模式下,Maesh 使用 Traefik 的特性集實現在虛擬主機、路徑、頭信息和 cookie 上功能豐富的路由;通過 TCP 模式,允許與 SNI 路由實現無縫和便利地集成。在同一個集羣中,可以同時使用這兩個模式,這可以通過服務上的註解來進行配置。

構建在 Traefik 之上

Maesh 構建在 Traefik 之上,Traefik 是一個領先的用於路由的反向代理,它提供了用戶期望的所有特性:OpenTracing、HTTP 的負載均衡、gRPC、WebSocket、TCP、豐富的路由規則、重試和恢復,它還具備訪問控制、限速和斷路器的功能。

易於安裝,易於使用

往集羣中安裝 Maesh 非常容易:安裝 Helm chart 就可以,沒有輔助應用,沒有要安裝的 CRD,也沒有要學習的新詞彙。如果用戶已經理解 pod 和服務是如何運行的,那麼 Maesh 就會非常易於理解和使用。

首先,我們可以通過如下的命令安裝 Maesh:

$ helm repo add maesh https://containous.github.io/maesh/charts

$ helm repo update

$ helm install --name=maesh --namespace=maesh maesh/maesh

現在,Maesh 就已經在集羣中就緒了,要在運行中的應用中使用 Maesh,我們只需要一個註解:

$ kubectl annotate service \

web-application maesh.containo.us/traffic-type=http

如果你的應用使用 TCP 連接協議,而不是 HTTP 的話,Maesh 也能支持:

$ kubectl annotate service mongo-database \

maesh.containo.us/traffic-type=tcp

安裝和使用 Maesh 就是這麼簡單。

參考資料

官方站點:

https://mae.sh/

文檔:

https://docs.mae.sh/

GitHub 地址:

https://github.com/containous/maesh

社區論壇:

https://community.containo.us/c/maesh

活動推薦

又到年末,運維工程師如何選擇職業發展道路?如何判斷哪些技術技能纔是企業重點關注?運維工程師的價值和成長路徑是什麼?

極客時間彙集100+一線技術專家分享最佳實踐,爲你整理了從Kubernetes到Nginx、持續交付到運維體系管理的乾貨課程,帶你解讀從運維小工到專家的實戰心法,高效解決80%的開發難題。點擊「 閱讀原文 」,瞭解技術團隊學習方案

相關文章