Red Hat OpenShift on IBM Cloud 上的服務網格

本指導教學可能會產生成本。 使用「成本估算器」根據您的預計用量生成成本估算。

本指導教學將逐步引導您如何在 Red Hat OpenShift on IBM Cloud 叢集裡安裝範例應用程式 BookInfo 的 Red Hat OpenShift 服務與微服務。 您也將瞭解如何配置 Istio Ingress-gateway,以將服務公開在服務網格之外,執行資料流量管理來設定重要作業,例如 A/B 測試和 canary 部署,保護微服務通訊安全,以及使用度量、記載和追蹤來觀察服務。

根據開放程式碼 Istio 專案,Red Hat OpenShift Service Mesh 在現有分散式應用程式上新增透通層。Red Hat OpenShift Service Mesh 提供一個平台,可讓您在服務網格中對網路微服務進行行為洞察及作業控制。 使用 Red Hat OpenShift,您可以連接、保護及監視 Red Hat OpenShift on IBM Cloud 叢集裡的微服務。

Istio 是一個開放式平台,可連接、保護、控制及觀察雲端平台上的微服務 (也稱為服務網格),例如 Red Hat OpenShift on IBM Cloud中的 Kubernetes。

目標

  • 在叢集裡安裝 Red Hat OpenShift Service Mesh
  • 部署 BookInfo 範例應用程式
  • 使用度量值、記載及追蹤來觀察服務
  • 設定 Istio Ingress 閘道
  • 執行簡單的資料流量管理,例如 A/B 測試和 canary 部署
  • 使用 mTLS 保護網眼安全

架構圖
教學架構圖

  1. 管理者會佈建 Red Hat OpenShift on IBM Cloud 叢集,並安裝 Service Mesh Operator 以及其他 Telemetry Operator。
  2. 管理者會建立 istio-system 名稱空間 (專案) 並建立 ServiceMeshControlPlane
  3. 管理者會建立已啟用自動 Sidecar 注入的 bookinfo 名稱空間,並將 BookInfo 應用程式 (具有四個個別微服務) 部署至服務網格。
  4. 管理者使用 Istio Ingress Gateway 來公開外部資料流量的應用程式。
  5. 使用者透過瀏覽器安全地 HTTPS ) 存取應用程式。
  6. 管理者會使用度量、追蹤資料、日誌來監視微服務的性能及效能。

開始之前

本指導教學需要:

  • IBM Cloud CLI,
    • IBM Cloud Kubernetes Service 外掛程式 (kubernetes-service),
  • oc 以與 OpenShift互動。

您將在 指導教學入門 手冊中找到針對您的作業環境下載及安裝這些工具的指示。

若要避免安裝這些工具,您可以從 IBM Cloud 主控台使用 Cloud Shell。 使用 oc version 來確保 Red Hat OpenShift on IBM Cloud CLI 的版本符合叢集版本 (4.13.x)。如果它們不相符,請遵循 這些指示 來安裝相符版本。

建立 Red Hat OpenShift on IBM Cloud 集群

使用 Red Hat OpenShift on IBM Cloud,您可以快速且安全地將企業工作量儲存器化並部署在叢集裡。Red Hat OpenShift on IBM Cloud 叢集建置在 Kubernetes 儲存器編排上,可為開發生命週期作業提供一致性和彈性。

