Help Center/ Cloud Container Engine/ API Reference/ APIs/ Cluster Management/ Binding/Unbinding Public API Server Address
Updated on 2025-08-26 GMT+08:00

Binding/Unbinding Public API Server Address

Function

This API is used to bind or unbind the public API server address of the cluster by cluster ID.

The URL for cluster management is in the format of https://Endpoint/uri. In the URL, uri indicates the resource path, that is, the path for API access.

Calling Method

For details, see Calling APIs.

URI

PUT /api/v3/projects/{project_id}/clusters/{cluster_id}/mastereip

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Details:

Project ID. For details about how to obtain the value, see How to Obtain Parameters in the API URI.

Constraints:

None

Options:

Project IDs of the account

Default value:

N/A

cluster_id

Yes

String

Details:

Cluster ID. For details about how to obtain the value, see How to Obtain Parameters in the API URI.

Constraints:

None

Options:

Cluster IDs

Default value:

N/A

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

Content-Type

Yes

String

Details:

The request body type or format

Constraints:

The GET method is not verified.

Options:

  • application/json

  • application/json;charset=utf-8

  • application/x-pem-file

  • multipart/form-data (used when the FormData parameter is present)

Default value:

N/A

X-Auth-Token

Yes

String

Details:

Requests for calling an API can be authenticated using either a token or AK/SK. If token-based authentication is used, this parameter is mandatory and must be set to a user token. For details, see Obtaining a User Token.

Constraints:

None

Options:

N/A

Default value:

N/A

Table 3 Request body parameters

Parameter

Mandatory

Type

Description

spec

Yes

MasterEIPRequestSpec object

Definition

Request parameters for binding or unbinding the public API server address of a cluster

Constraints

N/A

Table 4 MasterEIPRequestSpec

Parameter

Mandatory

Type

Description

action

Yes

String

Definition

Binding or unbinding action

Constraints

N/A

Range

  • bind: specifies the binding action.

  • unbind: specifies the unbinding action.

Default Value

N/A

spec

No

spec object

Definition

Configuration attributes of the EIP to be bound

Constraints

N/A

Range

N/A

Default Value

N/A

bandwidth

No

String

Definition

Bandwidth (This field has expired and is not recommended.)

Constraints

N/A

Range

N/A

Default Value

N/A

elasticIp

No

String

Definition

EIP (This field has expired and is not recommended.)

Constraints

N/A

Range

N/A

Default Value

N/A

Table 5 spec

Parameter

Mandatory

Type

Description

id

No

String

Definition

EIP ID. This parameter is mandatory for binding an EIP and is invalid for unbinding an EIP.

NOTE:
To obtain the ID, log in to the management console, choose Service List > Networking > Elastic IP, click the EIP name to access the details page, and copy the ID on the Summary tab.

Constraints

N/A

Range

N/A

Default Value

N/A

Response Parameters

Status code: 200

Table 6 Response body parameters

Parameter

Type

Description

metadata

Metadata object

Definition

Basic information. Metadata is a collection of attributes.

Constraints

N/A

spec

MasterEIPResponseSpec object

Definition

Configuration about the public API server address bound to a cluster

Constraints

N/A

status

status object

Definition

Status

Constraints

N/A

Table 7 Metadata

Parameter

Type

Description

uid

String

Definition

Unique ID

Constraints

N/A

Range

N/A

Default Value

N/A

name

String

Definition

Resource name

Constraints

N/A

Range

N/A

Default Value

N/A

labels

Map<String,String>

Definition

Resource labels in key-value pairs. This is a reserved field. Inputting values will not work.

Constraints

N/A

Range

N/A

Default Value

N/A

annotations

Map<String,String>

Definition

Resource annotations in the format of key-value pairs

Constraints

N/A

Range

N/A

Default Value

N/A

updateTimestamp

String

Definition

Update time

Constraints

N/A

Range

N/A

Default Value

N/A

creationTimestamp

String

Definition

Creation time

Constraints

N/A

Range

N/A

Default Value

N/A

Table 8 MasterEIPResponseSpec

Parameter

Type

Description

action

String

Definition

Binding action

Constraints

N/A

Range

N/A

Default Value

N/A

spec

spec object

Definition

Configuration attributes of the EIP to be bound

Constraints

N/A

elasticIp

String

Definition

EIP

Constraints

N/A

Range

N/A

Default Value

N/A

Table 9 spec

Parameter

Type

Description

id

String

Definition

EIP ID

Constraints

N/A

Range

N/A

Default Value

N/A

eip

EipSpec object

Definition

EIP details

Constraints

N/A

IsDynamic

Boolean

Definition

Dynamic provisioning or not

Constraints

N/A

Range

N/A

Default Value

N/A

Table 10 EipSpec

Parameter

Type

Description

