服务亲和
![](https://support.huaweicloud.com/bestpractice-asm/public_sys-resources/caution_3.0-zh-cn.png)
设置成节点亲和在某些场景下可能导致无法访问ELB,具体情况请参考 集群内部无法使用ELB地址访问负载处理。
- 进入CCE Console页面,单击“集群名称--服务--服务”,单击要操作服务更多列的“编辑YAML”。
- 通过YAML配置如下参数:
spec: type: LoadBalancer externalTrafficPolicy: Local allocateLoadBalancerNodePorts: true
也可在步骤1服务页面单击更多操作列的“更新”在更新服务页面进行设置。
参数说明:
参数
说明
服务亲和(externalTrafficPolicy)
有如下两个取值:
集群级别(cluster):请求会在集群内转发,从任意节点IP+服务端口都能访问到后端工作负载。服务访问会因路由跳转导致一定性能损失,且无法获取到客户端源IP。
节点级别(local):请求只会转发给本节点上的Pod,如果节点没有Pod的话请求会挂起。
当使用CCE Turbo集群 + 独享型ELB实例时,支持ELB直通Pod,使部署在容器中的业务时延降低、性能无损耗;此时取值必须为集群级别(cluster)。
其他场景从ELB过来的流量会先访问到节点,然后通过Service转发到Pod,建议值为节点级别(local)。流量最终转发给本节点上的Pod,而不会负载均衡到其他节点上的Pod,避免出现因跨节点网络故障而导致请求异常。