在此區段中,您將在具有兩個 (2) 工作者節點的一個 (1) 區域中佈建 Red Hat OpenShift on IBM Cloud 叢集:

  1. 登入 IBM Cloud 帳戶,並從 Red Hat OpenShift on IBM Cloud 叢集建立頁面 建立 Red Hat OpenShift on IBM Cloud 叢集。
  2. 編排服務 設為 Red Hat OpenShift on IBM Cloud 的 4.13.x 版本
  3. 選取您的 OCP 授權。
  4. 基礎架構 下選擇「標準」或 VPC
    • 對於 VPC 基礎架構上的 Red Hat OpenShift on IBM Cloud 而言,您需要在建立 Kubernetes 叢集之前,先建立一個 VPC 和一個子網路。 請記住下列事項 (請參閱 建立標準 VPC 叢集 下提供的指示):
      • 一個可用於本指導教學的子網路,請記下子網路的區域及名稱
      • 公用閘道已連接至子網路
    • 選取想要的 VPC
    • 選取現有的 Cloud Object Storage 服務,或視需要建立一個服務,然後選取
  5. 位置下方
    • 若為 VPC 基礎架構上的 Red Hat OpenShift on IBM Cloud
      • 選取資源群組
      • 取消勾選不適用的區域
      • 在想要的區域中驗證想要的子網路名稱,如果不存在,請按一下編輯鉛筆以選取想要的子網路名稱
    • 對於標準基礎架構上的 Red Hat OpenShift on IBM Cloud,請遵循 建立標準叢集 指示。
      • 選取資源群組
      • 選取 地理位置
      • 選取 單一區域 作為 可用性
      • 選擇資料中心
  6. 工人池下
    • 選取 4 vCPUs 16GB 記憶體 作為特性
    • 針對本指導教學,選取 2 每個資料中心的工作者節點 (僅限典型: 離開 加密本端磁碟)
  7. 資源詳細資料下,將 叢集名稱 設為 -myopenshiftcluster,將 <your-initials> 取代為您自己的首字母。
  8. 按一下 建立,以佈建 Red Hat OpenShift on IBM Cloud 叢集。

記下上面選取的資源群組。 這個相同的資源群組將用於這個實驗室中的所有資源。

使用 IBM Cloud Shell 存取叢集

Red Hat OpenShift on IBM Cloud 容器平台 CLI 提供管理應用程式的指令,以及與系統各元件互動的低階工具。 該 CLI 可透過 oc 指令使用。

為了避免安裝指令行工具,建議的方法是使用 IBM Cloud Shell。

IBM Cloud Shell 是您可以透過瀏覽器存取的雲端型 Shell 工作區。 它已預先配置完整 IBM Cloud CLI 及許多外掛程式和工具,可用來管理應用程式、資源及基礎架構。

在此步驟中,您將使用 IBM Cloud Shell 並配置 oc 以指向指派給您的叢集。

  1. 當叢集備妥時,在叢集概觀頁面上按一下 OpenShift Web 主控台 以開啟主控台。 確定您沒有關閉這個視窗/標籤
  2. 在 Web 主控台上,按一下畫面右上角您的名稱下的下拉清單,並選取 複製登入指令,然後按一下 顯示記號 鏈結。
  3. 複製 使用此記號登入下的文字。
  4. 在新的瀏覽器標籤/視窗中,開啟 IBM Cloud Shell 以啟動新的階段作業。 階段作業啟動之後,您應該會自動登入 IBM Cloud CLI。 請確定您沒有關閉這個視窗/標籤
  5. 檢查 OpenShift CLI 的版本:
    oc version
    
  6. 版本必須至少為 4.13.x,否則請遵循 這些指示 來安裝最新版本。
  7. 貼上您從 Web 主控台複製的登入指令,然後按 Enter 鍵。 使用 oc login 指令登入後,請執行以下指令來查看叢集裡的所有名稱空間。
    oc get ns
    
  8. Cloud Shell 中,使用 oc new-project 指令建立稱為 "bookinfo" 的專案。 專案將保留在安裝服務網格之後建立的應用程式。
    oc new-project bookinfo
    
    在 Red Hat OpenShift 中,專案是具有額外註釋的 Kubernetes 名稱空間。

安裝 Service Mesh-Istio

在本節中,您將在叢集上安裝 Service Mesh-Istio。 安裝「服務網格」包括安裝 Elasticsearch、Jaeger、Kiali 及「服務網格操作員」,建立及管理 ServiceMeshControlPlane 資源以部署控制平面,以及建立 ServiceMeshMemberRoll 資源以指定與「服務網格」相關聯的名稱空間。

部分專案具有多個操作員。 請小心安裝下面指定的

