全部產品
Search
文件中心

Alibaba Cloud Service Mesh:部署網關Pod到指定的節點

更新時間:Jun 30, 2024

配置高效能和高可用的ASM網關,可以確保商務持續性並提升使用體驗。本文介紹如何配置ASM網關,將網關Pod部署到指定節點,從而提高ASM網關的高可用性並增強與業務Pod的隔離性。

前提條件

相關概念

概念

說明

汙點(Taint)

作用於節點上,使節點可以排斥一類特定的Pod。

容忍度(Toleration)

作用於Pod上,允許調度器將該Pod調度到帶有對應汙點的節點上。

說明

汙點和容忍度相互配合,可用於避免Pod被分配到不合適的節點上。每個節點都可以應用一個或多個汙點。

  • 若Pod不能容忍指定的汙點,將不會被節點接受,即Pod不能調度到具有匹配汙點的節點上。

  • 若Pod可以容忍指定的汙點,表示Pod可以(但不要求)被調度到具有匹配汙點的節點上。

節點親和性(nodeAffinity)

定義Pod調度時的軟需求或者偏好,且在這種偏好不被滿足時成功調度該Pod到其他節點。

步驟一:添加標籤至節點

  1. 執行以下命令,擷取叢集的節點名稱。

    kubectl get nodes
  2. 執行以下命令,將標籤添加到目標節點。

    # 命令格式。
    kubectl label nodes <node-name> <label-key>=<label-value>
    
    # 命令樣本。
    kubectl label nodes node1 mykey4pod=asmgateway

步驟二:添加汙點至節點

執行以下命令,為節點增加一個汙點。

kubectl taint nodes node1 mykey=myvalue:NoSchedule

該命令表示為節點node1增加一個汙點。其中,Key是mykey,Value是myvalue,Effect是NoSchedule,表示只有擁有和這個汙點相匹配的容忍度的Pod才能夠被分配到node1節點。

步驟三:為ASM網關設定節點親和性和容忍度

在ASM網關中配置nodeAffinity參數,使ASM網關的Pod分布到指定的節點上;配置tolerations參數與步驟二建立的汙點相匹配,使網關的Pod能夠被分配到指定的節點上。

  1. 登入ASM控制台,在左側導覽列,選擇服務網格 > 網格管理

  2. 網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇ASM網關 > 入口網關

  3. 入口網關頁面右側,單擊目標網關對應的查看YAML

  4. 編輯對話方塊的spec欄位下,增加如下內容,然後單擊確定

      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: mykey4pod
                operator: In
                values:
                - asmgateway
      tolerations:
      - key: "mykey"
        operator: "Equal"
        value: "myvalue"
        effect: "NoSchedule"
  5. 查看網關的Pod所在的節點是否符合預期。

    1. 登入Container Service管理主控台,在左側導覽列選擇叢集

    2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇工作負載 > 容器組

    3. 容器組頁面上方,選擇istio-system命名空間,查看網關Pod所在的節點是否符合預期。

      若網關Pod所在的節點為目標節點,表明為ASM網關設定節點親和性和容忍度成功。