日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用ASM Serverless網關提升高可用性和彈性

ASM Serverless網關是ASM推出的全新服務網格網關形態,更適合應對突發流量,降低計算成本,提升穩定性。相比運行于數據面ACK Kubernetes集群之上的ASM網關形態,ASM Serverless網關具有高穩定性、高彈性和低成本的優勢,以Serverless的形式單獨部署,并完全由ASM管理,具備獨立于ACK Kubernetes集群的高可用性。本文介紹如何使用ASM Serverless網關,以及相關的網關日志以及監控指標介紹。

前提條件

適用場景

ASM Serverless網關更適合應對突發流量,降低計算成本,提升穩定性。典型的場景包括:

  • 有明顯波峰波谷的在線業務:例如在線教育、電商等業務通常有明顯的波峰波谷,ASM Serverless網關可以更快速的應對突發流量,顯著減少固定資源池的維護,降低計算成本。

  • 多集群場景:例如有兩個ACK集群同時加入了某一個ASM實例,ASM Serverless網關并不部署在某個ACK Kubernetes集群中,可以提供獨立于Kubernetes集群的高可用性。

步驟一:部署ASM Serverless入口網關

目前僅支持使用YAML創建。與運行于數據面ACK Kubernetes集群之上的ASM網關形態相比,ASM Serverless網關增加了一個注解 asm.alibabacloud.com/managed-by-asm: 'true',并且無需填寫數據面ACK Kubernetes集群ID。如果需要采集監控指標,可以通過注解 asm.alibabacloud.com/export-metrics將該網關的監控指標導出到對應的目標數據面ACK Kubernetes集群。

  1. 登錄ASM控制臺,在左側導航欄,選擇服務網格 > 網格管理

  2. 網格管理頁面,單擊目標實例名稱,然后在左側導航欄,選擇ASM網關 > 入口網關

  3. 入口網關頁面,單擊使用YAML創建,輸入網關名稱,配置如下YAML,然后單擊創建

    apiVersion: istio.alibabacloud.com/v1beta1
    kind: IstioGateway
    metadata:
      annotations:
        asm.alibabacloud.com/managed-by-asm: 'true'
        asm.alibabacloud.com/export-metrics: 'ack-cluster-id'
      name: ingressgateway
      namespace: istio-system
    spec:
      gatewayType: ingress
      dnsPolicy: ClusterFirst
      externalTrafficPolicy: Local
      hostNetwork: false
      ports:
        - name: http
          port: 80
          protocol: TCP
          targetPort: 80
        - name: https
          port: 443
          protocol: TCP
          targetPort: 443
      replicaCount: 1
      resources:
        limits:
          cpu: '2'
          memory: 2G
        requests:
          cpu: 200m
          memory: 256Mi
      rollingMaxSurge: 100%
      rollingMaxUnavailable: 25%
      runAsRoot: true
      serviceType: LoadBalancer

    注意:當前Serverless網關支持LoadBalancer和ClusterIP類型的Service。如果選擇了ClusterIP,需要保證客戶端與網關Pod網絡互相打通,例如Terway網絡插件默認同一VPC下的Pod可以互相訪問。

步驟二:創建流量規則

  1. 創建HTTP域名。

    1. 登錄ASM控制臺,在左側導航欄,選擇服務網格 > 網格管理

    2. 網格管理頁面,單擊目標實例名稱,然后在左側導航欄,選擇ASM網關 > 入口網關

    3. 入口網關頁面,單擊目標網關,在網關導航欄,單擊域名/證書,然后在域名頁簽,單擊創建

    4. 新建域名頁面,配置域名*協議HTTP端口名稱http端口80,然后單擊創建

  2. 導入productapge服務。

    1. 在網關導航欄,單擊上游服務,然后單擊導入服務

    2. 導入服務頁簽,選擇default命名空間,選中productapge,單擊Dingtalk_20230302182310.png圖標,然后單擊確認

  3. 創建路由規則。

    1. 在網關導航欄,單擊路由管理,然后單擊創建

    2. 設置路由信息配置向導,配置路由類型http命名空間default路由名稱productapge,在匹配規則區域,匹配方式選擇前綴匹配內容/,然后單擊下一步

    3. 設置路由目的地配置向導,配置選擇上游服務productapge,然后單擊下一步

    4. 高級選項配置向導,單擊創建

步驟三:通過Serverless網關訪問productpage應用

在瀏覽器地址欄輸入{網關IP地址}/productpage,可以看到productpage的應用界面。關于如何獲取網關,請參見獲取入口網關地址

步驟四:配置Serverless網關的訪問日志

重要

配置網關訪問日志會導致網關重啟,請在業務低峰期操作。

  1. 登錄ASM控制臺,在左側導航欄,選擇服務網格 > 網格管理

  2. 網格管理頁面,單擊目標實例名稱,然后在左側導航欄,選擇ASM網關 > 入口網關

  3. 入口網關頁面,在目標網關右側,單擊查看YAML,在YAML輸入框中增加注解 asm.alibabacloud.com/aliyun-logs-project: k8s-log-****,配置日志服務Project。

    本示例將網關日志采集到ASM對應的LogProject。對應的YAML示例如下:

    展開查看ingressgateway.yaml

    apiVersion: istio.alibabacloud.com/v1beta1
    kind: IstioGateway
    metadata:
      annotations:
        asm.alibabacloud.com/managed-by-asm: 'true'
        asm.alibabacloud.com/aliyun-logs-project: mesh-log-c4e1bbed247634d0482000d94e947****
      name: ingressgateway
      namespace: istio-system
    spec:
     ....
  4. 單擊確定,更新Serverless網關。