Elasticsearch-根據開放程式碼 Elasticsearch 專案,可讓您配置及管理 Elasticsearch 叢集,以使用 Jaeger 進行追蹤及記載。

Jaeger-根據開放程式碼 Jaeger 專案,可讓您執行追蹤,以監視複雜分散式系統中的交易並對其進行疑難排解。

Kiali-根據開放程式碼 Kiali 專案,提供服務網格的可觀察性。 透過使用 Kiali,您可以在單一主控台中檢視配置、監視資料流量,以及檢視和分析追蹤資料。

Red Hat OpenShift 服務網格-根據開放程式碼 Istio 專案,可讓您連接、保護、控制及觀察組成應用程式的微服務。

安裝操作器

  1. Red Hat OpenShift Web 主控台的左窗格中,選取下拉清單中的 管理者
  2. 選取 Operator,然後選取 OperatorHub
  3. 搜尋 OpenShift Elasticsearch 操作器,按一下磚,按一下 安裝,保留預設選項,然後按一下 安裝
  4. 重複 上述步驟 2 和 3,以安裝「操作員」。
    1. Red Hat OpenShift 分散式追蹤平台
    2. Kiali 操作器 (由 Red Hat提供)
    3. Red Hat OpenShift 服務網格

這會將「操作器」安裝在預設 openshift-operators 專案中,並使「操作器」可供叢集中的所有專案使用。

部署 Red Hat OpenShift 服務網格控制平面

Red Hat OpenShift Service Mesh 操作器會使用 ServiceMeshControlPlane 資源來決定如何安裝 Istio 以及您想要的元件。 讓我們立即建立該資源。

  1. 移至 Web 主控台左窗格的 首頁,按一下 專案,然後按一下 建立專案,以建立新專案。
  2. 名稱中輸入 istio-system,然後按一下建立
  3. 導覽至 操作器,然後按一下 已安裝的操作器
  4. 從頂端列的「專案」功能表中選取 istio-system
  5. 按一下 Red Hat OpenShift 服務網格。 如果您沒有看到它,請等待幾分鐘,然後重新整理。
  6. 在「詳細資料」標籤上的下 Istio 服務網格控制平面平鋪,點擊建立實例或者創造ServiceMeshControlPlane
  7. 然後,按一下建立操作器會根據您的配置參數來建立 Pod、服務及服務網格控制平面元件。
  8. 若要確定已適當地安裝「服務網格控制平面」,請按一下清單中 Name 下的 基本。 在後續頁面上,您應該會看到 元件 備妥。 此外,當您捲動至頁面的 條件 區段時,應該會看到原因 ComponentsReady 及訊息 All component deployments are Available

創建一個ServiceMeshMemberRoll

ServiceMeshMemberRoll資源用於指定與服務網格關聯的命名空間。

  1. 再次導覽至 操作器已安裝的操作器
  2. 按一下 Red Hat OpenShift 服務網格
  3. 在「詳細資料」標籤上的下 Istio 服務網格成員名單平鋪,點擊建立實例或者創造ServiceMeshMemberRoll 然後選擇 YAML 視圖
  4. your-project 變更為 bookinfo,並刪除最後一行 (- another-of-your-projects)。編輯之後,YAML 應該如下所示:
    apiVersion: maistra.io/v1
    kind: ServiceMeshMemberRoll
    metadata:
      name: default
      namespace: istio-system
    spec:
      members:
        - bookinfo
    
  5. 然後,按一下建立

您已順利將 Istio 安裝至叢集。

在服務網格上部署 BookInfo 應用程式

BookInfo 應用程式 會顯示工作簿的相關資訊,類似於線上工作簿商店的單一型錄項目。 頁面上顯示書籍的說明、書籍詳細資料 (ISBN、頁數等),以及一些書籍檢閱。

「書籤資訊」應用程式分成四個個別的微服務:

  • productpage。 productpage 微服務會呼叫詳細資訊和評論微服務來填充頁面。
  • 詳情。 詳細資料微服務包含書籍資訊。
  • 評論。 檢閱微服務包含書籍檢閱。 它也稱為評等微服務。
  • 評分。 評分微服務包含與書評相伴的書籍排名資訊。

