""" Code is generated by ucloud-model, DO NOT EDIT IT. """
import typing
from ucloud.core.client import Client
from ucloud.services.uk8s.schemas import apis
[docs]class UK8SClient(Client):
def __init__(
self, config: dict, transport=None, middleware=None, logger=None
):
super(UK8SClient, self).__init__(config, transport, middleware, logger)
[docs] def add_uk8s_existing_uhost(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""AddUK8SExistingUHost - 将预先创建好的云主机加入到UK8S集群,需要注意的是,该云主机依然会执行重装系统的操作。
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_
- **ClusterId** (str) - (Required) UK8S集群ID。 可从UK8S控制台获取。
- **Password** (str) - (Required) Node节点密码。请遵照 `字段规范 <https://docs.ucloud.cn/api/uhost-api/specification>`_ 设定密码。密码需使用base64进行编码,如下:# echo -n Password1 | base64
- **UHostId** (str) - (Required) 云主机Id,为了保证节点正常运行,该主机配置不得低于2C4G。
- **DisableSchedule** (bool) - 用于标示添加完节点后是否将节点临时禁用. 传入 "true" 表示禁用,传入其它或不传表示不禁用
- **ImageId** (str) - 镜像 Id,不填时后台程序会自动选用一个可用的镜像 Id,支持用户自定义镜像,自定义镜像必须基于基础镜像制作。
- **InitScript** (str) - 用户自定义Shell脚本。与UserData的区别在于InitScript在节点初始化完毕后才执行,UserData则是云主机初始化时执行。
- **Labels** (str) - Node节点标签。key=value形式,多组用”,“隔开,最多5组。 如env=pro,type=game
- **MaxPods** (int) - 默认110,生产环境建议小于等于110。
- **SubnetId** (str) - 该云主机所属子网Id。
- **UserData** (str) - 用户自定义数据。当镜像支持Cloud-init Feature时可填写此字段。注意:1、总数据量大小不超过 16K;2、使用base64编码。
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_
**Response**
- **Message** (str) - 返回错误消息,当 RetCode 非 0 时提供详细的描述信息。
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.AddUK8SExistingUHostRequestSchema().dumps(d)
# build options
kwargs["max_retries"] = 0 # ignore retry when api is not idempotent
resp = self.invoke("AddUK8SExistingUHost", d, **kwargs)
return apis.AddUK8SExistingUHostResponseSchema().loads(resp)
[docs] def add_uk8s_node_group(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""AddUK8SNodeGroup - 添加UK8S节点池
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **ClusterId** (str) - (Required) 集群ID
- **NodeGroupName** (str) - (Required) 节点池名字
- **BootDiskType** (str) - 磁盘类型
- **CPU** (int) - GPU卡核心数。仅GPU机型支持此字段(可选范围与MachineType+GpuType相关)
- **ChargeType** (str) - 计费模式
- **DataDiskSize** (int) - 数据磁盘大小
- **DataDiskType** (str) - 磁盘类型
- **GPU** (int) - GPU卡核心数
- **GpuType** (str) - GPU类型
- **ImageId** (str) - 镜像ID
- **MachineType** (str) - 云主机机型。枚举值["N", "C", "G", "O", "OS"]。参考 `云主机机型说明 <https://docs.ucloud.cn/api/uhost-api/uhost_type>`_ 。
- **Mem** (int) - 内存大小。单位:MB
- **MinimalCpuPlatform** (str) - 最低cpu平台,枚举值["Intel/Auto", "Intel/IvyBridge", "Intel/Haswell", "Intel/Broadwell", "Intel/Skylake", "Intel/Cascadelake";"Intel/CascadelakeR"; “Amd/Epyc2”,"Amd/Auto"],默认值是"Intel/Auto"
- **Tag** (str) - 业务组
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
**Response**
- **Message** (str) - 返回错误消息,当 RetCode 非 0 时提供详细的描述信息。
- **NodeGroupId** (str) - 节点池ID
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.AddUK8SNodeGroupRequestSchema().dumps(d)
# build options
kwargs["max_retries"] = 0 # ignore retry when api is not idempotent
resp = self.invoke("AddUK8SNodeGroup", d, **kwargs)
return apis.AddUK8SNodeGroupResponseSchema().loads(resp)
[docs] def add_uk8s_phost_node(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""AddUK8SPHostNode - 为UK8S集群添加一台或多台物理云主机类型的节点。
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_
- **ChargeType** (str) - (Required) 计费模式。枚举值为: \\ > Year,按年付费; \\ > Month,按月付费;\\ 默认为月付
- **ClusterId** (str) - (Required) UK8S集群ID。 可从UK8S控制台获取。
- **Count** (int) - (Required) 最大创建Node节点数量,取值范围是[1,10]。
- **Password** (str) - (Required) Node节点密码。请遵照 `字段规范 <https://docs.ucloud.cn/api/uhost-api/specification>`_ 设定密码。密码需使用base64进行编码,如下:# echo -n Password1 | base64
- **Zone** (str) - (Required) 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_
- **DisableSchedule** (bool) - 用于标示添加完节点后是否将节点临时禁用. 传入 "true" 表示禁用,传入其它或不传表示不禁用
- **ImageId** (str) - 镜像 Id,不填时后台程序会自动选用一个可用的镜像 Id,支持用户自定义镜像,自定义镜像必须基于基础镜像制作。
- **InitScript** (str) - 用户自定义Shell脚本。与UserData的区别在于InitScript在节点初始化完毕后才执行。
- **Labels** (str) - Node节点标签。key=value形式,多组用”,“隔开,最多5组。 如env=pro,type=game
- **MaxPods** (int) - 默认110,生产环境建议小于等于110。
- **NIC** (str) - 网络环境,可选千兆:1G ,万兆:10G, 默认1G。
- **Quantity** (int) - 购买时长。默认: 1。月付时,此参数传0,代表了购买至月末。
- **Raid** (str) - Raid配置,默认Raid10 支持:Raid0、Raid1、Raid5、Raid10,NoRaid
- **SubnetId** (str) - 子网 ID。默认为集群创建时填写的子网ID,也可以填写集群同VPC内的子网ID。
- **Type** (str) - 物理机类型,默认为:db-2(基础型-SAS-V3)
**Response**
- **Message** (str) - 返回错误消息,当 RetCode 非 0 时提供详细的描述信息。
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.AddUK8SPHostNodeRequestSchema().dumps(d)
# build options
kwargs["max_retries"] = 0 # ignore retry when api is not idempotent
resp = self.invoke("AddUK8SPHostNode", d, **kwargs)
return apis.AddUK8SPHostNodeResponseSchema().loads(resp)
[docs] def add_uk8s_uhost_node(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""AddUK8SUHostNode - 为UK8S集群添加一台Node节点,机型类型为云主机
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **CPU** (int) - (Required) 虚拟CPU核数。可选参数:2-64(具体机型与CPU的对应关系参照控制台)。默认值: 4。
- **ChargeType** (str) - (Required) 计费模式。枚举值为: \\ > Year,按年付费; \\ > Month,按月付费;\\ > Dynamic,按小时预付费 \\ > Postpay,按小时后付费(支持关机不收费,目前仅部分可用区支持,请联系您的客户经理) \\ 默认为月付
- **ClusterId** (str) - (Required) UK8S集群ID。 可从UK8S控制台获取。
- **Count** (int) - (Required) 创建Node节点数量,取值范围是[1,50]。
- **Mem** (int) - (Required) 内存大小。单位:MB。范围 :[4096, 262144],取值为1024的倍数(可选范围参考控制台)。默认值:8192
- **Password** (str) - (Required) Node节点密码。请遵照 `字段规范 <https://docs.ucloud.cn/api/uhost-api/specification>`_ 设定密码。密码需使用base64进行编码,如下:# echo -n Password1 | base64
- **Zone** (str) - (Required) 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **BootDiskType** (str) - 磁盘类型。请参考 `磁盘类型 <https://docs.ucloud.cn/api/uhost-api/disk_type>`_ 。默认为SSD云盘
- **DataDiskSize** (int) - 数据磁盘大小,单位GB。默认0。范围 :[20, 1000]
- **DataDiskType** (str) - 磁盘类型。请参考 `磁盘类型 <https://docs.ucloud.cn/api/uhost-api/disk_type>`_ 。默认为SSD云盘
- **DisableSchedule** (bool) - 用于标示添加完节点后是否将节点临时禁用. 传入 "true" 表示禁用,传入其它或不传表示不禁用
- **GPU** (int) - GPU卡核心数。仅GPU机型支持此字段(可选范围与MachineType+GpuType相关)
- **GpuType** (str) - GPU类型,枚举值["K80", "P40", "V100",],MachineType为G时必填
- **ImageId** (str) - 镜像 Id,不填时后台程序会自动选用一个可用的镜像 Id,支持用户自定义镜像,自定义镜像必须基于基础镜像制作。
- **InitScript** (str) - 用户自定义Shell脚本。与UserData的区别在于InitScript在节点初始化完毕后才执行,UserData则是云主机初始化时执行。
- **IsolationGroup** (str) - 硬件隔离组id。可通过DescribeIsolationGroup获取。
- **Labels** (str) - Node节点标签。key=value形式,多组用”,“隔开,最多5组。 如env=pro,type=game
- **MachineType** (str) - 云主机机型。枚举值["N", "C", "G", "O", "OS"]。参考 `云主机机型说明 <https://docs.ucloud.cn/api/uhost-api/uhost_type>`_ 。
- **MaxPods** (int) - 默认110,生产环境建议小于等于110。
- **MinmalCpuPlatform** (str) - 最低cpu平台,枚举值["Intel/Auto", "Intel/IvyBridge", "Intel/Haswell", "Intel/Broadwell", "Intel/Skylake", "Intel/Cascadelake";"Intel/CascadelakeR"; “Amd/Epyc2”,"Amd/Auto"],默认值是"Intel/Auto"
- **Quantity** (int) - 购买时长。默认: 1。按小时购买(Dynamic)时无需此参数。 月付时,此参数传0,代表了购买至月末。
- **SubnetId** (str) - 子网 ID。默认为集群创建时填写的子网ID,也可以填写集群同VPC内的子网ID。
- **UserData** (str) - 用户自定义数据。当镜像支持Cloud-init Feature时可填写此字段。注意:1、总数据量大小不超过 16K;2、使用base64编码。
**Response**
- **NodeIds** (list) - Node实例Id集合
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.AddUK8SUHostNodeRequestSchema().dumps(d)
# build options
kwargs["max_retries"] = 0 # ignore retry when api is not idempotent
resp = self.invoke("AddUK8SUHostNode", d, **kwargs)
return apis.AddUK8SUHostNodeResponseSchema().loads(resp)
[docs] def create_uk8s_cluster_v2(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""CreateUK8SClusterV2 - 创建UK8S集群
**Request**
- **ProjectId** (str) - (Config) 项目ID。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_
- **ClusterName** (str) - (Required) 集群名称
- **MasterCPU** (int) - (Required) Master节点的虚拟CPU核数。可选参数:2-64(具体机型与CPU的对应关系参照控制台)。
- **MasterMachineType** (str) - (Required) Master节点的云主机机型(V2.0),如["N", "C", "O", "OS"],具体请参照云主机机型。
- **MasterMem** (int) - (Required) Master节点的内存大小。单位:MB。范围 :[4096, 262144],取值为1024的倍数(可选范围参考控制台)。
- **Password** (str) - (Required) 集群节点密码,包括Master和Node。密码需包含最少一个大写字母,请使用base64进行编码,举例如下:# echo -n Password1 | base64
- **ServiceCIDR** (str) - (Required) Service 网段,用于分配ClusterIP,如172.17.0.0/16。该网段不能与集群所属VPC网段重叠。
- **SubnetId** (str) - (Required) 集群Node及Pod所属子网
- **VPCId** (str) - (Required) 集群Node及Pod所属VPC
- **ChargeType** (str) - 集群所有节点的付费模式。枚举值为: Year,按年付费; Month,按月付费; Dynamic,按小时付费(需开启权限),默认按月。
- **ExternalApiServer** (str) - 是否允许外网访问apiserver,开启:Yes 不开启:No。默认为No。
- **ImageId** (str) - Master节点和Node节点的镜像 ID,不填则随机选择可用的基础镜像。支持用户自定义镜像。
- **InitScript** (str) - 用户自定义脚本,与UserData不同,自定义脚本将在集群安装完毕后执行。注意:1、总数据量大小不超多16K;2、使用base64编码。
- **K8sVersion** (str) - k8s集群的版本,版本信息请参考UK8S集群创建页,不指定的话默认为当前支持的最高版本。
- **KubeProxy** (dict) - 见 **CreateUK8SClusterV2ParamKubeProxy** 模型定义
- **Master** (list) - 见 **CreateUK8SClusterV2ParamMaster** 模型定义
- **MasterBootDiskType** (str) - Master节点系统盘类型。请参考 `磁盘类型 <https://docs.ucloud.cn/api/uhost-api/disk_type>`_ 。默认为SSD云盘
- **MasterDataDiskSize** (int) - Master节点的数据盘大小,单位GB,默认为0。范围 :[20, 1000]
- **MasterDataDiskType** (str) - Master节点数据盘类型。请参考 `磁盘类型 <https://docs.ucloud.cn/api/uhost-api/disk_type>`_ 。默认为SSD云盘
- **MasterIsolationGroup** (str) - 【无效,已删除】当前将自动为Master节点创建隔离组,确保Master节点归属于不同物理机。
- **MasterMinmalCpuPlatform** (str) - Master节点的最低cpu平台,不选则随机。枚举值["Intel/Auto", "Intel/IvyBridge", "Intel/Haswell", "Intel/Broadwell", "Intel/Skylake", "Intel/Cascadelake"。
- **Nodes** (list) - 见 **CreateUK8SClusterV2ParamNodes** 模型定义
- **Quantity** (int) - 购买时长。默认为1。按小时购买(Dynamic)时无需此参数。 月付时,此参数传0,代表了购买至月末。
- **UserData** (str) - 用户自定义数据。注意:1、总数据量大小不超多16K;2、使用base64编码。
**Response**
- **ClusterId** (str) - 集群ID
**Request Model**
**CreateUK8SClusterV2ParamKubeProxy**
- **Mode** (str) - 集群kube-proxy模式。支持iptables和ipvs,默认为iptables。
**CreateUK8SClusterV2ParamMaster**
- **Zone** (str) - Master节点所属可用区,需要设置 Master.0.Zone、 Master.1.Zone、Master.2.Zone 三个 Master 节点的可用区。 三个节点可部署在不同可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_
**CreateUK8SClusterV2ParamNodes**
- **BootDiskType** (str) - 一组Node节点的系统盘类型,请参考 `磁盘类型 <https://docs.ucloud.cn/api/uhost-api/disk_type>`_ 。默认为SSD云盘
- **CPU** (int) - 一组Node节点的虚拟CPU核数。单位:核,范围:[2, 64],可选范围参考控制台。
- **Count** (int) - 一组Node节点的数量,范围:[1,10]。
- **DataDiskSize** (int) - 数据磁盘大小,单位GB。默认0。范围 :[20, 1000]
- **DataDiskType** (str) - 一组Node节点的数据盘类型,请参考 `磁盘类型 <https://docs.ucloud.cn/api/uhost-api/disk_type>`_ 。默认为SSD云盘
- **GPU** (int) - 一组Node节点的GPU卡核心数,仅GPU机型支持此字段。
- **GpuType** (str) - 一组Node节点的GPU类型,枚举值["K80", "P40", "V100"],最新值参考Console。
- **IsolationGroup** (str) - 一组Node节点的隔离组Id,归属于同一隔离组的虚拟机节点将落在不同的物理机上,单个隔离组最多只能容纳8个节点。参见DescribeIsolationGroup。
- **Labels** (str) - Node节点标签,形式为key=value,多组Labels用”,“隔开,最多支持五组。
- **MachineType** (str) - 一组Nodes节点云主机机型,如["N", "C", "O", "OS"],具体请参照云主机机型。
- **MaxPods** (int) - Node节点上可运行最大节点数,默认为110。
- **Mem** (int) - 一组Node节点的内存大小。单位:MB,范围 :[4096, 262144],取值为1024的倍数,可选范围参考控制台。
- **MinmalCpuPlatform** (str) - Node节点的最低cpu平台,不选则随机。枚举值["Intel/Auto", "Intel/IvyBridge", "Intel/Haswell", "Intel/Broadwell", "Intel/Skylake", "Intel/Cascadelake"。
- **Zone** (str) - 一组Nodes节点所属可用区,可创建多组Nodes节点,如一组是CPU Nodes节点,另一组是GPU Nodes节点。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.CreateUK8SClusterV2RequestSchema().dumps(d)
# build options
kwargs["max_retries"] = 0 # ignore retry when api is not idempotent
resp = self.invoke("CreateUK8SClusterV2", d, **kwargs)
return apis.CreateUK8SClusterV2ResponseSchema().loads(resp)
[docs] def del_uk8s_cluster(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""DelUK8SCluster - 删除UK8S集群
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_
- **ClusterId** (str) - (Required) 集群id
- **ReleaseUDisk** (bool) - 是否删除节点挂载的数据盘。枚举值[true:删除,false: 不删除],默认不删除
**Response**
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.DelUK8SClusterRequestSchema().dumps(d)
resp = self.invoke("DelUK8SCluster", d, **kwargs)
return apis.DelUK8SClusterResponseSchema().loads(resp)
[docs] def del_uk8s_cluster_node_v2(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""DelUK8SClusterNodeV2 - 删除集群中的Node节点,删除前务必先将其中的Pod驱逐。
**Request**
- **ProjectId** (str) - (Config) 项目ID项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_
- **ClusterId** (str) - (Required) UK8S集群ID。 可从UK8S控制台获取。
- **NodeId** (str) - (Required) Node在UK8S处的唯一标示,如uk8s-reewqe5-sdasadsda。**非云主机或物理云主机资源Id**
- **ReleaseDataUDisk** (bool) - 删除节点时是否释放数据盘。 枚举值[true:释放,false: 不释放],默认为true。
**Response**
- **Message** (str) - 返回错误消息,当 RetCode 非 0 时提供详细的描述信息。
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.DelUK8SClusterNodeV2RequestSchema().dumps(d)
resp = self.invoke("DelUK8SClusterNodeV2", d, **kwargs)
return apis.DelUK8SClusterNodeV2ResponseSchema().loads(resp)
[docs] def describe_uk8s_cluster(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""DescribeUK8SCluster - 获取集群信息
**Request**
- **ProjectId** (str) - (Config) 项目id
- **Region** (str) - (Config) 所属区域
- **ClusterId** (str) - (Required) k8s集群ID
**Response**
- **ApiServer** (str) - 集群apiserver地址
- **CACert** (str) - 集群CA根证书
- **ClusterDomain** (str) - 自定义或者默认的clusterdomain
- **ClusterId** (str) - 集群ID
- **ClusterName** (str) - 资源名字
- **CreateTime** (int) - 创建时间
- **EtcdCert** (str) - 集群etcd服务证书
- **EtcdKey** (str) - 集群etcd服务密钥
- **ExternalApiServer** (str) - 集群外部apiserver地址
- **KubeProxy** (dict) - kube-proxy配置
- **MasterCount** (int) - Master 节点数量
- **MasterList** (list) - 见 **UhostInfo** 模型定义
- **NodeCount** (int) - Node节点数量
- **NodeList** (list) - 见 **UhostInfo** 模型定义
- **PodCIDR** (str) - Pod网段
- **ServiceCIDR** (str) - 服务网段
- **Status** (str) - 状态
- **SubnetId** (str) - 所属子网
- **VPCId** (str) - 所属VPC
- **Version** (str) - K8S版本
**Response Model**
**UhostInfo**
- **CPU** (int) - Cpu数量
- **CreateTime** (int) - 创建时间
- **DiskSet** (list) - 见 **DiskSet** 模型定义
- **ExpireTime** (int) - 到期时间
- **IPSet** (list) - 见 **IPSet** 模型定义
- **Memory** (int) - 内存
- **Name** (str) - 主机名称
- **NodeId** (str) - 主机ID
- **NodeType** (str) - 节点类型:uhost表示云主机;uphost表示物理云主机
- **OsName** (str) - 镜像信息
- **State** (str) - 主机状态
- **Zone** (str) - 所在机房
**DiskSet**
- **BackupType** (str) - 备份方案,枚举类型:BASIC_SNAPSHOT,普通快照;DATAARK,方舟。无快照则不返回该字段。
- **DiskId** (str) - 磁盘长ID
- **DiskType** (str) - LOCAL_NOMAL| CLOUD_NORMAL| LOCAL_SSD| CLOUD_SSD|EXCLUSIVE_LOCAL_DISK
- **Drive** (str) - 磁盘盘符
- **Encrypted** (str) - Yes: 加密 No: 非加密
- **IOPS** (int) - 当前主机的IOPS值
- **IsBoot** (str) - True| False
- **Name** (str) - UDisk名字(仅当磁盘是UDisk时返回)
- **Size** (int) - 磁盘大小,单位: GB
- **Type** (str) - 磁盘类型。系统盘: Boot,数据盘: Data,网络盘:Udisk
**IPSet**
- **Bandwidth** (int) - IP对应的带宽, 单位: Mb (内网IP不显示带宽信息)
- **Default** (str) - 是否默认的弹性网卡的信息。true: 是默认弹性网卡;其他值:不是。
- **IP** (str) - IP地址
- **IPId** (str) - IP资源ID (内网IP无对应的资源ID)
- **Type** (str) - 国际: Internation,BGP: Bgp,内网: Private
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.DescribeUK8SClusterRequestSchema().dumps(d)
resp = self.invoke("DescribeUK8SCluster", d, **kwargs)
return apis.DescribeUK8SClusterResponseSchema().loads(resp)
[docs] def describe_uk8s_image(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""DescribeUK8SImage - 获取UK8S支持的Node节点操作系统,可基于该操作系统制定自定义镜像
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist.html>`_
**Response**
- **ImageSet** (list) - 见 **ImageInfo** 模型定义
- **Message** (str) - 返回错误消息,当 RetCode 非 0 时提供详细的描述信息。
- **PHostImageSet** (list) - 见 **ImageInfo** 模型定义
**Response Model**
**ImageInfo**
- **ImageId** (str) - 镜像 Id
- **ImageName** (str) - 镜像名称
- **NotSupportGPU** (bool) - 该镜像是否支持GPU机型,枚举值[true:不支持,false:支持]。
- **ZoneId** (int) - 可用区 Id
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.DescribeUK8SImageRequestSchema().dumps(d)
resp = self.invoke("DescribeUK8SImage", d, **kwargs)
return apis.DescribeUK8SImageResponseSchema().loads(resp)
[docs] def describe_uk8s_node(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""DescribeUK8SNode - 用于获取 UK8S 节点详情
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **ClusterId** (str) - (Required) UK8S 集群 Id
- **Name** (str) - (Required) K8S 节点IP或者节点ID
**Response**
- **Action** (str) - 操作名称
- **AllocatedPodCount** (int) - 已分配到当前节点的 Pod 数量
- **Annotations** (list) - 字符串数组,每一项是类似 "node.alpha.kubernetes.io/ttl=0" 的注解
- **CPUCapacity** (str) - 节点 CPU 总量
- **CPULimits** (str) - 节点上已分配 Pod 的 CPU 限制值
- **CPULimitsFraction** (str) - 节点上已分配 Pod 的 CPU 限制值占 CPU 总量的比例
- **CPURequests** (str) - 节点上已分配 Pod 的 CPU 请求量
- **CPURequestsFraction** (str) - 节点上已分配 Pod 的 CPU 请求量占 CPU 总量的比例
- **Conditions** (list) - 见 **K8SNodeCondition** 模型定义
- **ContainerImages** (list) - 节点上镜像名称数组
- **ContainerRuntimeVersion** (str) - 容器运行时版本,如:"docker://18.9.9"
- **CreationTimestamp** (int) - 时间戳,单位是 秒
- **Hostname** (str) - 主机名
- **InternalIP** (str) - 内部 IP 地址
- **KernelVersion** (str) - 内核版本,如:"4.19.0-6.el7.ucloud.x86_64"
- **KubeProxyVersion** (str) - kubeproxy 版本
- **KubeletVersion** (str) - kubelet 版本
- **Labels** (list) - 字符串数组,每一项是类似 "kubernetes.io/arch=amd64" 的标签
- **MemoryCapacity** (str) - 节点内存总量
- **MemoryLimits** (str) - 节点上已分配 Pod 的内存限制量
- **MemoryLimitsFraction** (str) - 节点上已分配 Pod 的内存限制量占内存总量的比例,如返回值为 "18",则意味着限制量占总量的 18%
- **MemoryRequests** (str) - 节点上已分配 Pod 的内存请求量
- **MemoryRequestsFraction** (str) - 节点上已分配 Pod 的内存请求量占内存总量的比例,如返回值为 "4.5",则意味着请求量占总量的 4.5%
- **Message** (str) - 操作出错时的提示信息
- **Name** (str) - 节点名称
- **OSImage** (str) - 操作系统类型,如:"CentOS Linux 7 (Core)"
- **PodCapacity** (int) - 节点允许的可分配 Pod 最大数量
- **ProviderID** (str) - 字符串,如:"UCloud://cn-sh2-02//uk8s-vsc0vgob-n-mpzxc"
- **RetCode** (int) - 返回码
- **Taints** (list) - 字符串数组,每一项是类似 "node-role.kubernetes.io/master:NoSchedule" 的污点
- **Unschedulable** (bool) - 是否禁止调度
**Response Model**
**K8SNodeCondition**
- **LastProbeTime** (str) - 最后一次上报状态的时间
- **LastTransitionTime** (str) - 最后一次状态转变时间
- **Message** (str) - 状态变化的描述信息
- **Reason** (str) - 状态变化的原因
- **Status** (str) - 状态,False、True
- **Type** (str) - Condition 类型,如 MemoryPressure、DiskPressure、PIDPressure、Ready
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.DescribeUK8SNodeRequestSchema().dumps(d)
resp = self.invoke("DescribeUK8SNode", d, **kwargs)
return apis.DescribeUK8SNodeResponseSchema().loads(resp)
[docs] def list_uk8s_cluster_node_v2(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""ListUK8SClusterNodeV2 - 获取UK8S集群节点信息
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **ClusterId** (str) - (Required) UK8S集群ID
**Response**
- **NodeSet** (list) - 见 **NodeInfoV2** 模型定义
- **TotalCount** (int) - 满足条件的节点数量,包括Master。
**Response Model**
**NodeInfoV2**
- **AsgId** (str) - 节点所属伸缩组ID,非伸缩组创建出来的节点,伸缩组ID为Default。
- **CPU** (int) - Node节点CPU核数,单位: 个。
- **CreateTime** (int) - 节点创建时间
- **ExpireTime** (int) - 节点计费到期时间
- **GPU** (int) - 节点的GPU颗数。
- **IPSet** (list) - 见 **UHostIPSet** 模型定义
- **InstanceId** (str) - 资源ID,如uhost-xxxx,或uphost-xxxxx。
- **InstanceName** (str) - 资源名称,初始值等于NodeId,用户可在UHost或UPHost处修改。
- **InstanceType** (str) - Node节点的资源类型,枚举值为UHost或UPHost。
- **KubeProxy** (dict) - 见 **KubeProxy** 模型定义
- **MachineType** (str) - 机型类别,分别对应Uhost的MachineType或PHost的PHostType。
- **Memory** (int) - 内存大小,单位: MB。
- **NodeId** (str) - NodeId,Node在UK8S处的唯一标示,如uk8s-reewqe5-sdasadsda
- **NodeLogInfo** (str) - 加节点时判断是否没有资源,如果返回NORESOURCE则代表没有资源了
- **NodeRole** (str) - node角色,枚举值为master、node
- **NodeStatus** (str) - Node的状态:枚举值:初始化:"Initializing";启动中:"Starting";运行:"Running";停止中:"Stopping";停止:"Stopped";待删除:"ToBeDeleted";删除中:"Deleting";异常:"Error";安装失败:"Install Fail";
- **OsName** (str) - Node节点的镜像名称。
- **OsType** (str) - Node节点的操作系统类别,如Linux或Windows。
- **Unschedulable** (bool) - 是否允许Pod调度到该节点,枚举值为true或false。
- **Zone** (str) - Node所在可用区
**UHostIPSet**
- **Bandwidth** (int) - IP对应的带宽, 单位: Mb (内网IP不显示带宽信息)
- **IP** (str) - IP地址
- **IPId** (str) - IP资源ID (内网IP无对应的资源ID)
- **Mac** (str) - Mac地址
- **SubnetId** (str) - IP地址对应的子网 ID
- **Type** (str) - 国际: Internation,BGP: Bgp,内网: Private
- **VPCId** (str) - IP地址对应的VPC ID
**KubeProxy**
- **Mode** (str) - KubeProxy模式,枚举值为[ipvs,iptables]
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.ListUK8SClusterNodeV2RequestSchema().dumps(d)
resp = self.invoke("ListUK8SClusterNodeV2", d, **kwargs)
return apis.ListUK8SClusterNodeV2ResponseSchema().loads(resp)
[docs] def list_uk8s_cluster_v2(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""ListUK8SClusterV2 - 获取UK8S集群列表信息
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **ClusterId** (str) - UK8S集群ID
- **Limit** (int) - 返回数据长度,默认为20。
- **Offset** (int) - 列表起始位置偏移量,默认为0。
**Response**
- **ClusterCount** (int) - 满足条件的集群数量
- **ClusterSet** (list) - 见 **ClusterSet** 模型定义
**Response Model**
**ClusterSet**
- **ApiServer** (str) - 集群apiserver地址
- **ClusterId** (str) - 集群ID
- **ClusterLogInfo** (str) - 创建集群时判断如果为NORESOURCE则为没资源,否则为空
- **ClusterName** (str) - 资源名字
- **CreateTime** (int) - 创建时间
- **ExternalApiServer** (str) - 集群外部apiserver地址
- **K8sVersion** (str) - 集群版本
- **MasterCount** (int) - Master 节点数量
- **NodeCount** (int) - Node节点数量
- **PodCIDR** (str) - Pod网段
- **ServiceCIDR** (str) - 服务网段
- **Status** (str) - 集群状态,枚举值:初始化:"INITIALIZING";启动中:"STARTING";创建失败:"CREATEFAILED";正常运行:"RUNNING";添加节点:"ADDNODE";删除节点:"DELNODE";删除中:"DELETING";删除失败:"DELETEFAILED";错误:"ERROR";升级插件:"UPDATE_PLUGIN";更新插件信息:"UPDATE_PLUGIN_INFO";异常:"ABNORMAL";升级集群中:"UPGRADING";容器运行时切换:"CONVERTING"
- **SubnetId** (str) - 所属子网
- **VPCId** (str) - 所属VPC
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.ListUK8SClusterV2RequestSchema().dumps(d)
resp = self.invoke("ListUK8SClusterV2", d, **kwargs)
return apis.ListUK8SClusterV2ResponseSchema().loads(resp)
[docs] def list_uk8s_node_group(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""ListUK8SNodeGroup - 列出UK8S节点池
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **ClusterId** (str) - (Required) 集群ID
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
**Response**
- **NodeGroupList** (list) - 见 **NodeGroupSet** 模型定义
**Response Model**
**NodeGroupSet**
- **BootDiskType** (str) - 系统盘类型
- **CPU** (int) - 虚拟CPU核数
- **ChargeType** (str) - 付费方式
- **DataDiskSize** (int) - 数据盘大小
- **DataDiskType** (str) - 数据盘类型
- **GPU** (int) - GPU卡核心数
- **GpuType** (str) - GPU类型
- **ImageId** (str) - 镜像ID
- **MachineType** (str) - 机型
- **Mem** (int) - 内存大小
- **MinimalCpuPlatform** (str) - cpu平台
- **NodeGroupId** (str) - 节点池ID
- **NodeGroupName** (str) - 节点池名字
- **NodeList** (list) - 节点id列表
- **Tag** (str) - 业务组
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.ListUK8SNodeGroupRequestSchema().dumps(d)
resp = self.invoke("ListUK8SNodeGroup", d, **kwargs)
return apis.ListUK8SNodeGroupResponseSchema().loads(resp)
[docs] def remove_uk8s_node_group(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""RemoveUK8SNodeGroup - 删除UK8S节点池
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
- **ClusterId** (str) - (Required) 集群id
- **NodeGroupId** (str) - (Required) 节点池Id
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
**Response**
"""
# build request
d = {
"ProjectId": self.config.project_id,
"Region": self.config.region,
}
req and d.update(req)
d = apis.RemoveUK8SNodeGroupRequestSchema().dumps(d)
resp = self.invoke("RemoveUK8SNodeGroup", d, **kwargs)
return apis.RemoveUK8SNodeGroupResponseSchema().loads(resp)