
# PoolBinding后端关联Service
PoolBinding支持配置一个后端对象，后端对象可以为Service。创建PoolBinding对象后，会自动将Service后端关联的Pod的Endpoint刷新至关联的后端服务器组（Pool）后端。
#### 约束与限制
不支持PooBinding关联的后端服务器组为Service自动生成的后端服务器组。
#### 前提条件
- 在弹性负载均衡（ELB）已创建后端服务器组。
- 在云容器实例 CCI 2.0 console页完成工作负载（Deployment）创建。
- 在云容器实例 CCI 2.0 console页完成服务（Service）创建。
 
#### 方法一：通过ccictl命令管理PoolBinding对象
- poolbinding.yaml示例
  ```
  apiVersion: loadbalancer.networking.openvessel.io/v1
  kind: PoolBinding
  metadata:
    name: test-c1        #创建的PoolBinding对象名称。
    namespace: test-ns   #创建的PoolBinding对象所属的命名空间，需与关联的Service在同一命名空间下。
  spec:
    poolRef:
      id: e08*****-****-****-****-********29c1  #关联的后端服务器组ID，即创建的后端服务器组ID。
    targetRef:
      kind: Service     #关联的后端对象类型，示例为Service。
      group: cci/v2     #关联的后端对象group。
      name: test-name   #关联的后端对象名称，即创建的Service名称。
      port: 123         #关联的后端对象目标端口号，若后端对象为Service，即Service中配置的访问端口。
  ```
  
- ccictl常用命令
  ```
  # 创建PoolBinding
  ccictl create -f poolbinding.yaml
  # 查询namespace下所有的PoolBinding的详细信息。
  ccictl get poolbindings -n $namespace -oyaml
  # 查询namespace下单个PoolBinding的详细信息。
  ccictl get poolbindings -n $namespace $name -oyaml
  # 删除PoolBinding。
  ccictl delete poolbindings -n $namespace $name
  ```
  
表1主要参数说明 
| 参数              | 参数说明                                             |
|:---|:---|
| $namespace-name | 创建的PoolBinding对象所属的命名空间，需与关联的Deployment在同一命名空间下。 |
| $name           | PoolBinding对象名称。                                 |
   
#### 方法二：通过curl命令管理PoolBinding对象
- poolbinding.json示例
  ```
  {
      "apiVersion": "loadbalancer.networking.openvessel.io/v1",
      "kind": "PoolBinding",
      "metadata": {
          "name": "test-c1",       #创建的PoolBinding对象名称。
          "namespace": "test-ns"   #创建的PoolBinding对象所属的命名空间，需与关联的Service在同一命名空间下。
      },
      "spec": {
          "poolRef": {
              "id": "e08*****-****-****-****-********29c1"  //关联的后端服务器组ID，即创建的后端服务器组ID。
          },
          "targetRef": {
              "kind": "Service",    #关联的后端对象类型，示例为Service。
              "group": "cci/v2",    #关联的后端对象group。
              "name": "test-name",  #关联的后端对象名称，即创建的Service名称。
              "port": 123           #关联的后端对象目标端口号，若后端对象为Service，即Service中配置的访问端口。
          }
      }
  }
  ```
  
- curl常用命令
  ```
  # 创建PoolBinding。
  curl -k -H "Content-Type: application/json" -H "X-Auth-Token: $token" "https://$endpoint/apis/loadbalancer.networking.openvessel.io/v1/namespaces/$namespace-name/poolbindings" -X POST -d@poolbinding.json
  # 查询namespace下所有的PoolBinding的详细信息。
  curl -k -H "Content-Type: application/json" -H "X-Auth-Token: $token" "https://$endpoint/apis/loadbalancer.networking.openvessel.io/v1/namespaces/$namespace-name/poolbindings"
  # 查询namespace下单个PoolBinding的详细信息。
  curl -k -H "Content-Type: application/json" -H "X-Auth-Token: $token" "https://$endpoint/apis/loadbalancer.networking.openvessel.io/v1/namespaces/$namespace-name/poolbindings/$name"
  # 删除PoolBinding。
  curl -k -H "Content-Type: application/json" -H "X-Auth-Token: $token" "https://$endpoint/apis/loadbalancer.networking.openvessel.io/v1/namespaces/$namespace-name/poolbindings/$name" -X DELETE
  ```
  
 
表2主要参数说明 
| 参数              | 参数说明                                                                                                                                                                        |
|:---|:---|
| $token          | 通过Token认证获取请求。                                                                                                                                                              |
| $endpoint       | CCI 2.0的endpoint。 终端节点（Endpoint）即调用API的**请求地址** ，不同服务不同区域的终端节点不同，您可以从[地区和终端节点](https://developer.huaweicloud.com/endpoint)查询服务的终端节点。 |
| $namespace-name | 创建的PoolBinding对象所属的命名空间，需与关联的Deployment在同一命名空间下。                                                                                                                            |
| $name           | PoolBinding对象名称。                                                                                                                                                            |
   