檢閱微服務有 3 個版本:

  • v1 不會呼叫評等服務。
  • 版本 v2 會呼叫評分服務,並將每個評分顯示為 1 到 5 顆黑星。
  • 版本 v3 會呼叫評分服務,並將每個評分顯示為 1 到 5 顆紅星。

應用程式的端對端架構如下所示。

使用 Istio 的架構
使用 Istio 的架構

Red Hat OpenShift 服務網格依賴於應用程式 Pod 內的 Envoy Sidecar,以提供服務網格功能給應用程式。 您可以啟用自動 Sidecar 注入或手動管理它。 建議使用註釋自動注入。

  1. 將 bookinfo.yaml 檔案套用至 Red Hat OpenShift 叢集,以在 bookinfo 專案中部署 Bookinfo 應用程式。 這會部署所有微服務應用程式,包括檢閱應用程式 v1、v2 及 v3。

    oc apply -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.2/samples/bookinfo/platform/kube/bookinfo.yaml
    

    bookinfo.yaml 檔案已註釋 sidecar.istio.io/inject: "true",以啟用 Red Hat OpenShift Service Mesh 的 Istio Sidecar 自動注入。 因此,這些 Pod 還將包括在叢集裡啟動時的 Envoy Sidecar。

    Red Hat OpenShift Service Mesh 的安裝與上游 Istio 社群安裝有多種不同。 請參閱 此鏈結,比較服務網格與 Istio。 依預設,如果您已標示專案 istio-injection=enabled. Red Hat OpenShift Service Mesh 會以不同方式處理此問題,並要求您接受將 Sidecar 自動注入至部署,因此您不需要標示專案。 這可避免注入 Sidecar (例如,在建置或部署 Pod 中)。

  2. 驗證 Pod 是否已啟動並執行。

    oc get pods
    

    輸出範例:

    NAME                              READY     STATUS    RESTARTS   AGE
    details-v1-789c5f58f4-9twtw       2/2       Running   0          4m12s
    productpage-v1-856c8cc5d8-xcx2q   2/2       Running   0          4m11s
    ratings-v1-5786768978-tr8z9       2/2       Running   0          4m12s
    reviews-v1-5874566865-mxfgm       2/2       Running   0          4m12s
    reviews-v2-86865fc7d9-mf6t4       2/2       Running   0          4m12s
    reviews-v3-8d4cbbbbf-rfjcz        2/2       Running   0          4m12s
    

    請注意,每一個 bookinfo Pod 中都有 2 個儲存器。 一個是 bookinfo 儲存器,另一個是 Envoy Proxy Sidecar。

您的 bookinfo 應用程式正在執行中,但您無法存取它,因為服務尚未配置為接收外部資料流量。 在下一節中,您將公開 productpage 服務以容許送入的資料流量。

使用 Istio Ingress 閘道及路徑公開應用程式

依預設,部署在服務網格上的元件不會在叢集外部公開。 可以建立「Ingress 閘道」資源,以容許透過 Istio Ingress 閘道對支援服務提出外部要求。

  1. 使用 Istio Ingress Gateway 來配置 bookinfo 預設路徑。
    oc create -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.2/samples/bookinfo/networking/bookinfo-gateway.yaml
    
  2. 取得 Istio Ingress Gateway 的 ROUTE
    oc get routes -n istio-system istio-ingressgateway
    
  3. 儲存您在前一個步驟中擷取的 HOST 位址,因為它將用於在指導教學的後續部分中存取 BookInfo 應用程式。 使用 HOST 位址建立稱為 $INGRESS_HOST 的環境變數。
    export INGRESS_HOST=<HOST>
    
    移至新標籤中的 http://$INGRESS_HOST/productpage,以造訪應用程式。 如果您一直按「重新整理」,則應該會以隨機順序看到頁面的不同版本 (v1-無星星,v2-黑色星星,v3-紅色星星)。 保持開啟該瀏覽器標籤,以供稍後使用

觀察服務遙測: 度量及追蹤