步驟五:配置HTTPS訪問

  1. 執行以下命令,生成證書。

    openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -subj '/O=myexample Inc./CN=aliyun.com' -keyout aliyun.root.key -out aliyun.root.crt 
    openssl req -out aliyun.com.csr -newkey rsa:2048 -nodes -keyout aliyun.com.key -subj "/CN=aliyun.com/O=myexample organization"
    openssl x509 -req -days 365 -CA aliyun.root.crt -CAkey aliyun.root.key -set_serial 0 -in aliyun.com.csr -out aliyun.com.crt
  2. 創建證書。

    1. 登錄ASM控制臺,在左側導航欄,選擇服務網格 > 網格管理

    2. 網格管理頁面,單擊目標實例名稱,然后在左側導航欄,選擇ASM網關 > 證書管理

    3. 在證書管理頁面,單擊創建,然后在證書信息面板,配置相關信息,然后單擊確定。

      配置項

      說明

      名稱

      證書名稱,本示例為myexample-credential。

      公鑰證書

      步驟五.1生成的aliyun.com.crt內容。

      私鑰

      步驟五.1生成的aliyun.com.key內容。

  3. 創建HTTPS域名。

    1. 在左側導航欄,單擊入口網關,單擊目標網關,在網關導航欄,單擊域名/證書,然后在域名頁簽,單擊創建

    2. 新建域名頁面,配置域名*協議HTTPS端口名稱https端口443證書選擇myexample-credential,選中是否使用TLS保護連接,然后單擊創建

  4. 執行以下命令,通過HTTPS協議訪問Serverless網關。

    curl -k -H Host:aliyun.com --resolve aliyun.com:443:{替換成真實的入口網關IP地址}  https://aliyun.com/productpage -I

步驟六:查看Serverless網關日志

  1. 登錄日志服務控制臺

  2. Project列表區域,單擊目標日志名稱(步驟四.1配置的日志名稱),然后在左側導航欄,單擊Dingtalk_20231122151017.png圖標(日志存儲),在日志庫單擊mesh-ingress-log,在搜索框輸入productpage,然后單擊查詢/分析

    托管網關日志.png

FAQ

如何導出Serverless網關的監控指標?

  1. 已開啟ASM的指標生成和采集,且可以在可觀測管理中心 > 監控指標頁面看到指標大盤。具體操作,請參見將監控指標采集到可觀測監控Prometheus版

  2. 在Serverless網關的YAML中配置指標導出的annotations,格式為asm.alibabacloud.com/export-metrics: ${ack-cluster-id}

    該功能僅支持ASM實例版本為1.18.0.147或以上。關于如何升級版本,請參見升級ASM實例

    annotations配置后,會將網關的Service和Endpoint同步到指定的ACK集群,然后在Prometheus的抓取配置中添加對應Endpoint的采集配置即可。

  3. 在ARMS控制臺,添加Endpoint的采集配置。

    1. 登錄ARMS控制臺
    2. 在左側導航欄,單擊Prometheus 監控 > 實例列表,然后在頁面左上角選擇目標地域。

    3. 實例列表頁面,單擊Prometheus實例名稱,然后在左側導航欄,單擊設置

    4. 設置頁面的設置頁簽,單擊編輯Prometheus.yaml,添加如下配置,然后單擊保存

      展開查看YAML

      scrape_configs:
      - job_name: istio-system/managed-envoy
        honor_timestamps: true
        honor_labels: false
        scrape_interval: 30s
        scheme: http
        metrics_path: /stats/prometheus
        relabel_configs:
        - regex: 'true'
          action: keep
          source_labels:
          - __meta_kubernetes_service_labelpresent_asm_sync_target
          replacement: $1
          separator: ;
        - regex: http-envoy-prom
          action: keep
          source_labels:
          - __meta_kubernetes_endpoint_port_name
          replacement: $1
          separator: ;
        - regex: (.*)
          action: replace
          source_labels:
          - __meta_kubernetes_namespace
          replacement: $1
          separator: ;
          target_label: namespace
        metric_relabel_configs:
        - regex: envoy_.*
          action: drop
          source_labels:
          - __name__
          replacement: $1
          separator: ;
        kubernetes_sd_configs:
        - role: endpoints
          namespaces: {}
          follow_redirects: true
        scrape_timeout: 10s

Serverless網關無法訪問后端應用該如何處理?

  1. 確保數據面集群的安全組沒有攔截來自Serverless網關的流量。

    1. 查看ASM的vSwitch網段。

      1. 登錄ASM控制臺,在左側導航欄,選擇服務網格 > 網格管理

      2. 網格管理頁面,單擊目標實例名稱,然后在左側導航欄,選擇網格實例 > 基本信息

      3. 基本信息頁面,單擊交換機右側的鏈接,然后在交換機詳情頁面,查看對應的網段。

    2. 查看數據面集群的安全組信息。

      1. 登錄容器服務管理控制臺,在左側導航欄選擇集群

      2. 集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇集群信息

      3. 集群信息頁面,單擊集群資源頁簽,然后單擊安全組右側的鏈接。

      4. 在安全組詳情頁面,查看安全組的入方向規則,確保該規則包含ASM的vSwitch網段,以及后端服務的Pod端口。

  2. 如果返回404、503等錯誤,請檢查流量規則配置及后端服務是否正常運行。