驚喜Skr人,Istio的創始人Shriram Rajagopalan手把手教你如何使用Istio

雲容器大師發表於2018-11-20

Shriram與來自Google、Lyft、IBM和其他公司的社群貢獻者們一起並肩作戰,積極地向Istio和Envoy專案作貢獻。同時,Shriram是IBM的Amalgam8專案的創始成員之一。目前,Shriram是VMware的一名工程師,與VMware的企業客戶密切合作,致力於開發服務網格解決方案。一個有趣的事實:Shriram編寫了Istio Bookinfo示例應用程式的初始版本。你可以在Twitter上關注Shriram—@rshriram.

在這次訪談中,Shriram分享了許多自己對於Istio和服務網格主題的想法和見解。比如,Istio1.0釋出的主要目標是什麼以及他如何推薦企業採用Istio。

歡迎新增群助手monicka,申請加入華為雲K8S容器技術交流群

現在來看看我們對Shriram的採訪內容……

問:Istio1.0版本釋出主要目標是什麼?

Shriram:Istio 1.0整體是對現有功能的一種升級,並確保Istio可以在生產環境中以無干擾的方式逐步採用。

當我們逐個服務開始啟用雙向TLS身份認證時,Istio的增量部署出現了一些有趣的問題。我們需要確保在為服務啟用雙向TLS身份認證時,舊版客戶端可以繼續通過純文字在同一埠上與同一服務進行通訊,而較新的啟用Istio的客戶端需要通過mTLS進行通訊。

我們關注的另一個領域是0.8版本的升級能力以及未來版本的升級。我們必須確保我們可以平滑地升級網格控制平面,而不會中斷服務間通訊,並且同時支援新老版本的代理。

問:您建議採用什麼樣的方式來快速增量部署Istio 1.0?

Shriram:增量安裝Istio的最佳方法是使用Helm charts。您可以在values.yaml檔案中禁用不需要的元件,並執行Helm命令以生成自定義的istio.yaml檔案。

首先,我們部署一個僅使用Istio ingress gateway元件的網路,然後將所有流量從Kubernetes Ingress遷移到Istio gateway,並確保外部客戶端仍可訪問叢集公開的服務。此步驟最大限度地減少了叢集中已執行的應用程式的停機時間。在此階段,您有兩種選擇:為進入網格的流量啟用路由,遙測,策略實施等功能,或繼續在所有服務中安裝被動網格服務,然後嘗試不同的功能。

假設您想要跨所有服務部署網格,在你手動或通過自動注入的方式嚮應用程式新增Istio sidecars之前,先評估所有外部依賴項(來自Kubernetes叢集),例如第三方API,後端資料庫等。Istio Pilot為服務註冊中心的所有服務(例如,Kubernetes services)建立連線,預設情況下,沒有註冊的外部服務不能和網格內的服務進行通訊。使用Istio service entry配置獲取有關外部依賴項的所有詳細資訊,這些資訊包括網格外服務的主機和埠以及它們使用的協議。service entries將確保sidecars能夠排程流量,以及根據需要呼叫API來定位網格外部的系統。

接下來,下一個關注點是可觀察性,尤其是監測指標。您無需重新檢測應用程式,通過安裝Istio遙測收集器(通過helm chart)並全域性啟用遙測收集,您可以看到流量如何流經系統。此時整個網格仍然是完全被動的,但它為您提供了寶貴的遙測資料。

一旦您熟悉上述設定,就可以開始嘗試不同的Istio功能,可以根據您的環境進行不同的選擇。如果您經常部署應用程式,您可能想要從流量管理功能開始,例如版本路由或彈性功能(如超時,重試,連線池等);如果您的目標是保護所有服務間的通訊流量,您可以漸漸地將所有服務切換到mTLS,然後再利用Istio來配置安全策略。

無論您選擇哪條路徑,請確保自動執行任務。像Kubernetes一樣,Istio要求你關注YAML檔案,使用版本管理工具[Git倉庫]可以輕鬆查明錯誤並快速回滾。

問:有哪些方法可以擴充套件Istio 1.0?

Shriram:Istio可以圍繞內部定製和供應商價值差異化這兩個方面進行多種擴充套件。

例如,遙測服務有許多介面卡可以將遙測資料傳送到各種雲託管服務,例如Stackdriver,DataDog,AWS CloudWatch等。如果您有內部監測服務,您可以編寫介面卡將監測指標資料從網格傳送到您的內部指標池。

同樣,您可以通過自定義策略引擎定義Istio的安全性功能,例如,Apigee人員在Istio策略引擎中新增了一個介面卡來提供API管理。還有一個適用於Open Policy Agent(OPA)的介面卡,您可以構建在OPA之上,以與內部AD / LDAP或其他系統整合。或者,您可以直接向策略引擎新增自定義介面卡,讓內部授權系統決定是否允許請求通過,而不會影響基礎資料平面的代理。這是一個非常靈活和可插拔的設計。

您還可以自定義資料平面。如果您有專有協議的內部編解碼器,則可以將它們作為Envoy的擴充套件新增,並通過網路配置啟用這些擴充套件,比如,Calico人員正在使用這種技術來啟用自定義Envoy過濾器以進行授權。

問:Istio下一個重要里程碑是什麼?

Shriram:在我們與企業客戶交談時,我們反覆聽到他們已經或將要把應用部署在不同的Kubernetes叢集,Cloud Foundry和傳統VM基礎架構中,這些部署需要跨越不同的可用域、區域以及雲,我們希望確保網格不管是在本地還是在多個公有云中都可以跨越這些異構環境執行。

Istio Gateway [在Istio0.8中介紹] 是實現這一目標的第一步,閘道器使得各個機構能夠繞開昂貴的VPN技術實現pod間通訊,它在單個邏輯控制平面管理的叢集之間自由地排程流量。同時,我們可以擁有一個策略層,並開始跨群集傳播授權上下文,執行RBAC,ABAC和企業所需的其他策略等。

原文:

https://blogs.vmware.com/cloudnative/2018/07/31/istio1-0-interview-with-istio-networking-tech-lead/

相關文章