Istio 的追蹤及度量特性設計為針對所有服務的性能提供廣泛且精細的見解。 Istio 作為服務網格的角色使它成為觀察性資訊的理想資料來源,特別是在微服務環境中。 隨著要求通過多個服務,使用傳統除錯技術來識別效能瓶頸變得越來越困難。 分散式追蹤提供透過多個服務傳送之要求的整體視圖,可讓您立即識別延遲問題。 使用 Istio 時,依預設會提供分散式追蹤。 這將公開要求中每一個躍點的延遲、重試及失敗資訊。

將 Grafana 的度量值視覺化

Grafana 可讓您查詢、視覺化、警示及瞭解度量值,不論它們儲存在何處。

  1. Red Hat OpenShift on IBM Cloud Web 主控台中,

    1. 在左窗格的 網路下,按一下 路徑
    2. 從頂端列中選取專案: istio-system
    3. 按一下 grafana 旁邊的 URL (位置)
    4. 登入 Red Hat OpenShift on IBM Cloud,並容許所要求的許可權查看 Grafana 儀表板。
  2. 按一下左導覽畫面中的 儀表板 功能表,選取 管理 標籤,然後選取 istioIstio 服務儀表板

  3. 服務 下拉清單中選取 productpage.bookinfo.svc.cluster.local

  4. 移至 IBM Cloud Shell 標籤/視窗,並將資料流量傳送至您在最後一個區段中設定的 Ingress 主機位置,以產生應用程式的小型負載。

    for i in {1..20}; do sleep 0.5; curl -I $INGRESS_HOST/productpage; done
    

開啟每一個展開/收合,以查看更多儀表板。 在 服務 下拉清單中選擇不同的服務。 此 Grafana 儀表板提供每一個工作量的度量值。 同時探索提供的其他儀表板。

使用 Kiali 觀察您的服務網眼

Kiali 是一個開放程式碼專案,作為附加程式安裝在 Istio 之上,以視覺化您的服務網格。 Kiali 可讓您深入洞察微服務如何彼此互動,並提供諸如斷路器及服務要求率之類的特性。

  1. Red Hat OpenShift on IBM Cloud 網站主控台
    1. 在左窗格的 網路 下,然後按一下 路徑
    2. 從頂端列中選取 istio-system 作為您的專案
    3. 按一下 kiali 旁邊的 URL (位置),如果出現提示,按一下使用 OpenShift 登入
  2. 按一下左窗格上的 圖形,並從頂端列中選取 bookinfoistio-system 名稱空間,以查看 Istio 網眼中各種服務的視覺化 已版本化應用程式圖形
  3. 若要查看要求率,請按一下 顯示,然後選擇 資料流量率
  4. 在不同的索引標籤/視窗中,造訪 BookInfo 應用程式 URL 並多次刷新頁面以產生一些載入,或執行上一節中的載入腳本以產生載入。
  5. 現在,請檢查 Kiali 圖形,以查看每秒要求數。

Kiali 有許多視圖可協助您將服務視覺化。 按一下各種標籤以探索服務圖形,以及工作量、應用程式和服務的各種視圖。

執行資料流量管理

Istio 的資料流量遞送規則可讓您輕鬆控制服務之間的資料流量及 API 呼叫流程。 Istio 可簡化服務層次內容 (例如斷路器、逾時及重試) 的配置,並可讓您輕鬆設定重要作業 (例如 A/B 測試、canary 實施及具有百分比型資料流量分割的暫置實施)。 它也提供現成可用的失敗回復功能,可協助您的應用程式在相依服務或網路失敗時更健全。

Istio 的資料流量管理模型依賴於隨服務一起部署的 Envoy Proxy (Sidecar)。 您的服務傳送及接收的所有資料流量 (資料平面資料流量) 都透過 Envoy 進行代理,讓您可以輕鬆引導及控制網眼周圍的資料流量,而無需對服務進行任何變更。

試驗會將高階規則轉換為低階配置,並將此配置配送至 Envoy 實例。 試驗使用三種類型的配置資源來管理其服務網格內的資料流量: 虛擬服務目的地規則服務項目

