配置高性能和高可用的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所在的节点是否符合预期。
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在容器组页面上方,选择istio-system命名空间,查看网关Pod所在的节点是否符合预期。
若网关Pod所在的节点为目标节点,表明为ASM网关设置节点亲和性和容忍度成功。