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

PoolBinding后端关联Deployment

PoolBinding支持配置一个后端对象,后端对象可以为Deployment。创建PoolBinding对象后,会自动将Deployment后端关联的Pod的Endpoint刷新至关联的后端服务器组(Pool)后端。

前提条件

  • 在弹性负载均衡(ELB)已创建后端服务器组。
  • 在云容器实例 CCI 2.0 console页完成工作负载(Deployment)创建。

方法一:通过ccictl命令管理PoolBinding对象

  • poolbinding.yaml示例
    apiVersion: loadbalancer.networking.openvessel.io/v1
    kind: PoolBinding
    metadata:
      name: test-c1        //创建的PoolBinding对象名称。
      namespace: test-ns   //创建的PoolBinding对象所属的命名空间,需与关联的Deployment在同一命名空间下。
    spec:
      poolRef:
        id: e08*****-****-****-****-********29c1  //关联的后端服务器组ID,即创建的后端服务器组ID。
      targetRef:
        kind: Deployment   //关联的后端对象类型,示例为Deployment。
        group: cci/v2      //关联的后端对象group。
        name: test-name    //关联的后端对象名称,即创建的Deployment名称。
        port: 80           //关联的后端对象目标端口号,若后端对象为Deployment,即开放的容器端口。
  • ccictl常用命令
    // 创建PoolBinding
    ccictl create -f poolbinding.yaml
    // 查询namespace下所有的PoolBinding的详细信息。
    ccictl get plb -n $namespace -oyaml
    // 查询namespace下单个PoolBinding的详细信息。
    ccictl get plb -n $namespace $name -oyaml
    // 删除PoolBinding。
    ccictl delete plb -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对象所属的命名空间,需与关联的Deployment在同一命名空间下。
        },
        "spec": {
            "poolRef": {
                "id": "e08*****-****-****-****-********29c1"  //关联的后端服务器组ID,即创建的后端服务器组ID。
            },
            "targetRef": {
                "kind": "Deployment",    //关联的后端对象类型,示例为Deployment。
                "group": "cci/v2",       //关联的后端对象group。
                "name": "test-name",     //关联的后端对象名称,即创建的Deployment名称。
                "port": 80               //关联的后端对象目标端口号,若后端对象为Deployment,即开放的容器端口。
            }
        }
    }
  • 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对象名称。