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

 

功能介紹

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

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

調用方法

請參見如何調用API

URI

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

表1 路徑參數(shù)

參數(shù)

是否必選

參數(shù)類型

描述

project_id

String

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

cluster_id

String

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

請求參數(shù)

表2 請求Header參數(shù)

參數(shù)

是否必選

參數(shù)類型

描述

Content-Type

String

消息體的類型(格式)

X-Auth-Token

String

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

表3 請求Body參數(shù)

參數(shù)

是否必選

參數(shù)類型

描述

spec

MasterEIPRequestSpec object

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

表4 MasterEIPRequestSpec

參數(shù)

是否必選

參數(shù)類型

描述

action

String

綁定或解綁動作,必選參數(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ù)

狀態(tài)碼: 200

表6 響應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標識

name

String

資源名稱

labels

Map<String,String>

資源標簽,key/value對格式,接口保留字段,填寫不會生效

annotations

Map<String,String>

資源注解,由key/value組成

updateTimestamp

String

更新時間

creationTimestamp

String

創(chuàng)建時間

表8 MasterEIPResponseSpec

參數(shù)

參數(shù)類型

描述

action

String

綁定動作

spec

spec object

待綁定的彈性IP配置屬性

elasticIp

String

彈性公網(wǎng)IP

表9 spec

參數(shù)

參數(shù)類型

描述

id

String

彈性網(wǎng)卡ID

eip

EipSpec object

EIP的詳細信息

IsDynamic

Boolean

是否動態(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

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

publicEndpoint

String

集群訪問的PublicIP

請求示例

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

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

響應示例

狀態(tài)碼: 200

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

{
  "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)
    }
}

更多編程語言的SDK代碼示例,請參見API Explorer的代碼示例頁簽,可生成自動對應的SDK代碼示例。

狀態(tài)碼

狀態(tài)碼

描述

200

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

錯誤碼

請參見錯誤碼。