更新时间:2025-06-26 GMT+08:00

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,即Serivce中配置的访问端口。
  • 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,即Serivce中配置的访问端口。
            }
        }
    }
  • 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的请求地址,不同服务不同区域的终端节点不同,您可以从地区和终端节点查询服务的终端节点。

$namespace-name

创建的PoolBinding对象所属的命名空间,需与关联的Deployment在同一命名空间下。

$name

PoolBinding对象名称。