配置高效能和高可用的ASM網關,可以確保商務持續性並提升使用體驗。本文介紹如何配置ASM網關,將網關Pod部署到指定節點,從而提高ASM網關的高可用性並增強與業務Pod的隔離性。
前提條件
相關概念
概念 | 說明 |
汙點(Taint) | 作用於節點上,使節點可以排斥一類特定的Pod。 |
容忍度(Toleration) | 作用於Pod上,允許調度器將該Pod調度到帶有對應汙點的節點上。 說明 汙點和容忍度相互配合,可用於避免Pod被分配到不合適的節點上。每個節點都可以應用一個或多個汙點。
|
節點親和性(nodeAffinity) | 定義Pod調度時的軟需求或者偏好,且在這種偏好不被滿足時成功調度該Pod到其他節點。 |
步驟一:添加標籤至節點
執行以下命令,擷取叢集的節點名稱。
kubectl get nodes執行以下命令,將標籤添加到目標節點。
# 命令格式。 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能夠被分配到指定的節點上。
登入ASM控制台,在左側導覽列,選擇。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇。
在入口網關頁面右側,單擊目標網關對應的查看YAML。
在編輯對話方塊的
spec欄位下,增加如下內容,然後單擊確定。affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: mykey4pod operator: In values: - asmgateway tolerations: - key: "mykey" operator: "Equal" value: "myvalue" effect: "NoSchedule"查看網關的Pod所在的節點是否符合預期。
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
在容器組頁面上方,選擇istio-system命名空間,查看網關Pod所在的節點是否符合預期。
若網關Pod所在的節點為目標節點,表明為ASM網關設定節點親和性和容忍度成功。