
# 为负载均衡类型的Service配置获取客户端IP
使用共享型ELB创建负载均衡类型的服务时，您可以通过配置annotation配置ELB的监听器获取客户端IP的能力。
![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
- 使用独享型ELB时默认开启获取客户端IP，无需配置。
- 配置获取客户端IP后，如果您在YAML中删除对应的annotation，ELB侧的配置将会保留。
 
#### 前提条件
- 已创建Kubernetes集群，且集群版本满足以下要求：
  - v1.23集群：v1.23.17-r0及以上版本
  
  - v1.25集群：v1.25.12-r0及以上版本
  
  - v1.27集群：v1.27.9-r0及以上版本
  
  - v1.28集群：v1.28.7-r0及以上版本
  
  - v1.29集群：v1.29.3-r0及以上版本
  
  - 其他更高版本的集群
   
- 您需要使用kubectl连接到集群，详情请参见[通过kubectl连接集群](https://support.huaweicloud.com/usermanual-cce/cce_10_0107.html)。
 
#### 约束与限制
在CCE Standard集群中，当Service服务亲和类型配置成节点级别（即externalTrafficPolicy配置为Local）时该配置生效，配置集群级别（即externalTrafficPolicy配置为Cluster）时不生效。
在CCE Turbo集群中，Service服务亲和类型不支持配置成节点级别（即externalTrafficPolicy不支持配置为Local），该配置无法生效。
#### 通过kubectl命令行创建
以关联已有ELB为例，YAML文件配置如下：
```
apiVersion: v1 
kind: Service 
metadata: 
  name: nginx
  annotations:
    kubernetes.io/elb.id: <your_elb_id>              # ELB ID，替换为实际值
    kubernetes.io/elb.class: union                   # 负载均衡器类型
    kubernetes.io/elb.transparent-client-ip: 'true'  # 开启获取客户端源IP
spec:
  selector: 
     app: nginx
  externalTrafficPolicy: Local
  ports: 
  - name: service0 
    port: 80
    protocol: TCP 
    targetPort: 80
  type: LoadBalancer
```
表1关键参数说明 
| 参数                                      | 参数类型   | 描述                                                                                                                                                                                                                                                           |
|:---|:---|:---|
| kubernetes.io/elb.transparent-client-ip | String | 仅TCP/UDP协议的服务支持配置。 - true：表示开启客户端源IP能力。  - false：表示关闭客户端源IP能力。   |
   
