如何在 OpenShift 4.x 上安裝 Istio 服務網格


您可以通過以下鏈接下載 PDF 格式的本文以支持我們。

下載 PDF 格式的指南



服務網格提供了一種統一的方式來連接、保護和監控 OpenShift / Kubernetes 容器環境中的微服務應用程序。 網格可以描述為一個微服務網絡,它將應用程序組合在分佈式微服務架構中。 本教程將指導您完成在 OpenShift 4.x 集群上安裝 Istio Service Mesh 的步驟。

紅帽 OpenShift 服務網格基於開源峽部項目。 它使創建部署服務網絡變得容易,該網絡提供發現、負載平衡、服務到服務身份驗證、故障恢復、指標和監視。

Istio 服務網格的特點

  • 交通管理– 控制服務之間的流程和API調用流程,使調用更可靠,使網絡在不利條件下更健壯。
  • 服務身份和安全– 為網狀網絡中的服務提供可驗證的身份,並保護服務流量不流經具有不同可信度的網絡。
  • 政策執行– 將組織策略應用於服務之間的交互,以確保訪問策略得到實施並且資源在消費者之間公平分配。 策略更改是通過配置網格進行的,而不是通過應用程序代碼更改。
  • 遙測– 了解服務之間的依賴關係以及服務之間流量的性質和流向,以便快速發現問題

Istio 服務網格的組件

Istio 服務網格分為控制平面和數據平面。

控制平面組件:

  • 飛行員– 在運行時配置 Envoy Sidecar 代理。
  • 混合器– 實施訪問控制和使用政策。 它還負責從 Envoy 代理和其他服務收集遙測數據。
  • 堡壘– 對於證書管理 – 發行和輪換。
  • 加里– 這將獲取服務網格配置,然後驗證、處理和分發配置。

日期平面:

約會飛機由一組智能代理(信使) 部署為邊車。 這些代理調解和控制微服務之間的所有網絡通信。 他們還收集並報告所有網狀網絡流量的遙測數據。

Envoy 的內置功能包括:

  • 動態服務發現
  • 負載均衡
  • TLS 終止
  • HTTP/2 和 gRPC 代理
  • 斷路器
  • 健康檢查
  • 分階段上線,按百分比分配流量
  • 故障注入
  • 豐富的指標

Red Hat OpenShift Service Mesh 還提供了更複雜的運行功能,包括:

  • A/B測試
  • 金絲雀發布
  • 速度極限
  • 訪問控制
  • 端到端認證

在 OpenShift 4.x 上安裝 Istio 服務網格

現在,按照接下來的幾個步驟安裝和配置基於 Istio 的 Red Hat OpenShift Service Mesh。 的組織運營商將用於管理 Istio 控制平面的安裝。

第一步:安裝 Elasticsearch Operator

彈性搜索Operator 允許您配置和管理 Elasticsearch 集群以使用 Jaeger 進行跟踪和記錄。

登錄到 OpenShift Container Platform Web 控制台並導航到運營商>運營商中心> 搜索彈性搜索 操作員

點擊 ”安裝“。

選擇集群上的所有命名空間(默認)用於安裝模式和自動批准策略。

單擊訂閱開始安裝。

第二步:安裝 Jaeger Operator

積家允許您執行跟踪以監控複雜分佈式系統中的事務並排除故障。

導航運營商>運營商中心> 搜索積家操作員

點擊 ”繼續”, 然後選擇下面的其他設置進行訂閱。

第 3 步:安裝 Kiali Operator

凱利允許您在單個控制台中查看配置、監控流量以及查看和分析跟踪。 要安裝它,請搜索“Kiali 運算符運營商中心.

選擇安裝方法、更新渠道和批准策略。

現在應該安裝所有三個運算符。

第 4 步:安裝 Red Hat OpenShift Service Mesh Operator

安裝 Jaeger、Kiali 和 Elasticsearch Operator 後,請繼續安裝 Red Hat 提供的 Istio Service Mesh Operator。

導航運營商>運營商中心>紅帽 OpenShift 服務網格

選擇集群上的所有命名空間(默認)在 openshift-operators 項目中安裝 Service Mesh Operator。

請點擊安裝穩定的使用更新頻道自動的審批策略。

經營者應 openshift-operators 項目。

第五步:配置服務網格控制平面

現在我們可以部署服務網格控制平面,它定義了控制平面安裝的配置。

創建一個新項目:>項目>創建項目

命名項目組織體系

創建的項目會自動切換到 OpenShift 中的新項目。 導航運營商>安裝運營商>峽部 服務網格控制平面

點擊創建服務網格控制平面

默認的 ServiceMeshControlPlane 模板以 YAML 格式提供。 修改它們以適合您的用例。 你可以參考定制指南了解更多詳細信息。

