华为云用户手册

  • 响应示例 状态码: 200 表示更新指定节点成功。 { "kind" : "Node", "apiVersion" : "v3", "metadata" : { "name" : "new-hostname", "uid" : "4d1ecb2c-229a-11e8-9c75-0255ac100ceb", "creationTimestamp" : " 2017-08-20T21:11:09Z", "updateTimestamp" : "2017-08-20T21:11:09Z", "annotations" : { "kubernetes.io/node-pool.id" : "az1.dc1#s1.medium#EulerOS 2.2" } }, "spec" : { "flavor" : "s1.medium", "az" : "az1.dc1", "os" : "EulerOS 2.2", "login" : { "sshKey" : "KeyPair-001" }, "rootVolume" : { "volumetype" : "SAS", "size" : 40 }, "dataVolumes" : [ { "volumetype" : "SAS", "size" : 100 } ], "publicIP" : { "eip" : { } }, "billingMode" : 0 }, "status" : { "phase" : "Active", "serverId" : "456789abc-9368-46f3-8f29-d1a95622a568", "publicIP" : "10.34.56.78", "privateIP" : "192.168.1.23" }}
  • URI PUT /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/{node_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见如何获取接口URI中参数。 cluster_id 是 String 集群ID,获取方式请参见如何获取接口URI中参数。 node_id 是 String 节点ID,获取方式请参见如何获取接口URI中参数。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 消息体的类型(格式) X-Auth-Token 是 String 调用接口的认证方式分为Token和AK/SK两种,如果您使用的Token方式,此参数为必填,请填写Token的值,获取方式请参见获取token。 表3 请求Body参数 参数 是否必选 参数类型 描述 metadata 是 ClusterNodeInformationMetadata object metadata是节点对象的元数据定义,是集合类的元素类型,包含一组由不同名称定义的属性。 表4 ClusterNodeInformationMetadata 参数 是否必选 参数类型 描述 name 是 String 节点名称 说明: 修改节点名称后,弹性云服务器名称(虚拟机名称)会同步修改。 命名规则:以小写字母开头,由小写字母、数字、中划线(-)组成,长度范围1-56位,且不能以中划线(-)结尾。
  • 响应示例 状态码: 200 表示获取集群下指定的节点成功。 { "kind" : "Node", "apiVersion" : "v3", "metadata" : { "name" : "myhost", "uid" : "4d1ecb2c-229a-11e8-9c75-0255ac100ceb", "creationTimestamp" : "2018-08-02 08:12:40.124294439 +0000 UTC", "updateTimestamp" : "2018-08-02 08:18:20.221871842 +0000 UTC", "annotations" : { "kubernetes.io/node-pool.id" : "az1.dc1#s1.medium#EulerOS 2.2" } }, "spec" : { "flavor" : "s1.medium", "az" : "******", "os" : "EulerOS 2.2", "login" : { "sshKey" : "KeyPair-001" }, "rootVolume" : { "volumetype" : "SAS", "size" : 40 }, "dataVolumes" : [ { "volumetype" : "SAS", "size" : 100 } ], "publicIP" : { "eip" : { "bandwidth" : { } } }, "billingMode" : 0 }, "status" : { "phase" : "Active", "serverId" : "456789abc-9368-46f3-8f29-d1a95622a568", "publicIP" : "10.34.56.78", "privateIP" : "192.168.1.23" }}
  • URI GET /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/{node_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见如何获取接口URI中参数。 cluster_id 是 String 集群ID,获取方式请参见如何获取接口URI中参数。 node_id 是 String 节点ID,获取方式请参见如何获取接口URI中参数。
  • 响应示例 状态码: 200 表示获取集群下的节点列表成功。 { "kind" : "List", "apiVersion" : "v3", "items" : [ { "kind" : "Node", "apiVersion" : "v3", "metadata" : { "name" : "myhost", "uid" : "4d1ecb2c-229a-11e8-9c75-0255ac100ceb", "creationTimestamp" : "2018-08-02 07:37:24.005071325 +0000 UTC", "updateTimestamp" : "2018-08-02 07:44:04.965500815 +0000 UTC", "annotations" : { "kubernetes.io/node-pool.id" : "az1.dc1#s1.medium#EulerOS 2.2" } }, "spec" : { "flavor" : "s1.medium", "az" : "az1.dc1", "os" : "EulerOS 2.2", "login" : { "sshKey" : "KeyPair-001" }, "rootVolume" : { "volumetype" : "SAS", "size" : 40 }, "dataVolumes" : [ { "volumetype" : "SAS", "size" : 100 } ], "publicIP" : { "eip" : { "bandwidth" : { } } }, "billingMode" : 0 }, "status" : { "phase" : "Active", "serverId" : "456789abc-9368-46f3-8f29-d1a95622a568", "publicIP" : "10.34.56.78", "privateIP" : "192.168.1.23" } } ]}
  • 请求示例 { "kind" : "Cluster", "apiVersion" : "v3", "metadata" : { "name" : "mycluster", "labels" : { "foo" : "bar" }, "annotations" : { "cluster.install.addons/install" : "[{\"addonTemplateName\":\"autoscaler\",\"version\":\"1.15.11\",\"values\":{\"flavor\":{\"description\":\"Has only one instance\",\"name\":\"Single\",\"replicas\":1,\"resources\":[{\"limitsCpu\":\"90m\",\"limitsMem\":\"200Mi\",\"name\":\"autoscaler\",\"requestsCpu\":\"50m\",\"requestsMem\":\"100Mi\"}]},\"custom\":{\"coresTotal\":32000,\"maxEmptyBulkDeleteFlag\":10,\"maxNodesTotal\":1000,\"memoryTotal\":128000,\"scaleDownDelayAfterAdd\":10,\"scaleDownDelayAfterDelete\":10,\"scaleDownDelayAfterFailure\":3,\"scaleDownEnabled\":false,\"scaleDownUnneededTime\":10,\"scaleDownUtilizationThreshold\":0.5,\"scaleUpCpuUtilizationThreshold\":1,\"scaleUpMemUtilizationThreshold\":1,\"scaleUpUnscheduledPodEnabled\":true,\"scaleUpUtilizationEnabled\":true,\"tenant_id\":\"22a8a02394794b908d256103a5b63c65\",\"unremovableNodeRecheckTimeout\":5}}},{\"addonTemplateName\":\"coredns\",\"version\":\"1.15.3\",\"values\":{\"flavor\":{\"description\":\"Has two instances\",\"name\":2500,\"replicas\":2,\"resources\":[{\"limitsCpu\":\"500m\",\"limitsMem\":\"512Mi\",\"name\":\"coredns\",\"requestsCpu\":\"500m\",\"requestsMem\":\"512Mi\"}]},\"custom\":{\"stub_domains\":{},\"upstream_nameservers\":[],\"tenant_id\":\"22a8a02394794b908d256103a5b63c65\"}}},{\"addonTemplateName\":\"gpu-beta\",\"version\":\"1.1.7\",\"values\":{\"custom\":{\"is_driver_from_nvidia\":true,\"nvidia_driver_download_url\":\"https://us.download.nvidia.com/tesla/396.37/NVIDIA-Linux-x86_64-396.37.run\"}}},{\"addonTemplateName\":\"storage-driver\",\"version\":\"\"}]" } }, "spec" : { "type" : "VirtualMachine", "flavor" : "cce.s1.small", "version" : "v1.15.11", "description" : "this is a demo cluster", "hostNetwork" : { "vpc" : "1cb74d47-8e09-4d14-a065-75f4fc03e5eb", "subnet" : "d44c089c-fbdc-49b3-ae8f-7b42c64219cf" }, "containerNetwork" : { "mode" : "overlay_l2", "cidr" : "172.16.0.0/16" }, "extendParam" : { "foo" : "bar" } }}
  • 节点规格(flavor)说明 不同区域支持的节点规格(flavor)不同,且节点规格存在新增、售罄下线等情况,建议您在使用前登录CCE控制台,在创建节点界面查看您需要的节点规格是否支持。 CCE集群 CCE集群只支持2U4G以上的规格,建议您通过控制台查询节点规格,具体节点规格名称请参见规格清单。 在填写flavor时,需要填写具体规格名称,如c6.large.2。 CCE支持的规格列表如下(部分机型因区域而异,请以实际控制台显示为准): 弹性云服务器-虚拟机: 表1 x86节点 节点类型 规格类型 通用计算增强型 c7、c7n、as7、ac7、air7、c6s、c6nl、c6、c6x、ac6、c3、c3ne、ct3、cx3ne 通用型 s7、s7n、s6、s6nl、s3、si3、sn3、s2、si2 通用入门型 t6 内存优化型 m7、am7、m7n、m6s、m6nl、m6、m3、m2 磁盘增强型 d7、d6、d6nl、d2 超高I/O型 i7、ir7、ir7n、i7n、ir3、i3、i3nl 高性能计算型 h3、hc2 GPU加速型 pi3、pi2、pi1、p3s、p2s、p1、g6、g5、g5r、g5rnl、g6l、p3snl、pi2nl、p2v AI加速型 kai1s、kai1、ai1s、ai1、ai2 表2 鲲鹏(ARM)节点 节点类型 规格类型 鲲鹏通用计算增强型 kc1 鲲鹏内存优化型 km1 弹性云服务器-物理机:支持c6、c7类型的弹性云服务器物理机。 裸金属服务器: x86节点:支持physical.d2、physical.s4、physical.c6ne、physical.d6ne类型的裸金属服务器。 ARM节点:支持physical.a1.2xlarge类型的裸金属服务器。 CCE Turbo集群 弹性云服务器-虚拟机: 表3 x86节点 节点类型 规格类型 通用计算增强型 c7、ac7、c7n、c3n、s7n 容器增强型 c6ne、c6sne、m6ne、m6sne 内存优化型 m7、am7、m3n、m7n 磁盘增强型 d7 超高I/O型 i7、ir7、ir7n、i7n GPU加速型 pi3、g6ne、pi2ne、p2sne、p3v 鲲鹏内存优化型 km1n、kc1n AI加速型 ai2 表4 鲲鹏(ARM)节点 节点类型 规格类型 鲲鹏内存优化型 km1n、kc1n 弹性云服务器-物理机:支持c6、c7类型的弹性云服务器物理机。 IPv6双栈类型的节点在不同区域可选的规格不同,具体请参见支持IPv6服务器约束与限制。 父主题: 附录
  • URI PUT /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools/{nodepool_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见如何获取接口URI中参数。 cluster_id 是 String 集群ID,获取方式请参见如何获取接口URI中参数。 nodepool_id 是 String 节点池ID
  • 请求示例 修改节点池中的节点数为1。 { "metadata" : { "name" : "lc-it-nodepool-3" }, "spec" : { "nodeTemplate" : { "k8sTags" : { }, "taints" : [ { "key" : "status", "value" : "unavailable", "effect" : "NoSchedule" } ], "userTags" : [ ] }, "autoscaling" : { "enable" : false, "minNodeCount" : 0, "maxNodeCount" : 0, "scaleDownCooldownTime" : 0, "priority" : 0 }, "initialNodeCount" : 1 }}
  • 响应示例 状态码: 200 表示更新指定节点池成功。 { "kind" : "NodePool", "apiVersion" : "v3", "metadata" : { "name" : "lc-it-nodepool-3", "uid" : "1deef848-690d-11ea-a11b-0255ac1001b7" }, "spec" : { "initialNodeCount" : 1, "type" : "vm", "nodeTemplate" : { "flavor" : "Sit3.xlarge.2", "az" : "******", "os" : "EulerOS 2.5", "login" : { "sshKey" : "KeyPair-001" }, "rootVolume" : { "volumetype" : "SAS", "size" : 40 }, "dataVolumes" : [ { "volumetype" : "SAS", "size" : 100, "extendParam" : { "useType" : "docker" } } ], "publicIP" : { "eip" : { "bandwidth" : { } } }, "nodeNicSpec" : { "primaryNic" : { "subnetId" : "7e767d10-7548-4df5-ad72-aeac1d08bd8a" } }, "billingMode" : 0, "extendParam" : { "maxPods" : 110 }, "k8sTags" : { "cce.cloud.com/cce-nodepool" : "lc-it-nodepool-3" } }, "autoscaling" : { }, "nodeManagement" : { } }, "status" : { "phase" : "" }}
  • URI DELETE /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools/{nodepool_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见如何获取接口URI中参数。 cluster_id 是 String 集群ID,获取方式请参见如何获取接口URI中参数。 nodepool_id 是 String 节点池ID
  • 响应示例 状态码: 200 表示删除节点池作业下发成功。 { "kind" : "NodePool", "apiVersion" : "v3", "metadata" : { "name" : "lc-it-nodepool-79796", "uid" : "99addaa2-69eb-11ea-a592-0255ac1001bb" }, "spec" : { "type" : "vm", "nodeTemplate" : { "flavor" : "s6.large.2", "az" : "******", "os" : "EulerOS 2.5", "login" : { "sshKey" : "KeyPair-001" }, "rootVolume" : { "volumetype" : "SAS", "size" : 40 }, "dataVolumes" : [ { "volumetype" : "SAS", "size" : 100, "extendParam" : { "useType" : "docker" } } ], "publicIP" : { "eip" : { "bandwidth" : { } } }, "nodeNicSpec" : { "primaryNic" : { "subnetId" : "7e767d10-7548-4df5-ad72-aeac1d08bd8a" } }, "billingMode" : 0, "extendParam" : { "maxPods" : 110 }, "k8sTags" : { "cce.cloud.com/cce-nodepool" : "lc-it-nodepool-79796" } }, "autoscaling" : { }, "nodeManagement" : { } }, "status" : { "phase" : "Deleting", "jobId" : "3281fa02-69ee-11ea-a592-0255ac1001bb" }}
  • 功能介绍 该API用于创建一个空集群(即只有控制节点Master,没有工作节点Node)。请在调用本接口完成集群创建之后,通过创建节点添加节点。 集群管理的URL格式为:https://Endpoint/uri。其中uri为资源路径,也即API访问的路径。 调用该接口创建集群时,默认不安装ICAgent,若需安装ICAgent,可在请求Body参数的annotations中加入"cluster.install.addons.external/install":"[{"addonTemplateName":"icagent"}]"的集群注解,将在创建集群时自动安装ICAgent。ICAgent是应用性能管理APM的采集代理,运行在应用所在的服务器上,用于实时采集探针所获取的数据,安装ICAgent是使用应用性能管理APM的前提。
  • 接口约束 调用CCE接口创建集群之前,请检查是否已满足如下条件: 创建集群之前,您必须先确保已存在虚拟私有云,否则无法创建集群。若您已有虚拟私有云,可重复使用,无需重复创建。虚拟私有云为CCE集群提供一个隔离的、用户自主配置和管理的虚拟网络环境。 创建集群之前,请提前规划好容器网段和服务网段。网段参数在集群创建后不可更改,需要重新创建集群才能调整,请谨慎选择。 请确保已正确创建委托,并确保委托未被删除,委托校验失败将导致集群创建失败。建议登录CCE控制台,如没有创建委托,会提示您创建,如已经创建则无提示。 默认情况下,一个帐户只能创建5个集群(每个Region下),如果您需要创建更多的集群,请申请增加配额。
  • 请求示例 创建一个v1.19版本的CCE集群,计费模式为按需计费,集群规模为50节点,且为高可用集群。 /api/v3/projects/{project_id}/clusters{ "kind" : "Cluster", "apiVersion" : "v3", "metadata" : { "name" : "cluster" }, "spec" : { "category" : "CCE", "flavor" : "cce.s2.small", "version" : "v1.19", "hostNetwork" : { "vpc" : "030bfb19-5fa7-42ad-8a0d-c0721d268867", "subnet" : "ca964acf-8468-4735-8229-97940ef6c881" }, "containerNetwork" : { "mode" : "vpc-router", "cidr" : "10.0.0.0/16" }, "kubernetesSvcIpRange" : "10.247.0.0/16", "description" : "", "billingMode" : 0, "extendParam" : { "kubeProxyMode" : "iptables", "alpha.cce/fixPoolMask" : "25", "enterpriseProjectId" : "0" }, "authentication" : { "mode" : "rbac" }, "ipv6enable" : false }} 创建一个v1.19版本的CCE集群,计费模式为按需计费,集群规模为50节点,且为高可用集群,并在集群中安装ICAgent。 /api/v3/projects/{project_id}/clusters{ "kind" : "Cluster", "apiVersion" : "v3", "metadata" : { "name" : "cluster", "annotations" : { "cluster.install.addons.external/install" : "[{\"addonTemplateName\":\"icagent\"}]" } }, "spec" : { "category" : "CCE", "flavor" : "cce.s2.small", "version" : "v1.19", "hostNetwork" : { "vpc" : "030bfb19-5fa7-42ad-8a0d-c0721d268867", "subnet" : "ca964acf-8468-4735-8229-97940ef6c881" }, "containerNetwork" : { "mode" : "vpc-router", "cidr" : "10.0.0.0/16" }, "kubernetesSvcIpRange" : "10.247.0.0/16", "description" : "", "billingMode" : 0, "extendParam" : { "kubeProxyMode" : "iptables", "alpha.cce/fixPoolMask" : "25", "enterpriseProjectId" : "0" }, "authentication" : { "mode" : "rbac" }, "ipv6enable" : false }} 创建一个v1.19版本的CCE集群,计费模式为按需计费,集群规模为50节点,且为高可用集群,并指定自定义的节点默认安全组。 /api/v3/projects/{project_id}/clusters{ "kind" : "Cluster", "apiVersion" : "v3", "metadata" : { "name" : "cluster" }, "spec" : { "category" : "CCE", "flavor" : "cce.s2.small", "version" : "v1.19", "hostNetwork" : { "vpc" : "030bfb19-5fa7-42ad-8a0d-c0721d268867", "subnet" : "ca964acf-8468-4735-8229-97940ef6c881", "SecurityGroup" : "a4ef108c-2ec6-492f-a6c4-7b64e25ae490" }, "containerNetwork" : { "mode" : "vpc-router", "cidr" : "10.0.0.0/16" }, "kubernetesSvcIpRange" : "10.247.0.0/16", "description" : "", "billingMode" : 0, "extendParam" : { "kubeProxyMode" : "iptables", "alpha.cce/fixPoolMask" : "25", "enterpriseProjectId" : "0" }, "authentication" : { "mode" : "rbac" }, "ipv6enable" : false }}
  • 响应示例 状态码: 201 表示创建集群作业下发成功。 { "kind" : "Cluster", "apiVersion" : "v3", "metadata" : { "alias" : "cluster", "name" : "cluster", "uid" : "bce956e1-87f3-11ec-b5e5-0255ac101514", "creationTimestamp" : "2022-02-07 08:55:45.785425492 +0000 UTC", "updateTimestamp" : "2022-02-07 08:55:45.78542824 +0000 UTC", "annotations" : { "jobid" : "bd42f724-87f3-11ec-b5e5-0255ac101514", "resourceJobId" : "bce99f78-87f3-11ec-b5e5-0255ac101514" } }, "spec" : { "category" : "CCE", "type" : "VirtualMachine", "flavor" : "cce.s2.small", "version" : "v1.19.10-r0", "platformVersion" : "cce.5.0", "hostNetwork" : { "vpc" : "030bfb19-5fa7-42ad-8a0d-c0721d268867", "subnet" : "ca964acf-8468-4735-8229-97940ef6c881" }, "containerNetwork" : { "mode" : "vpc-router", "cidr" : "10.0.0.0/16", "cidrs" : [ { "cidr" : "10.0.0.0/16" } ] }, "eniNetwork" : { }, "authentication" : { "mode" : "rbac", "authenticatingProxy" : { } }, "billingMode" : 0, "kubernetesSvcIpRange" : "10.247.0.0/16", "kubeProxyMode" : "iptables", "extendParam" : { "alpha.cce/fixPoolMask" : "25", "enterpriseProjectId" : "0", "kubeProxyMode" : "iptables", "orderID" : "" } }, "status" : { "phase" : "Creating", "jobID" : "bd42f724-87f3-11ec-b5e5-0255ac101514" }}
  • API URL说明 集群管理、节点管理、节点池管理、插件管理、配额管理的URL格式为:https://Endpoint/uri。其中uri为资源路径,也即API访问的路径。 Kubernetes API、存储管理的URL格式为:https://{clusterid}.Endpoint/uri。其中{clusterid}为集群ID,uri为资源路径,也即API访问的路径。 插件管理接口调用的URL格式为:https://{clusterid}.Endpoint/uri,但{clusterid}参数仅用于域名,不会被接口校验和使用。插件管理实际使用的{clusterid}参数请参考插件管理,填写在query或body体中。 {clusterid}参数对Kubernetes API、存储管理生效,对应需要调用接口访问的集群。 表1 URL中的参数说明 参数 描述 {clusterid} 集群ID,创建集群后,调用获取指定项目下的集群接口获取。 Endpoint Web服务入口点的URL,可以从终端节点(Endpoint)中获取。 uri 资源路径,也即API访问路径。从具体接口的URI模块获取,例如“获取用户Token”API的resource-path为“v3/auth/tokens”。 父主题: API
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 kind String API类型,固定值“Config”,该值不可修改。 缺省值:Config apiVersion String API版本,固定值“v1”。 preferences String 当前未使用该字段,当前默认为空。 clusters Array of Clusters objects 集群列表。 users Array of Users objects 存放了指定用户的一些证书信息和ClientKey信息。 contexts Array of Contexts objects 上下文列表。 current-context String 当前上下文,若存在publicIp(虚拟机弹性IP)时为 external; 若不存在publicIp为 internal。 表4 Clusters 参数 参数类型 描述 name String 集群名字。 若不存在publicIp(虚拟机弹性IP),则集群列表的集群数量为1,该字段值为“internalCluster”。 若存在publicIp,则集群列表的集群数量大于1,所有扩展的cluster的name的值为“externalCluster”。 cluster ClusterCert object 集群信息。 表5 ClusterCert 参数 参数类型 描述 server String 服务器地址。 certificate-authority-data String 证书授权数据。 insecure-skip-tls-verify Boolean 不校验服务端证书,在 cluster 类型为 externalCluster 时,该值为 true。 表6 Users 参数 参数类型 描述 name String 当前为固定值“user“。 user User object 存放了指定用户的一些证书信息和ClientKey信息。 表7 User 参数 参数类型 描述 client-certificate-data String 客户端证书。 client-key-data String 包含来自TLS客户端密钥文件的PEM编码数据。 表8 Contexts 参数 参数类型 描述 name String 上下文的名称。 若不存在publicIp(虚拟机弹性IP),则集群列表的集群数量为1,该字段值为“internal”。 若存在publicIp,则集群列表的集群数量大于1,所有扩展的context的name的值为“external”。 context Context object 上下文信息。 表9 Context 参数 参数类型 描述 cluster String 上下文cluster信息。 user String 上下文user信息。
  • 响应示例 状态码: 200 表示成功获取指定集群的证书。证书文件格式参见kubernetes v1.Config结构 { "kind" : "Config", "apiVersion" : "v1", "preferences" : { }, "clusters" : [ { "name" : "internalCluster", "cluster" : { "server" : "https://192.168.1.7:5443", "certificate-authority-data" : "Q2VydGlmaWN******kQgQ0VSVElGSUNBVEUtLS0tLQo=" } } ], "users" : [ { "name" : "user", "user" : { "client-certificate-data" : "LS0tLS1CRUdJTi******RklDQVRFLS0tLS0K", "client-key-data" : "LS0tLS1CRUdJTiBSU******BLRVktLS0tLQo=" } } ], "contexts" : [ { "name" : "internal", "context" : { "cluster" : "internalCluster", "user" : "user" } } ], "current-context" : "internal"}
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 消息体的类型(格式) 枚举值: application/json;charset=utf-8 application/json X-Auth-Token 是 String 调用接口的认证方式分为Token和AK/SK两种,如果您使用的Token方式,此参数为必填,请填写Token的值,获取方式请参见获取token。 最大长度:16384
  • 响应示例 状态码: 200 表示获取指定节点池成功。 { "kind" : "NodePool", "apiVersion" : "v3", "metadata" : { "name" : "lc-it-nodepool-79796", "uid" : "99addaa2-69eb-11ea-a592-0255ac1001bb" }, "spec" : { "type" : "vm", "nodeTemplate" : { "flavor" : "s6.large.2", "az" : "******", "os" : "EulerOS 2.5", "login" : { "sshKey" : "KeyPair-001" }, "rootVolume" : { "volumetype" : "SAS", "size" : 40 }, "dataVolumes" : [ { "volumetype" : "SAS", "size" : 100, "extendParam" : { "useType" : "docker" } } ], "publicIP" : { "eip" : { "bandwidth" : { } } }, "nodeNicSpec" : { "primaryNic" : { "subnetId" : "7e767d10-7548-4df5-ad72-aeac1d08bd8a" } }, "billingMode" : 0, "extendParam" : { "maxPods" : 110 }, "k8sTags" : { "cce.cloud.com/cce-nodepool" : "lc-it-nodepool-79796" } }, "autoscaling" : { }, "nodeManagement" : { } }, "status" : { "phase" : "Deleting", "jobId" : "3281fa02-69ee-11ea-a592-0255ac1001bb" }}
  • URI GET /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools/{nodepool_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见如何获取接口URI中参数。 cluster_id 是 String 集群ID,获取方式请参见如何获取接口URI中参数。 nodepool_id 是 String 节点池ID
  • 响应示例 状态码: 200 表示删除指定集群作业下发成功。 { "kind" : "Cluster", "apiVersion" : "v3", "metadata" : { "alias" : "mycluster", "name" : "mycluster", "uid" : "fc563b3c-9552-11e8-8beb-0255ac106311", "creationTimestamp" : "2018-08-01 06:20:28.81667161 +0000 UTC", "updateTimestamp" : "2018-08-01 09:23:38.944333282 +0000 UTC" }, "spec" : { "type" : "VirtualMachine", "flavor" : "cce.s1.small", "version" : "v1.7.3-r13", "description" : "new description", "hostNetwork" : { "vpc" : "cbed56e8-03e7-4304-a477-b54bef0857c3", "subnet" : "5de50062-2be2-4a52-893e-e0906e3e9c9d" }, "containerNetwork" : { "mode" : "overlay_l2", "cidr" : "172.16.0.0/16" }, "authentication" : { "mode" : "x509", "authenticatingProxy" : { } }, "billingMode" : 0 }, "status" : { "phase" : "Available", "jobID" : "e8ebf96c-956d-11e8-a949-0255ac10575d", "endpoints" : [ { "url" : "https://192.168.0.16:5443", "type" : "Internal" } ] }}
  • URI DELETE /api/v3/projects/{project_id}/clusters/{cluster_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见如何获取接口URI中参数。 cluster_id 是 String 集群ID,获取方式请参见如何获取接口URI中参数。 表2 Query参数 参数 是否必选 参数类型 描述 delete_efs 否 String 是否删除SFS Turbo(极速文件存储卷), 枚举取值: true或block (执行删除流程,失败则阻塞后续流程) try (执行删除流程,失败则忽略,并继续执行后续流程) false或skip (跳过删除流程,默认选项) delete_eni 否 String 是否删除eni ports(原生弹性网卡), 枚举取值: true或block (执行删除流程,失败则阻塞后续流程,默认选项) try (执行删除流程,失败则忽略,并继续执行后续流程) false或skip (跳过删除流程) delete_evs 否 String 是否删除evs(云硬盘), 枚举取值: true或block (执行删除流程,失败则阻塞后续流程) try (执行删除流程,失败则忽略,并继续执行后续流程) false或skip (跳过删除流程,默认选项) delete_net 否 String 是否删除elb(弹性负载均衡)等集群Service/Ingress相关资源。 枚举取值: true或block (执行删除流程,失败则阻塞后续流程,默认选项) try (执行删除流程,失败则忽略,并继续执行后续流程) false或skip (跳过删除流程) delete_obs 否 String 是否删除obs(对象存储卷), 枚举取值: true或block (执行删除流程,失败则阻塞后续流程) try (执行删除流程,失败则忽略,并继续执行后续流程) false或skip (跳过删除流程,默认选项) delete_sfs 否 String 是否删除sfs(文件存储卷), 枚举取值: true或block (执行删除流程,失败则阻塞后续流程) try (执行删除流程,失败则忽略,并继续执行后续流程) false或skip (跳过删除流程,默认选项) delete_sfs30 否 String 是否删除sfs3.0(文件存储卷3.0), 枚举取值: true或block (执行删除流程,失败则阻塞后续流程) try (执行删除流程,失败则忽略,并继续执行后续流程) false或skip (跳过删除流程,默认选项) tobedeleted 否 String 是否使用包周期集群删除参数预置模式(仅对包周期集群生效)。 需要和其他删除选项参数一起使用,未指定的参数,则使用默认值。 使用该参数,集群不执行真正的删除,仅将本次请求的全部query参数都预置到集群数据库中,用于包周期集群退订时识别用户要删除的资源。 允许重复执行,覆盖预置的删除参数。 枚举取值: true (预置模式,仅预置query参数,不执行删除)
  • 接口介绍 API分组 应用场景 应用安全接入 本部分接口提供“鉴权”以及“刷新token”两个接口。应用服务器通过调用这两个接口获取鉴权令牌,是调用其他平台API的前提,其他接口调用都需要在请求的Header中携带参数app_key和Authorization。 app_key取值与请求参数中appId相同。 Authorization的格式为Authorization: Bearer {accessToken}。 关于应用安全接入的接口一般有两种调用模式,一种是每次业务处理前都调用一下鉴权接口重新获取token,然后用token来调用其他业务接口;另外一种是应用服务器有一个有效管理机制,通过定期地刷新token,保证在调用其他业务接口前token都是有效的。 设备管理 本部分接口提供设备管理的相关功能。设备作为一种资源,设备管理接口提供了注册设备,删除设备,修改设备信息、位置信息等。查询设备信息的接口归类在“数据采集”中。 平台的接入的设备有两种,直连设备和非直连设备。 直连设备指已实现TCP/IP协议栈的设备,它可以直接与平台进行通信,常见的设备包括网关、以太网设备、NB-IoT设备等。 非直连设备指未实现TCP/IP协议栈的设备,只能基于一些简单的近场通信协议如ZigBee、ZWave、Bluetooth或者是其他的一些非IP有线方式传输协议如串口、并口等接入,此时需要一个网关设备,先让设备接入到网关,再通过网关与华为物联网平台通信。 设备管理的接口中提供了发现非直连设备、删除非直连设备等接口。如果您的方案中不包含非直连设备,则不需要调用这两个接口。 数据采集 数据采集接口提供设备的查询、批量设备查询、设备历史数据和历史命令的查询、设备能力(即profile中定义的设备能力)查询。 当应用服务器向平台查询设备的历史数据和历史命令时,这些数据已经存储在物联网平台上,因此与设备是否在线无关。 订阅管理 物联网平台允许应用服务器订阅其所关注的事件,每一种事件的每一次订阅都会生成一个subscriptionId,应用服务器可以使用subscriptionId对本次订阅进行查询、更新、删除等操作。 平台是通过Restful接口向应用服务器推送数据的,因此应用服务器需要开发一个Restful接口来接收推送数据,这个接口的URL也需要在订阅时提供给物联网平台。由于不同事件的推送消息结构不同,因此应用服务器可以考虑为每一种事件实现一个Restful接口。 注意事项: 关于平台上的事件种类和推送的消息样例,请参考推送通知。 https推送的前提是先在平台上上传应用服务器的CA证书。 命令下发 本部分接口提供命令的创建、删除、查询、批量创建等功能。 批量处理 目前仅支持创建批量下发缓存命令任务,您也可以查询批量任务信息。 设备组管理 应用服务器可以通过本部分接口在物联网平台上管理设备组。设备组是把设备进行分组管理。一个设备可以归属到多个设备组内。 在对设备进行某些操作时(如升级设备软固件、批量下发命令等),可通过设备组来指定要进行操作的设备。 设备升级 若需要对设备进行软固件版本升级,应用服务器可调用本部分接口为多个设备创建升级任务,升级前请确保目标版本包已经上传到物联网平台。当前仅支持对CoAP接入的设备进行软固件版本升级。
  • OpenLab现场测试 合作伙伴在物联网平台上完成产品开发(包括平台侧开发、设备侧开发和应用侧开发)后,然后才可以进行OpenLab技术认证,认证流程如下。 关键操作 说明 相关资源 成为合作伙伴 提交企业相关信息,成为合作伙伴,可以申请合作伙伴的权益。 注:如果未注册华为账号,需先进行华为账号注册。 成为合作伙伴 合作方案构建 合作伙伴根据华为提供的构建指导书,提交合作方案资料。通过专业检测服务完成该方案的构建和优化。 - 合作方案技术认证 合作方案完成构建后,合作伙伴可以申请华为技术认证。通过认证的方案,将获得华为颁发的技术认证证书,同时该技术认证结果将公布到华为技术认证证书网站供合作伙伴和客户查询。 华为IoT应用认证指导(Enabled) 华为NB-IoT终端认证指导(Compatible) 华为IoT Agent Lite终端认证指导(Compatible) 华为IoT Agent Tiny终端认证指导(Compatible)
  • 认证概述 华为IoT技术认证是华为面向合作伙伴提供的IoT技术认证服务,旨在通过严谨而专业的检测技术帮助合作伙伴发现并解决自身产品的不足,缩短产品上市周期,同时联合合作伙伴向共同的客户提供经过验证的方案。通过该认证的伙伴产品将获得华为颁发的IoT技术认证证书,该证书标志着华为对双方物联网产品预集成的技术认可。 技术认证特点: 权威性:提供华为商业化平台认证服务、国家/区域重要法规认证服务、重要行业安全标准认证服务,得到许多行业客户以及运营商的认可。 全面性:完备的测试环境和专业的测试服务,从功能、性能、可靠性、安全、可维护性等为物联网产品提供端到端的软硬件能力测试,高效打造优质产品。 多渠道推广:达到一定标准的产品可以在产品中心发布,获得证书的产品不仅可以在产品中心、华为云市场发布,而且还可以享受华为提供的商业推广机会,例如展会活动、联合营销等。 方便快捷 :OpenLab认证实验室全球覆盖、线上一站式申请、线下专业人员指导,为全球合作伙伴提供贴身的技术认证服务。 华为会针对行业特点对认证产品的安全进行必要的验证,但不承担合作伙伴所属产品的安全责任。
  • 认证分类 根据产品的认证方式、认证测试内容和认证目的不同,分为Enabled和Compatible两种认证证书。 因为设备的通信技术和集成方式不同,所以将Compatible证书细化为NB-IoT Compatible、Agent Lite Compatible和Agent Tiny Compatible三种认证类型。 认证证书 认证类型 认证对象 认证测试指导 Enabled Enabled 业务应用 测试指导请参考自助测试(联通用户专用)。 Compatible NB-IoT Compatible 使用NB-IoT通信技术的设备 测试指导请参考OpenLab现场测试。 Agent Lite Compatible 集成Agent Lite SDK的设备 Agent Tiny Compatible 集成LiteOS SDK的设备 如需申请技术认证请联系oceanconnect@huawei.com。
  • 添加非直连设备 在添加非直连设备前,确认非直连设备的profile已经上传了,详见上传Profile并注册设备步骤。 在设备或网关登录成功后就可以调用HubService.addDevice(int cookie, IotaDeviceInfo deviceInfo)接口添加非直连设备。 这里非直连设备的设备固有信息是测试数据。真实情况下,网关往往需要跟具体的非直连设备交互,才能得到具体的设备固有信息。 1 2 3 4 5 6 7 8 91011121314 private void addSensor() { SharedPreferences preferences = getSharedPreferences("AgentLiteDemo", MODE_PRIVATE); if (preferences.getString("SENSORID", null) != null) { Toast.makeText(this, "The sensor is already added.", Toast.LENGTH_SHORT).show(); return; } LogUtil.i(this, TAG, "addSensor!"); int cookie; Random random = new Random(); cookie = random.nextInt(65535); IotaDeviceInfo deviceInfo = new IotaDeviceInfo("0123456test", "Huawei", "Motion", "test01", "MQTT"); HubService.addDevice(cookie, deviceInfo);} 注册广播接收器对添加设备结果进行相应处理。添加非直连设备成功后就能从广播中得到非直连设备的“deviceId”。 1 LocalBroadcastManager.getInstance(this).registerReceiver(addDeviceReceiver, new IntentFilter(HubService.TOPIC_ADDDEV_RSP)); 非直连设备添加成功后可以在“设备列表”中看到新增一条记录。
共100000条