使用 Istio 進行 A/B 測試

A/B 測試是一種針對兩個個別服務版本執行相同測試的方法,以判定哪一個執行較佳。 若要防止 Istio 在原始服務與現代化服務之間執行預設遞送行為,請定義下列規則:

  1. 執行下列指令,以建立 Bookinfo 服務的預設目的地規則。

    oc create -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.2/samples/bookinfo/networking/destination-rule-all.yaml
    

    DestinationRule 定義原則,可在發生遞送之後套用至服務預期的資料流量。 這些規則會指定負載平衡的配置、Sidecar 中的連線儲存區大小,以及離群值偵測設定,以從負載平衡儲存區偵測及收回不健全的主機。 VirtualService 規則中所參照的任何目的地 hostsubset 都必須定義在對應的 DestinationRule 中。

  2. VirtualService 定義一組資料流量遞送規則,以在主機定址時套用。 每一個遞送規則都會定義特定通訊協定資料流量的比對準則。 如果資料流量相符,則會傳送至登錄中所定義的具名目的地服務 (或其子集/版本)。 執行下列指令,以將所有檢閱資料流量傳送至 v1:

    oc create -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.2/samples/bookinfo/networking/virtual-service-all-v1.yaml
    

    VirtualService 定義了一個規則,擷取所有進入檢閱服務的 HTTP 流量,並將 100% 的流量路由到標籤為「版本:v1」的服務 Pod。 路徑目的地的子集或版本以參照必須在對應 DestinationRule 中宣告的具名服務子集來識別。

  3. 在瀏覽器標籤中檢視 bookinfo 應用程式。 您應該只取得 BookInfo 應用程式的 v1,亦即,沒有評等的星星。

  4. 若要針對新的服務版本啟用 Istio 服務網格以進行 A/B 測試,請修改原始 VirtualService 規則,只將 Firefox 資料流量傳送至 v2。 您可以將 user-agent 變更為機器上已安裝的任何其他瀏覽器:

    cat <<EOF | oc replace -f -
    apiVersion: networking.istio.io/v1alpha3
    kind: VirtualService
    metadata:
      name: reviews
    spec:
      hosts:
      - reviews
      http:
      - match:
        - headers:
            user-agent:
              regex: '.*Firefox.*'
        route:
        - destination:
            host: reviews
            subset: v2
      - route:
        - destination:
            host: reviews
            subset: v3
    EOF
    

    在 Istio VirtualService 規則中,每一個服務只能有一個規則,因此在定義多個 HTTPRoute 區塊時,它們在 yaml 中的定義順序很重要。 因此,會修改原始 VirtualService 規則,而不是建立新規則。 使用已修改的規則,來自 Firefox 瀏覽器的送入要求將移至 bookinfo 的 v2 版本 (黑星)。 所有其他要求都會落入下一個區塊,其會將所有資料流量遞送至 bookinfo 的 v3(Red Stars) 版本。

Canary 部署

在 Canary 部署中,較新版本的服務會漸進式地推出給使用者,以將較新版本所引進之任何錯誤的風險及影響降至最低。 若要開始以漸進方式將資料流量遞送至新版本的 bookinfo 服務,請修改原始 VirtualService 規則:

  1. 執行下列指令,以將 80% 的資料流量傳送至 v1,

    oc replace -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.2/samples/bookinfo/networking/virtual-service-reviews-80-20.yaml
    

    在修改的規則中,遞送的資料流量會在檢閱微服務的兩個不同子集之間分割。 以這種方式,現代化第 2 版檢閱的資料流量會以百分比為基礎進行控制,以限制任何意外錯誤的影響。 此規則可以在一段時間後進行修改,直到最終將所有資料流量導向至較新版本的服務。

  2. 在瀏覽器標籤中再次檢視 bookinfo 應用程式。 請確定您使用強迫重新整理 (在 Mac 上為指令 + Shift + R,在 Windows 上為 Ctrl + F5 ) 來移除任何瀏覽器快取。 您應該注意,bookinfo 應用程式應該在 V1 或 V2 之間根據您指定的加權進行交換。

  3. 若要將所有資料流量遞送至檢閱 v3,

    oc replace -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.2/samples/bookinfo/networking/virtual-service-reviews-v3.yaml
    