我自定義瞭如下圖所示的配置。

筆記:請不要復制和粘貼此配置 - 它允許在受污染的基本節點上運行 Istio 服務。 它可能不適合你!

                      
                        apiVersion: maistra.io/v1
kind: ServiceMeshControlPlane
metadata:
  name: full-install
  namespace: istio-system
spec:
  istio:
    global:
      proxy:
        accessLogFile: "/dev/stdout"
      mtls:
        enabled: false
      disablePolicyChecks: true
      policyCheckFailOpen: false
      outboundTrafficPolicy:
          mode: "REGISTRY_ONLY"
    gateways:
      istio-ingressgateway:
        autoscaleEnabled: true
        ior_enabled: true
      istio-egressgateway:
        autoscaleEnabled: true
        nodeSelector:
          node-role.kubernetes.io/infra: ""
        tolerations:
          - key: infra
            value: reserved
            effect: NoSchedule
          - key: infra
            value: reserved
            effect: NoExecute
    mixer:
      enabled: true
      nodeSelector:
        node-role.kubernetes.io/infra: ""
      tolerations:
        - key: infra
          value: reserved
          effect: NoSchedule
        - key: infra
          value: reserved
          effect: NoExecute
    kiali:
      enabled: true
      dashboard:
        viewOnlyMode: false
      ingress:
        enabled: true
      nodeSelector:
        node-role.kubernetes.io/infra: ""
      tolerations:
        - key: infra
          value: reserved
          effect: NoSchedule
        - key: infra
          value: reserved
          effect: NoExecute
    grafana:
      enabled: true
      nodeSelector:
        node-role.kubernetes.io/infra: ""
      tolerations:
        - key: infra
          value: reserved
          effect: NoSchedule
        - key: infra
          value: reserved
          effect: NoExecute
    tracing:
      enabled: true
      jaeger:
        template: all-in-one
                      
                    

點擊 ”創造“並且控制面板應該開始安裝。

您可以從 CLI 檢查控制平面安裝的狀態

                      
                        $ oc get smcp -n istio-system
                      
                    

你可以在創建 Pod 時查看它的進度。

                      
                        $ oc get pods -n istio-system -w
                      
                    

第 6 步:配置服務網格成員卷

ServiceMeshMemberRoll 列出屬於控制平面的項目。 您需要創建一個名為 ServiceMeshMemberRoll 的資源默認在 istio 系統項目中。

切換到 istio-system 項目:首頁> 項目> istio-system

導航Carrier> 安裝的Carrier> Red Hat OpenShift Service Mesh> Istio Service Mesh Member Volume

向下ServiceMeshMemberRolls單擊創建 ServiceMeshMemberRoll。

添加你想要成為 Istio 服務網格一部分的項目,然後點擊 Create 通過 CLI,ServiceMeshMemberRoll 資源可以在創建後進行更新。

                      
                        $ oc edit smmr -n istio-system
                      
                    

第 7 步:使用自動 Sidecar 注入部署應用程序

要將應用程序部署到服務網格,您必須指定 sidecar.istio.io/inject 票據的價值 "true" .

請參見下面的示例。

                      apiVersion: apps/v1
kind: Deployment
metadata:
  name: sleep
spec:
  replicas: 1
  template:
    metadata:
      annotations:
        
                      
                        sidecar.istio.io/inject: "true"
                      
                      
      labels:
        app: sleep
    spec:
      containers:
      - name: sleep
        image: tutum/curl
        command: ["/bin/sleep","infinity"]
        imagePullPolicy: IfNotPresent
                    

對於作為項目成員添加到控制平面的現有應用程序,您可以通過添加或修改註釋來更新部署中的 pod 模板:

                      
                        $ oc patch deployment/
                        
            
            
            
            
            
            
            
            
             
             
             
             
             
             
             
             
                           -p '{"spec":{"template":{"metadata":{"annotations":{"kubectl.kubernetes.io/restartedAt": "'`date -Iseconds`'"}}}}}'
                        
            
            
            
            
            
            
            
            
                      
                    

你可以閱讀部署 Bookinfo場景。

有關 OpenShift 的更多指南。

在 OpenShift 4.x / OKD 4.x 上配置 Chrony NTP 服務

在 Kubernetes / OpenShift 上為 Rook 運行 Ceph 工具箱

將 Harbor Image Registry Pull Secret 添加到 Kubernetes / OpenShift

使用 HTPasswd 身份提供者管理 OpenShift / OKD 用戶

如何使用oc命令顯示OpenShift節點的日誌

如何在 OpenShift 節點上打開 Shell 提示符


您可以通過以下鏈接下載 PDF 格式的本文以支持我們。

下載 PDF 格式的指南



相關文章