bandwidth

bandwidth object

Definition

Bandwidth information

Constraints

N/A

Table 11 bandwidth

Parameter

Type

Description

size

Integer

Definition

Bandwidth size

Constraints

N/A

Range

N/A

Default Value

N/A

sharetype

String

Definition

Bandwidth type

Constraints

N/A

Range

  • PER: dedicated bandwidth

  • WHOLE: shared bandwidth

Default Value

N/A

Table 12 status

Parameter

Type

Description

privateEndpoint

String

Definition

Private IP address for accessing a cluster (VIP in the case of an HA cluster)

Constraints

N/A

Range

N/A

Default Value

N/A

publicEndpoint

String

Definition

Public IP address for accessing a cluster

Constraints

N/A

Range

N/A

Default Value

N/A

Example Requests

Bind the public API server address to a cluster.

{
  "spec" : {
    "action" : "bind",
    "spec" : {
      "id" : "a757a69e-f920-455a-b1ba-d7a22db0fd50"
    }
  }
}

Example Responses

Status code: 200

This indicates that the public API server address of the cluster is successfully bound. No response body is returned if the unbinding is successful.

{
  "metadata" : { },
  "spec" : {
    "action" : "bind",
    "spec" : {
      "id" : "a757a69e-f920-455a-b1ba-d7a22db0fd50",
      "eip" : {
        "bandwidth" : {
          "size" : 5,
          "sharetype" : "PER"
        }
      },
      "IsDynamic" : false
    },
    "elasticIp" : "8.8.8.8"
  },
  "status" : {
    "privateEndpoint" : "https://192.168.3.238:5443",
    "publicEndpoint" : "https://8.8.8.8:5443"
  }
}

SDK Sample Code

The SDK sample code is as follows.

Bind the public API server address to a cluster.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.cce.v3.region.CceRegion;
import com.huaweicloud.sdk.cce.v3.*;
import com.huaweicloud.sdk.cce.v3.model.*;


public class UpdateClusterEipSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");
        String projectId = "{project_id}";

        ICredential auth = new BasicCredentials()
                .withProjectId(projectId)
                .withAk(ak)
                .withSk(sk);

        CceClient client = CceClient.newBuilder()
                .withCredential(auth)
                .withRegion(CceRegion.valueOf("<YOUR REGION>"))
                .build();
        UpdateClusterEipRequest request = new UpdateClusterEipRequest();
        request.withClusterId("{cluster_id}");
        MasterEIPRequest body = new MasterEIPRequest();
        MasterEIPRequestSpecSpec specSpec = new MasterEIPRequestSpecSpec();
        specSpec.withId("a757a69e-f920-455a-b1ba-d7a22db0fd50");
        MasterEIPRequestSpec specbody = new MasterEIPRequestSpec();
        specbody.withAction(MasterEIPRequestSpec.ActionEnum.fromValue("bind"))
            .withSpec(specSpec);
        body.withSpec(specbody);
        request.withBody(body);
        try {
            UpdateClusterEipResponse response = client.updateClusterEip(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}

Bind the public API server address to a cluster.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkcce.v3.region.cce_region import CceRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkcce.v3 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]
    projectId = "{project_id}"

    credentials = BasicCredentials(ak, sk, projectId)

    client = CceClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(CceRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = UpdateClusterEipRequest()
        request.cluster_id = "{cluster_id}"
        specSpec = MasterEIPRequestSpecSpec(
            id="a757a69e-f920-455a-b1ba-d7a22db0fd50"
        )
        specbody = MasterEIPRequestSpec(
            action="bind",
            spec=specSpec
        )
        request.body = MasterEIPRequest(
            spec=specbody
        )
        response = client.update_cluster_eip(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)

Bind the public API server address to a cluster.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    cce "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")
    projectId := "{project_id}"

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        WithProjectId(projectId).
        Build()

    client := cce.NewCceClient(
        cce.CceClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.UpdateClusterEipRequest{}
	request.ClusterId = "{cluster_id}"
	idSpec:= "a757a69e-f920-455a-b1ba-d7a22db0fd50"
	specSpec := &model.MasterEipRequestSpecSpec{
		Id: &idSpec,
	}
	actionSpec:= model.GetMasterEipRequestSpecActionEnum().BIND
	specbody := &model.MasterEipRequestSpec{
		Action: &actionSpec,
		Spec: specSpec,
	}
	request.Body = &model.MasterEipRequest{
		Spec: specbody,
	}
	response, err := client.UpdateClusterEip(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

For SDK sample code of more programming languages, see the Sample Code tab in API Explorer. SDK sample code can be automatically generated.

Status Codes

Status Code

Description

200

This indicates that the public API server address of the cluster is successfully bound. No response body is returned if the unbinding is successful.

Error Codes

See Error Codes.