保護您的服務

Istio 可以保護微服務之間的通訊安全,而不需要變更應用程式碼。 安全是透過鑑別及加密叢集內的通訊路徑來提供。 這已成為一般安全與合規需求。 將通訊安全委派給 Istio (而不是在每一個微服務中實作 TLS),可確保您的應用程式將使用一致且可管理的安全原則進行部署。

  1. 配置mTLS,您需要修改先前的目的地規則才能使用 ISTIO_MUTUAL
    oc replace -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.2/samples/bookinfo/networking/destination-rule-all-mtls.yaml
    
  2. 將更多資料流量傳送至應用程式。 一切仍應如預期般繼續運作。
  3. 再次啟動 Kiali,並移至 圖形
  4. 從頂端 名稱空間 列中選取 bookinfo
  5. 在「顯示」之下,選取 安全。 您應該會在所有箭頭 (資料流量) 上看到 鎖定 圖示。
  6. 若要確認資料流量是否安全,請按一下從 productpagev1 的箭頭,您應該會在右窗格上看到 mTLS Enabled 與鎖定圖示。

為進入群集的流量啟用 SSL HTTPS )

在此區段中,您將使用 Red Hat OpenShift on IBM Cloud提供的預設憑證,建立通往具有 Edge 終止之 Ingress Gateway 的安全路徑。 使用邊緣路徑,Ingress Controller 會先終止 TLS 加密,然後再將資料流量轉遞至 istio-ingressgateway Pod。

  1. 啟動 Red Hat OpenShift on IBM Cloud 主控台
  2. 網路 下,然後在 路徑下,
  3. 從頂端列中選擇 istio-system 專案,然後按一下 建立路徑
    1. 名稱:istio-ingressgateway-secure
    2. 服務: istio-ingressgateway
    3. 目標埠 80->8080(TCP)
    4. 檢查 Secure Route
    5. TLS 終止: Edge
    6. 不安全的資料流量: None
  4. 按一下建立
  5. 訪問 istio-ingressgateway-secure 路由的 Location 部分下的新 HTTPS URL。 記得在 URL 結尾加入 /productpage

移除資源

您可以逐漸移除個別資源,或跳過這些步驟,直接刪除整個叢集。

刪除應用程式專案

  • 若要刪除 bookinfo 專案,請執行下列指令:
    oc delete project bookinfo
    

刪除ServiceMeshControlPlane從 CLI

  1. 執行此命令以檢索已安裝的名稱ServiceMeshControlPlane,
    oc get servicemeshcontrolplanes -n istio-system
    
  2. <NAME_OF_CUSTOM_RESOURCE> 取代為前一個指令中的名稱,並執行此指令以移除自訂資源。
    oc delete servicemeshcontrolplanes -n istio-system <NAME_OF_CUSTOM_RESOURCE>
    
    當您刪除與 ServiceMeshMemberRoll 資源相關聯的 ServiceMeshControlPlane 資源時,會自動刪除該資源。

移除運算子

  1. 導覽至 Web 主控台的 操作器已安裝的操作器 頁面。
  2. 在「操作器詳細資料」頁面右側,從 Red Hat OpenShift 服務網格 操作器的「動作」下拉功能表中選取 解除安裝操作器
  3. 在提示上按一下 解除安裝
  4. 針對清單中的每一個運算子,重複步驟 2 和 3。

刪除叢集

刪除叢集以一次刪除所有項目。 此動作是不可回復的。

  1. 導覽至 OpenShift 叢集 頁面。
  2. 按一下 <your-initials>-myopenshiftcluster 旁邊的動作功能表,然後選取 刪除
  3. 選取 刪除叢集所使用的持續性儲存空間,然後輸入要確認的叢集名稱。
  4. 點選刪除

相關內容