Istio 1.3 發布,HTTP 遙測不再需要 Mixer

  • 2019 年 10 月 3 日
  • 筆記

原文鏈接:Istio 1.3 發布,HTTP 遙測不再需要 Mixer

Istio 是 Google、IBM 和 Lyft 聯合開源的服務網格(Service Mesh)框架,旨在解決大量微服務的發現、連接、管理、監控以及安全等問題。 Istio 對應用是透明的,不需要改動任何服務程式碼就可以實現透明的服務治理。1.3 版本已經發布,距離上一個重要版本 1.2 發布已過去兩個多月,我們來看看有哪些修改內容。

1. 智慧協議檢測

在之前的版本中,如果要使用 Istio 的路由功能,Service 的埠命名必須使用特殊的命名格式。如果用戶不遵循該命名規則,就無法使用路由功能。從 1.3 版本開始,即使沒有按照規則命名 Service 的埠,Istio 也會自動識別出站流量的協議為 HTTPTCP。目前還不支援自動識別入站流量的協議,下個版本將會支援。

2. 無 Mixer 的遙測功能(實驗性)

這才是大家最期待的!該版本將大多數常見的安全策略相關的功能(如 RBAC)直接遷移到了 Envoy 中,同時也將大部分遙測功能遷移到了 Envoy 中。現在 Istio proxy 可以直接將收集到的 HTTP 指標暴露給 Prometheus,無需通過 istio-telemetry 服務來中轉並豐富指標資訊。如果你只關心 HTTP 服務的遙測,可以試試這個新功能,具體步驟參考無 Mixer 的 HTTP 遙測。該功能接下來幾個月將會逐漸完善,以便在啟用雙向 TLS 認證時支援 TCP 服務的遙測。

3. 無需定義 containerPort

此前的版本要求網格中的每個 Pod 必須明確申明每個容器的 containerPort,任何未申明的埠都會繞過 Istio Proxy。1.3 版本使用了一種更為簡單安全的方法,不需要顯示申明 containerPort 就可以處理工作負載任何埠上的所有入站流量。之前的版本中,當工作負載向自己發送流量時,會陷入 iptables 規則表導致的無限循環,這個版本也修復了。

4. 支援完全自定義 Envoy 配置

雖然 Istio 1.3 專註於可用性,但高級用戶仍然可以使用 Envoy 中不屬於 Istio Networking API 的高級功能。1.3 版本增強了 EnvoyFilter API 以允許用戶完全自定義以下的 Envoy 配置:

  • LDS 返回的 HTTP/TCP 監聽器以及 filter 鏈配置。
  • RDS 返回的 HTTP 路由配置。
  • CDS 返回的 Cluster 配置。

5. 其他增強功能

  • istioctl 新增了許多調試功能,可以幫助你排查安裝過程中出現的各種問題。詳細資訊可以查看 istioctl 的參考頁面
  • 區域感知負載均衡功能從實驗分支轉移到默認分支。現在 Istio 可以利用現有的位置資訊來確定負載均衡池的優先順序,並支援將請求轉發到地理位置最近的後端。
  • Istio 開啟雙向 TLS 認證時可以更好地支援 headless service。
  • 從以下幾個方面增強了控制平面的監控:
    • 添加新指標來監控配置的狀態
    • 新增了 sidecar injector 的指標
    • Citadel 添加了新的 Grafana 儀錶板
    • 改進了 Pilot 儀錶板,新增了幾個關鍵指標
  • 新增了 Istio 部署模型文檔,可以幫助你選擇合適的部署模型。
  • 重新組織了操作指南中的內容,新增了一個包含所有故障排除任務的章節,可以幫助你快速尋找所需資訊。

詳細內容請查看發布公告。

參考文章

微信公眾號

掃一掃下面的二維碼關注微信公眾號,在公眾號中回復◉加群◉即可加入我們的雲原生交流群,和孫宏亮、張館長、陽明等大佬一起探討雲原生技術