華為云計(jì)算 云知識(shí) 綁定、解綁集群公網(wǎng)apiserver地址UpdateClusterEip
綁定、解綁集群公網(wǎng)apiserver地址UpdateClusterEip

 

功能介紹

該API用于通過(guò)集群ID綁定、解綁集群公網(wǎng)apiserver地址

集群管理的URL格式為:https://Endpoint/uri。其中uri為資源路徑,也即API訪問(wèn)的路徑。

調(diào)用方法

請(qǐng)參見如何調(diào)用API。

URI

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

表1 路徑參數(shù)

參數(shù)

是否必選

參數(shù)類型

描述

project_id

String

項(xiàng)目ID,獲取方式請(qǐng)參見如何獲取接口URI中參數(shù)。

cluster_id

String

集群ID,獲取方式請(qǐng)參見如何獲取接口URI中參數(shù)。

請(qǐng)求參數(shù)

表2 請(qǐng)求Header參數(shù)

參數(shù)

是否必選

參數(shù)類型

描述

Content-Type

String

消息體的類型(格式)

X-Auth-Token

String

調(diào)用接口的認(rèn)證方式分為Token和AK/SK兩種,如果您使用的Token方式,此參數(shù)為必填,請(qǐng)?zhí)顚慣oken的值,獲取方式請(qǐng)參見獲取token。

表3 請(qǐng)求Body參數(shù)

參數(shù)

是否必選

參數(shù)類型

描述

spec

MasterEIPRequestSpec object

綁定、解綁集群公網(wǎng)apiserver地址的請(qǐng)求配置參數(shù)

表4 MasterEIPRequestSpec

參數(shù)

是否必選

參數(shù)類型

描述

action

String

綁定或解綁動(dòng)作,必選參數(shù)。

  • 綁定:固定值為{"action":"bind"}

  • 解綁:固定值為{"action":"unbind"}

spec

spec object

待綁定的彈性IP配置屬性

bandwidth

String

帶寬(字段已失效,暫不推薦使用)

elasticIp

String

彈性網(wǎng)卡IP(字段已失效,暫不推薦使用)

表5 spec

參數(shù)

是否必選

參數(shù)類型

描述

id

String

彈性網(wǎng)卡ID,綁定時(shí)必選,解綁時(shí)該字段無(wú)效

響應(yīng)參數(shù)

狀態(tài)碼: 200

表6 響應(yīng)Body參數(shù)

參數(shù)

參數(shù)類型

描述

metadata

Metadata object

基本信息,為集合類的元素類型,包含一組由不同名稱定義的屬性

spec

MasterEIPResponseSpec object

綁定集群公網(wǎng)apiserver地址的配置信息

status

status object

狀態(tài)信息

表7 Metadata

參數(shù)

參數(shù)類型

描述

uid

String

唯一id標(biāo)識(shí)

name

String

資源名稱

labels

Map<String,String>

資源標(biāo)簽,key/value對(duì)格式,接口保留字段,填寫不會(huì)生效

annotations

Map<String,String>

資源注解,由key/value組成

updateTimestamp

String

更新時(shí)間

creationTimestamp

String

創(chuàng)建時(shí)間

表8 MasterEIPResponseSpec

參數(shù)

參數(shù)類型

描述

action

String

綁定動(dòng)作

spec

spec object

待綁定的彈性IP配置屬性

elasticIp

String

彈性公網(wǎng)IP

表9 spec

參數(shù)

參數(shù)類型

描述

id

String

彈性網(wǎng)卡ID

eip

EipSpec object

EIP的詳細(xì)信息

IsDynamic

Boolean

是否動(dòng)態(tài)創(chuàng)建

表10 EipSpec

參數(shù)

參數(shù)類型

描述

bandwidth

bandwidth object

帶寬信息

表11 bandwidth

參數(shù)

參數(shù)類型

描述

size

Integer

帶寬大小

sharetype

String

帶寬類型

表12 status

參數(shù)

參數(shù)類型

描述

privateEndpoint

String

集群訪問(wèn)的PrivateIP(HA集群返回VIP)

publicEndpoint

String

集群訪問(wèn)的PublicIP

請(qǐng)求示例

綁定集群公網(wǎng)apiserver地址。

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

響應(yīng)示例

狀態(tài)碼: 200

表示綁定集群公網(wǎng)apiserver地址成功,解綁成功無(wú)響應(yīng)體。

{
  "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代碼示例

SDK代碼示例如下。

  • Java
  • Python
  • Go
  • 更多

綁定集群公網(wǎng)apiserver地址。

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) {
        String ak = "<YOUR AK>";
        String sk = "<YOUR SK>";
        String projectId = "<project_id>";

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

        CceClient client = CceClient.newBuilder()
                .withCredential(auth)
                .withRegion(CceRegion.valueOf("cn-north-4"))
                .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());
        }
    }
}

綁定集群公網(wǎng)apiserver地址。

# coding: utf-8

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__":
    ak = "<YOUR AK>"
    sk = "<YOUR SK>"
    projectId = "<project_id>"

    credentials = BasicCredentials(ak, sk, projectId) \

    client = CceClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(CceRegion.value_of("cn-north-4")) \
        .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)

綁定集群公網(wǎng)apiserver地址。

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() {
    ak := "<YOUR AK>"
    sk := "<YOUR SK>"
    projectId := "<project_id>"

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

    client := cce.NewCceClient(
        cce.CceClientBuilder().
            WithRegion(region.ValueOf("cn-north-4")).
            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)
    }
}

更多編程語(yǔ)言的SDK代碼示例,請(qǐng)參見API Explorer的代碼示例頁(yè)簽,可生成自動(dòng)對(duì)應(yīng)的SDK代碼示例。

狀態(tài)碼

狀態(tài)碼

描述

200

表示綁定集群公網(wǎng)apiserver地址成功,解綁成功無(wú)響應(yīng)體。

錯(cuò)誤碼

請(qǐng)參見錯(cuò)誤碼。