Oracle 雲基礎設施 (OCI) 客戶越來越多地轉向微服務架構,該架構不僅帶來了許多好處,但也帶來了新的挑戰。 在微服務架構中,整體式應用程式被拆分為多個較小的微服務,這些微服務通過 API 通過網路進行通訊。 這導致網路流量激增,並增加了架構和整體攻擊面的複雜性。 將服務網格新增到微服務可以緩解微服務架構帶來的許多挑戰,並允許您控制流量流向微服務的位置。
提供對應用程式的可見性。
使微服務能夠在不更改應用程式的情況下安全連線。
借助 OCI Service Mesh,您可以將託管的 Service Mesh 架構部署到 Kubernetes 容器引擎 (OKE) 集群。 此參考架構提供了在 OKE 集群中部署的 OCI 服務網格架構的詳細示例。 OCI 服務網格使用訪問策略來定義訪問規則。 訪問策略強制執行微服務之間的通訊,並且僅允許來自應用內部和外部的經過身份驗證的請求。 訪問策略還用於定義允許與外部服務的通訊。
零信任OCI 服務網格可在所有微服務中自動實施零信任安全架構。 微服務之間的資料是加密的。 在通訊開始時,需要在微服務之間進行身份驗證。 雙方必須交換帶有身份資訊的憑據。 這使服務能夠相互識別,以確定它們是否具有互動許可權。 這是通過使用 OCI 證書服務和 OCI 金鑰管理服務(用於管理證書和金鑰)並實施雙向 TLS 來自動執行證書和金鑰輪換來實現的。
交通管理交通轉移。
OCI 服務網格支援您進行金絲雀部署。 當您將新版本的 ** 發布到生產環境時,您只允許一部分流量到達它。 此功能使您能夠快速部署,同時將對應用程式的中斷降至最低。 您可以定義路由規則來控制網格內所有微服務之間的通訊。 您可以將流量的子集路由到服務的特定版本。
可觀察性監視和日誌記錄。
OCI 服務網格在提供遙測資訊方面具有獨特的優勢,因為微服務之間的所有通訊都必須通過它。 這使服務網格能夠捕獲遙測資料,例如**、目標、協議、URL、持續時間、狀態程式碼、延遲、日誌記錄和其他詳細統計資訊。 您可以將日誌資訊匯出到日誌服務。 OCI 服務網格提供兩種型別的日誌:錯誤日誌和流量日誌。 您可以使用這些日誌來除錯 404 或 505 問題或生成基於日誌的統計資訊。 指標和遙測資料可以匯出到 Prometheus,並通過 Grafana 進行視覺化。 這兩者都可以直接部署到 OKE 群集中。
OCI 服務網格使用 sidecar 模型。 此架構將網路功能封裝到網路中,然後依賴於來自和流向服務的流量,以重定向到sidecar。 它之所以被稱為 sidecar,是因為它附加到每個應用程式,就像 sidecar 連線到電單車一樣。 在 OKE 中,應用程式容器與 sidecar 容器位於同一 pod 中。 由於它們位於同乙個 Pod 中,因此它們共享相同的網路命名空間和 IP 位址,從而允許容器通過“localhost”進行通訊。 OCI 服務網格有兩個主要元件:OCI 服務網格控制平面管理和配置整個集合以路由流量。 它處理執行狀況、執行狀況檢查、負載均衡、身份驗證、授權和遙測的聚合。 控制平面與 OCI 證書服務和 OCI 金鑰管理服務互動,以提供其每個證書。
資料平面由部署在環境中的 sidecar** 集合組成,負責應用程式的安全性、網路功能和可觀測性。 它們還收集和報告所有網格流量的遙測資料。 Envoy 用作 OCI 服務網格的資料平面。 下圖演示了此參考體系結構。
此參考體系結構顯示了在具有三個服務的 OKE 群集中部署的應用程式。 部署應用程式的命名空間已“網格化”。 “網格化”命名空間意味著部署在該命名空間中的服務將成為服務網格的一部分,並且每個新部署的 Pod 都將注入乙個 envoy** 容器。 部署每個 Pod 後,OCI 服務網格控制平面會將配置和證書傳送到每個容器。 OCI 服務網格控制平面與 OCI 證書服務和金鑰管理服務進行通訊,以獲取每個 ** 的證書。 部署入口閘道器以提供對應用程式的外部訪問。 入口閘道器是 OCI 服務網格資料平面的一部分,也是從 OCI 服務網格控制平面接收配置和證書的 Envoy。 容器的職責是對目標服務執行服務發現、流量加密和身份驗證。 容器還應用網路策略,例如不同服務版本之間的流量分配,並強制執行訪問策略。 入口閘道器對來自服務網格外部的流量執行相同的功能。 Prometheus 和 Grafana 部署在 OKE 集群中的單獨命名空間中,該命名空間不屬於服務網格。 服務網格資料平面將關鍵操作統計資訊(如延遲、故障、請求和遙測)傳送到 Prometheus 部署。 Grafana 從 Prometheus 部署中提取資料,這些資料可用於建立視覺化儀表板。 OCI 服務網格與 OCI 日誌服務整合,可以在建立服務網格時啟用日誌記錄。 OCI 服務網格提供兩種型別的日誌:錯誤日誌和流量日誌。 這些日誌可用於除錯 404 或 505 問題或生成基於日誌的統計資訊。 此架構包括以下 OCI 服務: 提供高度可用、可擴充套件、生產就緒的 Kubernetes 集群,以便在雲中部署容器化應用。
提供對 OKE 群集中的入口閘道器的訪問。 Ingress 將流量定向到 OKE 集群中請求的服務。
管理 OCI Service Mesh 服務的 TLS 證書。
管理證書頒發機構服務使用的金鑰。
此體系結構由以下元件組成: Oracle Cloud Infrastructure 區域是包含乙個或多個資料中心(稱為可用性域)的地理區域。 區域彼此獨立且相距甚遠(跨國家甚至跨大陸)。
VCN 是在 Oracle Cloud Infrastructure 區域中設定的可定製的軟體定義網路。 就像傳統的資料中心網路一樣,VCN 可讓您完全控制網路環境。 乙個 VCN 可以有多個不重疊的 CIDR 塊,您可以在建立 VCN 後更改這些 CIDR 塊。 您可以將 VCN 拆分為多個子網,這些子網可以限制為乙個區域或乙個可用性域。 每個子網都包含乙個連續的位址範圍,這些位址不與 VCN 中的其他子網重疊。 您可以在建立子網後更改子網的大小。 子網可以是公有子網,也可以是私有子網。
對於每個子網,您可以建立安全規則,以指定必須允許進出子網的流量、目標和流量型別。
在配置部署在 OKE 集群中的 OCI 服務網格時,會定義多個 Kubernetes 資源,這些資源對映到應用的關鍵元件。
下圖描述了配置的 OCI 服務網格資源:訪問策略、入口閘道器、虛擬服務和虛擬部署如何對映到您的應用資源:K8S 服務、K8S 服務負載均衡器、部署和 Pod。
使用以下建議作為起點。 您的需求可能與此處描述的體系結構不同。 建立 VCN 時,請根據計畫附加到 VCN 子網的資源數量確定所需的 CIDR 塊數和每個塊的大小。 使用標準專用 IP 位址空間中的 CIDR 塊。
選擇與您打算設定專用連線的任何其他網路(在 Oracle Cloud Infrastructure、內部部署資料中心或其他雲提供商中)不重疊的 CIDR 塊。
建立 VCN 後,您可以更改、新增和刪除其 CIDR 塊。
在設計子網時,請考慮流量的去向和安全要求。 將特定層或角色中的所有資源附加到同一子網,該子網可以充當安全邊界。
建立負載均衡器時,可以選擇提供固定頻寬的預定義配置,也可以選擇自定義(靈活)配置,在其中設定頻寬範圍並讓服務根據流量模式自動縮放頻寬。 無論採用哪種方式,您都可以在建立負載均衡器後隨時更改負載均衡器的形狀。
部署此參考體系結構時,請考慮以下選項。 在 OKE 集群上,OCI 服務網格的控制平面不收取任何費用。 客戶需要為提供網格資料平面的容器的資源利用率付費。 但是,在實踐中,客戶已經為 OKE 集群中的節點池資源付費,除非容器的利用率將節點池的利用率推高到 100% 以上,否則將 OCI 服務網格新增到微服務架構不會產生額外費用。
OCI 服務網格的控制平面始終部署為高可用性。
作為甲骨文標準合作夥伴,Agilewing正在重新定義企業體驗甲骨文雲服務的方式。 憑藉其簡化的開戶流程和一流的技術支援,雅居翼將複雜的開戶和操作流程轉變為簡單、直觀的體驗。 借助我們的一站式服務,您可以快速啟動並執行全套 Oracle 雲服務,從而無縫整合到雲中。 Agilewing 的 AgileCDN 服務與 OCI 基於雲的服務相結合,可提供一流的全球內容加速解決方案。 由2,800多個全球POP節點和7,000個直接連線點組成的強大網路可確保您的業務擴充套件到全球的任何地方,都能確保高效穩定的運營。 利用 Oracle 雲的先進技術,Agilewing 致力於簡化雲服務構建、雲遷移和業務走出去的流程。 “我們的合作模式為客戶提供了經濟高效的解決方案,使他們能夠更專注於核心業務,同時享受 Oracle 雲的高效能和安全性。” Oracle 雲服務是乙個前景廣闊的領域,憑藉其高效能、安全性和全球一致的服務標準,為企業開啟了通往新機遇的大門。 通過雅樂之翼的專業服務,無論是個人使用者還是企業,都能輕鬆進入這個充滿技術創新和高效能的新時代。 讓 Agilewing 開始探索 Oracle 雲服務,開啟通往全新世界的大門。