部署
閱讀關於在第一天、第二天和第 1000 天快速有效實施的最佳實踐。
您已決定要使用 Istio。歡迎來到服務網格的世界。恭喜,您加入了優秀的行列!
如果您還沒有這樣做,您可能想在測試環境中試用 Istio,並瀏覽我們的入門指南。這將讓您了解流量管理、安全性和可觀測性功能。
自己做,還是帶個嚮導?
Istio 是開源軟體,您可以自行下載和安裝。在 Kubernetes 叢集上安裝網格就像執行一個命令一樣簡單
$ istioctl install
隨著新版本的發布,您可以測試它們並逐漸在您的叢集中推出。
許多託管的 Kubernetes 服務供應商都有自動為您安裝和管理 Istio 的選項。請查看我們的經銷商頁面,看看您的供應商是否支援 Istio。
Istio 也是許多商業服務管理產品的引擎,有專家團隊隨時準備協助您入門。
越來越多的雲原生顧問可以協助您踏上 Istio 之旅。如果您要與 Istio 生態系統的成員合作,我們建議您儘早將他們納入。我們的許多合作夥伴和經銷商已經與該專案合作了很長時間,對於引導您踏上旅程將非常有價值。
您應該先啟用什麼?
採用 Istio 有很多很好的理由:從為您的微服務增加安全性到提高應用程式的可靠性。無論您的目標是什麼,最成功的 Istio 實施都是從確定一個用例並解決它開始。一旦您配置網格來解決問題,您就可以輕鬆啟用其他功能,從而提高部署的實用性。
我該如何將網格對應到我的架構?
透過一次添加一個命名空間,逐步將您的服務加入網格。預設情況下,來自多個命名空間的服務可以相互通信,但您可以透過選擇性地選擇要向其他命名空間公開的服務來輕鬆提高隔離性。使用命名空間還可以提高效能,因為配置的範圍會縮小。
Istio 可以靈活地匹配您的 Kubernetes 叢集和網路架構的配置。您可能希望在個別叢集上執行個別網格和控制平面,或者您可能只有一個。
只要 Pod 可以在網路上相互連線,Istio 就可以工作;您甚至可以配置 Istio 閘道器作為網路之間的堡壘主機。
在我們的文件中了解完整的部署模型範圍。
現在也是思考您想要使用哪些整合的好時機:我們建議設定 Prometheus 進行服務監控,並將階層式聯合到外部伺服器。如果您的公司的可觀測性堆疊由不同的團隊運行,現在是讓他們加入的好時機。
第一天將服務新增至網格
您的網格現在已配置完成,可以接受服務。若要執行此操作,您只需在 Kubernetes 中標記您的命名空間,當這些服務重新部署時,它們現在將包含配置為與 Istio 控制平面通信的 Envoy 代理。
配置服務
許多服務可以直接使用,但透過在 Kubernetes 清單中添加一些資訊,您可以讓 Istio 更加智慧。例如,設定 app
和 version
的標籤將有助於稍後查詢指標。
對於常見的連接埠和協定,Istio 將會偵測流量類型。如果無法偵測,它會回退將流量視為 TCP,但您可以輕鬆地使用流量類型標註服務。
了解更多關於啟用應用程式以與 Istio 搭配使用的資訊。
啟用安全性
Istio 會配置網格中的服務,以便在盡可能的情況下相互通信時使用 mTLS。預設情況下,Istio 將以「寬容的 mTLS」模式執行,這表示服務將接受加密和未加密的流量,以允許來自非網格服務的流量保持正常運作。將所有服務加入網格後,您可以將驗證原則變更為僅允許加密流量。然後,您可以確定所有流量都已加密。
Istio 的兩種 API 類型
Istio 具有適用於平台擁有者和服務擁有者的 API。根據您扮演的角色,您只需要考慮一個子集。例如,平台擁有者將擁有安裝、驗證和授權資源。流量管理資源將由服務擁有者處理。了解哪些 API 對您有用。
連接虛擬機器上的服務
Istio 不僅適用於 Kubernetes;還可以將虛擬機器(或裸機)上的服務新增至網格中,以獲得 Istio 提供的所有優勢,例如相互 TLS、豐富的遙測和進階流量管理功能。
監控您的服務
使用Kiali檢查流經網格的流量,或使用 Zipkin 或 Jaeger追蹤請求。
使用 Istio 的預設 Grafana 儀表板,自動取得網格中運行的服務的黃金訊號報告。
操作考量和第二天
作為平台擁有者,您有責任安裝網格並保持其更新,對服務團隊的影響很小。
安裝
使用 istioctl,您可以使用其中一個內建設定檔輕鬆安裝 Istio。當您自訂安裝以滿足您的需求時,建議使用 IstioOperator 自訂資源 (CR) 定義您的組態。這讓您可以選擇將安裝管理的工作完全委派給 Istio Operator,而不是使用 istioctl 手動執行。僅針對控制平面使用 IstioOperator CR,並針對閘道器使用其他 IstioOperator CR,以提高升級的彈性。
安全升級
發布新版本時,Istio 允許就地升級和 Canary 升級。在這兩者之間進行選擇是在簡單性和潛在停機時間之間進行權衡。對於生產環境,建議使用Canary 升級方法。在驗證新的控制和資料平面版本正常工作後,您可以升級閘道器。
監控網格
Istio 會為網格內的所有服務通信產生詳細的遙測資料。這些指標、追蹤和存取記錄對於了解您的應用程式如何相互互動以及識別任何效能瓶頸至關重要。使用此資訊來幫助您設定斷路器、逾時和重試,並加強您的應用程式。
就像您在網格中運行的應用程式一樣,Istio 控制平面元件也會匯出指標。利用這些指標和預先配置的 Grafana 儀表板來調整您的資源要求、限制和縮放。
加入 Istio 社群
一旦您開始運行 Istio,您就成為一個龐大的全球社群的成員。您可以在我們的討論論壇上提出問題,或加入 Slack。如果您想要改進某些東西或有功能要求,可以直接前往 GitHub。
祝您網格化愉快!