华为云用户手册

  • 摘要文件签名 摘要文件的签名信息位于摘要文件对象的两个元数据属性中。每个摘要文件都有如下两个元数据项: meta-signature 摘要文件签名的十六进制编码值。下面是示例签名: 7af7cbef4f3c78eab5048030d402810841400cf70eb22f93d4fedd13b13a8208a5dc04ce2f8bd0a4918f933ca3fcb17595ae59386a2dc3e3046fa97688a9815a2d036fa10193534c0ebbecff67221e22ac9cf8b781cbae3a81eaccfc0a2bd1a99081b1e4fe99b19caa771876ba7cce16d002feb4578cd89bc6f1faaca639ab48f3cb56007bcc5e248968f4a17a95b8cdbc7d8bbd7c63630da878cd4d471fc75c60bac5f730d94fefe8fdd2f2fa8accd62dbe100eab7773e7915e91be4474291b9dacea63a8267390bcb4855b5825554ebb07d4a29ce077c364213c575c461d1e9fafa0c29fde1c6de1d5630e015200821b2f3ae91e53cd8591433dd7c0b4c8bc meta-signature-algorithm 摘要文件签名的算法。下面是示例算法: SHA256withRSA 父主题: 摘要文件
  • 摘要文件结构 表1 摘要文件的关键字段 字段名称 是否必选 类型 描述 project_id 是 String 摘要文件记录的事件的用户ID。 digest_start_time 是 String 摘要文件记录的事件文件的起始UTC时间。 digest_end_time 是 String 摘要文件记录的事件文件的结束UTC时间。 digest_bucket 是 String 摘要文件提交到的OBS桶的名称。 digest_object 是 String 摘要文件存储在OBS桶中的位置。 digest_signature_algorithm 是 String 用于对摘要文件进行签名的算法。 digest_end 是 Boolean 该摘要文件是否为摘要结束文件。 previous_digest_bucket 否 String 前一摘要文件提交到的OBS桶的名称。 previous_digest_object 否 String 前一摘要文件存储在OBS桶中的位置。 previous_digest_hash_value 否 String 前一摘要文件的十六进制编码哈希值。 previous_digest_hash_algorithm 否 String 用于对前一摘要文件进行哈希处理的哈希算法。 previous_digest_signature 否 String 前一摘要文件的数字签名。 previous_digest_end 是 Boolean 前一摘要文件是否为摘要结束文件。 log_files 否 Array 摘要文件记录的事件文件列表。 bucket 是 String 事件文件提交到的OBS桶的名称。 object 是 String 事件文件存储在OBS桶中的位置。 log_hash_value 是 String 事件文件的十六进制编码哈希值。 log_hash_algorithm 是 String 用于对事件文件进行哈希处理的哈希算法。 父主题: 摘要文件
  • 支持审计的关键操作 云审计 服务(CloudTrace Service,以下简称 CTS )为您提供云服务资源的操作记录,供您查询、审计和回溯使用。 通过云审计服务,您可以记录云审计自身服务相关的操作事件,便于日后的查询、审计和回溯。 表1 云审计服务支持的自身服务操作列表 操作名称 资源类型 事件名称 创建追踪器 tracker createTracker 修改追踪器 tracker updateTracker 停用追踪器 tracker updateTracker 启用追踪器 tracker updateTracker 删除追踪器 tracker deleteTracker 创建关键操作通知 notification createNotification 删除关键操作通知 notification deleteNotification 修改关键操作通知 notification updateNotification 修改关键操作通知状态 notification updateNotificationStatus 导出事件列表事件 trace getTrace
  • 异步调用 执行异步调用示例命令,参数说明请参见表3。 hcloud FunctionGraph AsyncInvokeFunction --cli-region="cn-east-3" --function_urn="urn:fss:cn-east-3:******:function:default:hcloud-invoke:latest" --project_id="******" --key="value" 表3 参数说明 参数 是否必须 描述 --cli-region 是 调用函数所在region。 --function_urn 是 函数的URN(Uniform Resource Name),唯一标识函数。 --project_id 是 租户Project ID。 请求体 是 通过--key="value"方式指定请求体,其对应的json结构:{ "key":"value"}。 输出结果如图3所示,输出的响应参数请参见表2。 图3 输出结果 表4 响应参数说明 参数 参数类型 描述 request_id String 请求ID
  • 同步调用 执行同步调用示例命令,参数说明请参见表1。 hcloud FunctionGraph InvokeFunction --cli-region="ap-southeast-1" --X-Cff-Log-Type="tail" --X-CFF-Request-Version="v1" --function_urn="urn:fss:cn-east-3:******:function:default:hcloud-invoke:latest" --project_id="******" --key="value" 表1 参数说明 参数 是否必须 描述 --cli-region 是 调用函数所在region。 --function_urn 是 函数的URN(Uniform Resource Name),唯一标识函数。 --project_id 是 租户Project ID。 --X-Cff-Log-Type 否 tail(header里面返回函数执行后的4K日志),或者为空(不返回日志)。 X-CFF-Request-Version 否 返回体格式:取值v0,v1。 v0:默认返回文本格式。 v1:默认返回json格式,sdk需要使用此值。 Body 是 通过--key="value"方式指定请求体,其对应的json结构:{ "key":"value"}。 输出结果如图2所示,输出的响应参数请参见表2。 图2 输出结果 表2 响应参数 参数 参数类型 描述 request_id String 请求ID result String 函数执行结果 log String 函数执行返回日志 status Integer 函数执行返回状态 error_code String 错误码
  • 获取CLI工具 CLI工具支持64位的Linux x86系统及64位Windows系统,以及Mac系统,具体下载地址如表1所示。 表1 下载地址 系统 下载 软件包校验文件 参考文档 Linux CLI命令行工具下载 CLI命令行工具下载.sha256 KooCLI介绍 Windows CLI命令行工具下载 CLI命令行工具下载.sha256 Mac CLI命令行工具下载 CLI命令行工具下载.sha256
  • 请求示例 创建一个节点池,计费模式为按需计费,节点数量为0,节点池规格为2U4G,节点操作系统为EulerOS 2.5,使用Docker容器引擎。节点系统盘和数据盘大小分别为40GB和100GB,磁盘类型均为高IO。 { "kind" : "NodePool", "apiVersion" : "v3", "metadata" : { "name" : "lc-it-nodepool-79796" }, "spec" : { "initialNodeCount" : 0, "type" : "vm", "autoscaling" : { "enable" : false, "minNodeCount" : 0, "maxNodeCount" : 1, "scaleDownCooldownTime" : 0, "priority" : 0 }, "nodeManagement" : { "serverGroupReference" : "" }, "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" } } ], "billingMode" : 0, "extendParam" : { "alpha.cce/preInstall" : "", "alpha.cce/postInstall" : "", "alpha.cce/NodeImageID" : "", "maxPods" : 110 }, "nodeNicSpec" : { "primaryNic" : { "subnetId" : "7e767d10-7548-4df5-ad72-aeac1d08bd8a" } } }, "podSecurityGroups" : [ { "id" : "" } ] }}
  • 响应示例 状态码: 201 表示在指定集群下创建节点池的作业下发成功。 { "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" : { "alpha.cce/NodeImageID" : "", "alpha.cce/postInstall" : "", "alpha.cce/preInstall" : "", "maxPods" : 110 }, "k8sTags" : { "cce.cloud.com/cce-nodepool" : "lc-it-nodepool-79796" } }, "autoscaling" : { "maxNodeCount" : 1 }, "nodeManagement" : { } }, "status" : { "phase" : "" }}
  • IAM 支持的授权项 策略包含系统策略和自定义策略,如果系统策略不满足授权要求,管理员可以创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与API相对应,授权项列表说明如下: 权限:允许或拒绝某项操作。 对应API接口:自定义策略实际调用的API接口。 授权项:自定义策略中支持的Action,在自定义策略中的Action中写入授权项,可以实现授权项对应的权限功能。 依赖的授权项:部分Action存在对其他Action的依赖,需要将依赖的Action同时写入授权项,才能实现对应的权限功能。 IAM项目(Project)/企业项目(Enterprise Project):自定义策略的授权范围,包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目,表示此授权项对应的自定义策略,可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目,不支持企业项目,表示仅能在IAM中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。关于IAM项目与企业项目的区别,详情请参见:IAM与企业管理的区别。 “√”表示支持,“x”表示暂不支持。 云容器引擎(CCE)支持的自定义策略授权项如下所示: 表1 Cluster 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目 (Enterprise Project) 获取指定项目下的集群 GET /api/v3/projects/{project_id}/clusters cce:cluster:list √ √ 获取指定的集群 GET /api/v3/projects/{project_id}/clusters/{cluster_id} cce:cluster:get √ √ 创建集群 POST /api/v3/projects/{project_id}/clusters cce:cluster:create √ √ 更新指定的集群 PUT /api/v3/projects/{project_id}/clusters/{cluster_id} cce:cluster:update √ √ 删除集群 DELETE /api/v3/projects/{project_id}/clusters/{cluster_id} cce:cluster:delete √ √ 升级集群 POST /api/v2/projects/:projectid/clusters/:clusterid/upgrade cce:cluster:upgrade √ √ 唤醒集群 POST /api/v3/projects/{project_id}/clusters/{cluster_id}/operation/awake cce:cluster:start √ √ 休眠集群 POST /api/v3/projects/{project_id}/clusters/{cluster_id}/operation/hibernate cce:cluster:stop √ √ 变更集群规格 POST /api/v2/projects/{project_id}/clusters/:clusterid/resize cce:cluster:resize √ √ 获取集群证书 POST /api/v3/projects/{project_id}/clusters/{cluster_id}/clustercert cce:cluster:get √ √ 表2 Node 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 获取集群下所有节点 GET /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes cce:node:list √ √ 获取指定的节点 GET /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/{node_id} cce:node:get √ √ 创建节点 POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes cce:node:create √ √ 更新指定的节点 PUT /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/{node_id} cce:node:update √ √ 删除节点 DELETE /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/{node_id} cce:node:delete √ √ 表3 Job 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 获取任务信息 GET /api/v3/projects/{project_id}/jobs/{job_id} cce:job:get √ √ 列出所有任务 GET /api/v2/projects/{project_id}/jobs cce:job:list √ √ 删除所有任务或删除单个任务 DELETE /api/v2/projects/{project_id}/jobs DELETE /api/v2/projects/{project_id}/jobs/{job_id} cce:job:delete √ √ 表4 Nodepool 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 获取集群下所有节点池 GET /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools cce:nodepool:list √ √ 获取节点池 GET /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools/{nodepool_id} cce:nodepool:get √ √ 创建节点池 POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools cce:nodepool:create √ √ 更新节点池信息 PUT /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools/{nodepool_id} cce:nodepool:update √ √ 删除节点池 DELETE /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools/{nodepool_id} cce:nodepool:delete √ √ 表5 Chart 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 更新模板 PUT /v2/charts/{id} cce:chart:update √ × 上传模板 POST /v2/charts cce:chart:upload √ × 列出所有模板 GET /v2/charts cce:chart:list √ × 获取模板信息 GET /v2/charts/{id} cce:chart:get √ × 删除模板 DELETE /v2/charts/{id} cce:chart:delete √ × 表6 Release 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 更新升级模板实例 PUT /v2/releases/{name} cce:release:update √ √ 列出所有模板实例 GET /v2/releases cce:release:list √ √ 创建模板实例 POST /v2/releases cce:release:create √ √ 获取模板实例信息 GET /v2/releases/{name} cce:release:get √ √ 删除模板实例 DELETE /v2/releases/{name} cce:release:delete √ √ 表7 Storage 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 创建PersistentVolumeClaim POST /api/v1/namespaces/{namespace}/cloudpersistentvolumeclaims cce:storage:create √ √ 删除PersistentVolumeClaim DELETE /api/v1/namespaces/{namespace}/cloudpersistentvolumeclaims/{name} cce:storage:delete √ √ 列出所有磁盘 GET /storage/api/v1/namespaces/{namespace}/listvolumes cce:storage:list √ √ 表8 Addon 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 创建插件实例 POST /api/v3/addons cce:addonInstance:create √ √ 获取插件实例 GET /api/v3/addons/{id}?cluster_id={cluster_id} cce:addonInstance:get √ √ 列出所有插件实例 GET /api/v3/addons?cluster_id={cluster_id} cce:addonInstance:list √ √ 删除插件实例 DELETE /api/v3/addons/{id}?cluster_id={cluster_id} cce:addonInstance:delete √ √ 更新升级插件实例 PUT /api/v3/addons/{id} cce:addonInstance:update √ √ 表9 Quota 权限 对应API接口 授权项 IAM项目(Project) 企业项目 (Enterprise Project) 查询配额详情 GET /api/v3/projects/{project_id}/quotas cce:quota:get √ √
  • 调用API获取项目ID 项目ID可以通过调用查询指定条件下的项目列表API获取。 获取项目ID的接口为“GET https://{Endpoint}/v3/projects”,其中{Endpoint}为IAM的终端节点,可以从终端节点(Endpoint)获取。接口的认证鉴权请参见认证鉴权。 响应示例如下,其中projects下的“id”即为项目ID。 { "projects": [ { "domain_id": "65382450e8f64ac0870cd180d14e684b", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d14e684b", "name": "project_name", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f897d6b99" }, "id": "a4a5d4098fb4474fa22cd05f897d6b99", "enabled": true } ], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" }}
  • 响应示例 状态码: 200 表示获取集群列表成功。 { "kind" : "Cluster", "apiVersion" : "v3", "items" : [ { "kind" : "Cluster", "apiVersion" : "v3", "metadata" : { "alias" : "mycluster", "name" : "mycluster", "uid" : "4d1ecb2c-229a-11e8-9c75-0255ac100ceb", "creationTimestamp" : "2018-08-02 03:48:58.968214406 +0000 UTC", "updateTimestamp" : "2018-08-02 04:05:29.386391813 +0000 UTC" }, "spec" : { "type" : "VirtualMachine", "flavor" : "cce.s1.small", "version" : "v1.7.3-r13", "description" : "awesome cluster", "customSan" : [ "192.168.1.0", "example.com" ], "hostNetwork" : { "vpc" : "f0c12911-4fdb-4284-9230-7ffb0860826a", "subnet" : "ac274229-fd2e-4695-9f01-a0c1372b8006" }, "containerNetwork" : { "mode" : "overlay_l2", "cidr" : "172.16.0.0/16" }, "authentication" : { "mode" : "x509", "authenticatingProxy" : { } }, "billingMode" : 0 }, "status" : { "phase" : "Available", "endpoints" : [ { "url" : "https://192.168.0.11:5443", "type" : "Internal" } ] } } ]}
  • URI GET /api/v3/projects/{project_id}/clusters 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见如何获取接口URI中参数。 表2 Query参数 参数 是否必选 参数类型 描述 detail 否 String 查询集群详细信息。 若设置为true,获取集群下节点总数(totalNodesNumber)、正常节点数(activeNodesNumber)、CPU总量(totalNodesCPU)、内存总量(totalNodesMemory)、已安装插件列表(installedAddonInstances),已安装插件列表中包含名称(addonTemplateName)、版本号(version)、插件的状态信息(status),放入到annotation中。 status 否 String 集群状态,取值如下 Available:可用,表示集群处于正常状态。 Unavailable:不可用,表示集群异常,需手动删除。 ScalingUp:扩容中,表示集群正处于扩容过程中。 ScalingDown:缩容中,表示集群正处于缩容过程中。 Creating:创建中,表示集群正处于创建过程中。 Deleting:删除中,表示集群正处于删除过程中。 Upgrading:升级中,表示集群正处于升级过程中。 Resizing:规格变更中,表示集群正处于变更规格中。 RollingBack:回滚中,表示集群正处于回滚过程中。 RollbackFailed:回滚异常,表示集群回滚异常。 Hibernating:休眠中,表示集群正处于休眠过程中。 Hibernation:已休眠,表示集群正处于休眠状态。 Awaking:唤醒中,表示集群正处于从休眠状态唤醒的过程中。 Empty:集群无任何资源(已废弃) type 否 String 集群类型: VirtualMachine:CCE集群 ARM64:鲲鹏集群 version 否 String 集群版本过滤
  • 基本概念 帐号 用户注册时的帐号,帐号对其所拥有的资源及云服务具有完全的访问权限,可以重置用户密码、分配用户权限等。由于帐号是付费主体,为了确保帐号安全,建议您不要直接使用帐号进行日常管理工作,而是创建用户并使用用户进行日常管理工作。 用户 由帐号在IAM中创建的用户,是云服务的使用人员,具有身份凭证(密码和访问密钥)。 在我的凭证下,您可以查看帐号ID和IAM用户ID。通常在调用API的鉴权过程中,您需要用到帐号、用户和密码等信息。 区域(Region) 从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 详情请参见区域和可用区。 可用区(AZ,Availability Zone) 一个可用区是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 项目 区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计算资源、存储资源和网络资源),以默认项目为单位进行授权,用户可以访问您帐号中该区域的所有资源。如果您希望进行更加精细的权限控制,可以在区域默认的项目中创建子项目,并在子项目中创建资源,然后以子项目为单位进行授权,使得用户仅能访问特定子项目中的资源,使得资源的权限控制更加精确。 图1 项目隔离模型 同样在我的凭证下,您可以查看项目ID。 企业项目 企业项目是项目的升级版,针对企业不同项目间的资源进行分组和管理,是逻辑隔离。企业项目中可以包含多个区域的资源,且项目中的资源可以迁入迁出。 关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理用户指南》。 父主题: 使用前必读
  • 响应示例 状态码: 200 表示更新指定集群成功。 { "kind" : "Cluster", "apiVersion" : "v3", "metadata" : { "alias" : "mycluster", "name" : "mycluster", "uid" : "4d1ecb2c-229a-11e8-9c75-0255ac100ceb", "creationTimestamp" : "2018-08-02 03:48:58.968214406 +0000 UTC", "updateTimestamp" : "2018-08-02 06:39:36.844676088 +0000 UTC" }, "spec" : { "type" : "VirtualMachine", "flavor" : "cce.s1.small", "version" : "v1.7.3-r13", "description" : "new description", "customSan" : [ "192.168.1.0", "example.com" ], "hostNetwork" : { "vpc" : "4d1ecb2c-229a-11e8-9c75-0255ac100ceb", "subnet" : "4d1ecb2c-229a-11e8-9c75-0255ac100ceb", "SecurityGroup" : "6ee29825-8f49-4796-b33a-fc76f84a59ae" }, "containerNetwork" : { "mode" : "overlay_l2", "cidr" : "172.17.0.0/16" }, "authentication" : { "mode" : "x509", "authenticatingProxy" : { } }, "billingMode" : 0 }, "status" : { "phase" : "Available", "endpoints" : [ { "url" : "https://192.168.0.11:5443", "type" : "Internal" } ] }}
  • 请求示例 仅更新集群描述 { "spec" : { "description" : "new description" }} 仅更新集群自定义证书SAN { "spec" : { "customSan" : [ "192.168.1.0", "example.com" ] }} 同时更新集群描述和自定义证书SAN { "spec" : { "description" : "new description", "customSan" : [ "192.168.1.0", "example.com" ] }} 添加集群容器网段(v1.21版本以上VPC网络模型的集群适用) { "spec" : { "containerNetwork" : { "cidrs" : [ { "cidr" : "10.10.0.0/16" }, { "cidr" : "10.11.0.0/16" } ] } }} 修改集群默认节点安全组 /api/v3/projects/{project_id}/clusters/{cluster_id}{ "spec" : { "hostNetwork" : { "SecurityGroup" : "6ee29825-8f49-4796-b33a-fc76f84a59ae" } }}
  • URI GET /api/v3/projects/{project_id}/clusters/{cluster_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见如何获取接口URI中参数。 cluster_id 是 String 集群ID,获取方式请参见如何获取接口URI中参数。 表2 Query参数 参数 是否必选 参数类型 描述 detail 否 String 查询集群详细信息。 若设置为true,获取集群下节点总数(totalNodesNumber)、正常节点数(activeNodesNumber)、CPU总量(totalNodesCPU)、内存总量(totalNodesMemory)和已安装插件列表(installedAddonInstances),已安装插件列表中包含名称(addonTemplateName)、版本号(version)、插件的状态信息(status),放入到annotation中。
  • 响应示例 状态码: 200 表示获取指定集群成功。 { "kind" : "Cluster", "apiVersion" : "v3", "metadata" : { "alias" : "mycluster", "name" : "mycluster", "uid" : "4d1ecb2c-229a-11e8-9c75-0255ac100ceb", "creationTimestamp" : "2018-08-02 03:48:58.968214406 +0000 UTC", "updateTimestamp" : "2018-08-02 04:05:29.386391813 +0000 UTC" }, "spec" : { "type" : "VirtualMachine", "flavor" : "cce.s1.small", "version" : "v1.7.3-r13", "description" : "this is a demo cluster", "customSan" : [ "192.168.1.0", "example.com" ], "hostNetwork" : { "vpc" : "4d1ecb2c-229a-11e8-9c75-0255ac100ceb", "subnet" : "4d1ecb2c-229a-11e8-9c75-0255ac100ceb" }, "containerNetwork" : { "mode" : "overlay_l2", "cidr" : "172.16.0.0/16" }, "authentication" : { "mode" : "x509", "authenticatingProxy" : { } }, "billingMode" : 0 }, "status" : { "phase" : "Available", "endpoints" : [ { "url" : "https://192.168.0.11:5443", "type" : "Internal" } ] }}
  • 请求消息头 附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 详细的公共请求消息头字段请参见表3。 表3 公共请求消息头 名称 描述 是否必选 示例 Host 请求的服务器信息,从服务API的URL中获取。值为hostname[:port]。端口缺省时使用默认的端口,https的默认端口为443。 否 使用AK/SK认证时该字段必选。 code.test.com or code.test.com:443 Content-Type 消息体的类型(格式)。推荐用户使用默认值application/json,有其他取值时会在具体接口中专门说明。 是 application/json Content-Length 请求body长度,单位为Byte。 否 3495 X-Project-Id project id,项目编号。请参考获取项目ID章节获取项目编号。 否 如果是专属云场景采用AK/SK认证方式的接口请求或者多project场景采用AK/SK认证的接口请求,则该字段必选。 e9993fc787d94b6c886cbaa340f9c0f4 X-Auth-Token 用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头(Headers)中包含的“X-Subject-Token”的值即为Token值。 否 使用Token认证时该字段必选。 注:以下仅为Token示例片段 MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ API同时支持使用AK/SK认证,AK/SK认证是使用SDK对请求进行签名,签名过程会自动往请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。 AK/SK认证的详细说明请参见认证鉴权的“AK/SK认证”。 对于获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添加消息头后的请求如下所示。 12 POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokensContent-Type: application/json
  • 请求消息体(可选) 该部分可选。请求消息体通常以结构化格式(如JSON或XML)发出,与请求消息头中Content-Type对应,传递除请求消息头之外的内容。若请求消息体中的参数支持中文,则中文字符必须为UTF-8编码。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中username为用户名,domainname为用户所属的帐号名称,********为用户登录密码,xxxxxxxxxxxxxxxxxx为project的名称,您可以从地区和终端节点获取。 scope参数定义了Token的作用域,下面示例中获取的Token仅能访问project下的资源。您还可以设置Token的作用域为某个帐号下所有资源或帐号的某个project下的资源,详细定义请参见获取用户Token。 1 2 3 4 5 6 7 8 91011121314151617181920212223242526 POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokensContent-Type: application/json{ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxxxxxxxxxxxx" } } }} 到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中“x-subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。
  • 请求URI 请求URI由如下部分组成: {URI-scheme}://{Endpoint}/{resource-path}?{query-string} 尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。 表1 URI中的参数说明 参数 描述 URI-scheme 表示用于传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint 指定承载REST服务端点的服务器 域名 或IP,不同服务不同区域的Endpoint不同,您可以从地区和终端节点获取。 例如IAM服务在“华北-北京四”区域的Endpoint为“iam.cn-north-4.myhuaweicloud.com”。 resource-path 资源路径,也即API访问路径。从具体API的URI模块获取,例如“获取用户Token”API的resource-path为“/v3/auth/tokens”。 query-string 查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“?limit=10”,表示查询不超过10条数据。 例如您需要获取IAM在“华北-北京四”区域的Token,则需使用“华北-北京四”区域的Endpoint(iam.cn-north-4.myhuaweicloud.com),并在获取用户Token的URI部分找到resource-path(/v3/auth/tokens),拼接起来如下所示。 1 https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens 图1 URI示意图 为查看方便,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以简洁起见将这两部分省略。
  • 请求方法 HTTP请求方法(也称为操作或动词),它告诉服务你正在请求什么类型的操作。 表2 HTTP方法 方法 说明 GET 请求服务器返回指定资源。 PUT 请求服务器更新指定资源。 POST 请求服务器新增资源或执行特殊操作。 DELETE 请求服务器删除指定资源,如删除对象等。 HEAD 请求服务器资源头部。 PATCH 请求服务器更新资源的部分内容。 当资源不存在的时候,PATCH可能会去创建一个新的资源。 在获取用户Token的URI部分,您可以看到其请求方法为“POST”,则其请求为: 1 POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens
  • Kubernetes API API 功能 URI Node 获取指定的Node GET /api/v1/nodes/{name} 列出所有的Node GET /api/v1/nodes 更新指定的Node PATCH /api/v1/nodes/{name} Namespace 创建Namespace POST /api/v1/namespaces 删除Namespace DELETE /api/v1/namespaces/{name} 获取指定的Namespace GET /api/v1/namespaces/{name} 替换指定的Namespace PUT /api/v1/namespaces/{name} 替换指定的Namespace的状态 PUT /api/v1/namespaces/{name}/status 替换指定的Namespace的Finalize值 PUT /api/v1/namespaces/{name}/finalize 列出Namespace GET /api/v1/namespaces 更新指定的Namespace PATCH /api/v1/namespaces/{name} Resourcequotas 获取Resourcequotas GET /api/v1/resourcequotas 创建Resourcequota POST /api/v1/namespaces/{namespace}/resourcequotas 更新Resourcequota PUT /api/v1/namespaces/{namespace}/resourcequotas/{name} 删除Resourcequota DELETE /api/v1/namespaces/{namespace}/resourcequotas/{name} Pod 创建Pod POST /api/v1/namespaces/{namespace}/pods 删除Pod DELETE /api/v1/namespaces/{namespace}/pods/{name} 删除所有的Pod DELETE /api/v1/namespaces/{namespace}/pods 获取指定的Pod GET /api/v1/namespaces/{namespace}/pods/{name} 替换指定的Pod PUT /api/v1/namespaces/{namespace}/pods/{name} 替换指定的Pod的状态 PUT /api/v1/namespaces/{namespace}/pods/{name}/status 列出指定Namespaces下的所有Pod GET /api/v1/namespaces/{namespace}/pods 列出Pod GET /api/v1/pods 更新指定的Pod PATCH /api/v1/namespaces/{namespace}/pods/{name} Deployment 创建Deployment POST /apis/apps/v1/namespaces/{namespace}/deployments 创建Deployment的回滚操作 PATCH /apis/apps/v1/namespaces/{namespace}/deployments/{name} (仅适用于1.17及以上版本的集群) POST /apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}/rollback (仅适用于1.15及以下版本的集群) POST /apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/rollback (仅适用于1.15及以下版本的集群) 删除Deployment DELETE /apis/apps/v1/namespaces/{namespace}/deployments/{name} 删除所有的Deployment DELETE /apis/apps/v1/namespaces/{namespace}/deployments 获取指定的Deployment GET /apis/apps/v1/namespaces/{namespace}/deployments/{name} 获取指定的Deployment的状态 GET /apis/apps/v1/namespaces/{namespace}/deployments/{name}/status 获取指定的Deployment的伸缩操作 GET /apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale 替换指定的Deployment PUT /apis/apps/v1/namespaces/{namespace}/deployments/{name} 替换指定的Deployment的状态 PUT /apis/apps/v1/namespaces/{namespace}/deployments/{name}/status 替换指定的Deployment的伸缩操作 PUT /apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale 列出指定Namespace下的Deployment GET /apis/apps/v1/namespaces/{namespace}/deployments 列出所有的Deployment GET /apis/apps/v1/deployments 更新指定的Deployment PATCH /apis/apps/v1/namespaces/{namespace}/deployments/{name} 更新指定的Deployment的状态 PATCH /apis/apps/v1/namespaces/{namespace}/deployments/{name}/status 更新指定的Deployment的伸缩操作 PATCH /apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale Statefulset 创建StatefulSet POST /apis/apps/v1/namespaces/{namespace}/statefulsets 删除指定的StatefulSet DELETE /apis/apps/v1/namespaces/{namespace}/statefulsets/{name} 删除所有的StatefulSet DELETE /apis/apps/v1/namespaces/{namespace}/statefulsets 获取指定的StatefulSet GET /apis/apps/v1/namespaces/{namespace}/statefulsets/{name} 获取指定的StatefulSet的状态 GET /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status 替换指定的StatefulSet PUT /apis/apps/v1/namespaces/{namespace}/statefulsets/{name} 替换指定的StatefulSet的状态 PUT /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status 列出指定Namespace下的StatefulSet GET /apis/apps/v1/namespaces/{namespace}/statefulsets 列出所有的StatefulSet GET /apis/apps/v1/statefulsets 更新指定的StatefulSet PATCH /apis/apps/v1/namespaces/{namespace}/statefulsets/{name} 更新指定的StatefulSet的状态 PATCH /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status Daemonset 创建DaemonSet POST /apis/apps/v1/namespaces/{namespace}/daemonsets 删除指定的DaemonSet DELETE /apis/apps/v1/namespaces/{namespace}/daemonsets/{name} 删除所有的Daemonset DELETE /apis/apps/v1/namespaces/{namespace}/daemonsets 获取指定的DaemonSet GET /apis/apps/v1/namespaces/{namespace}/daemonsets/{name} 获取指定的DaemonSet的状态 GET /apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status 更新指定的DaemonSet PATCH /apis/apps/v1/namespaces/{namespace}/daemonsets/{name} 更新指定的DaemonSet的状态 PATCH /apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status 列出所有的DaemonSet GET /apis/apps/v1/daemonsets 列出指定Namespace下的DaemonSet GET /apis/apps/v1/namespaces/{namespace}/daemonsets 替换指定的DaemonSet PUT /apis/apps/v1/namespaces/{namespace}/daemonsets/{name} 替换指定的DaemonSet的状态 PUT /apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status Job 创建Job POST /apis/batch/v1/namespaces/{namespace}/jobs 删除Job DELETE /apis/batch/v1/namespaces/{namespace}/jobs/{name} 删除所有的Job DELETE /apis/batch/v1/namespaces/{namespace}/jobs 获取指定的Job GET /apis/batch/v1/namespaces/{namespace}/jobs/{name} 获取指定的Job的状态 GET /apis/batch/v1/namespaces/{namespace}/jobs/{name}/status 替换指定的Job PUT /apis/batch/v1/namespaces/{namespace}/jobs/{name} 替换指定的Job的状态 PUT /apis/batch/v1/namespaces/{namespace}/jobs/{name}/status 列出指定Namespace下的Job GET /apis/batch/v1/namespaces/{namespace}/jobs 列出所有Job GET /apis/batch/v1/jobs 更新指定的Job的状态 PATCH /apis/batch/v1/namespaces/{namespace}/jobs/{name}/status 更新指定的Job PATCH /apis/batch/v1/namespaces/{namespace}/jobs/{name} CronJob 创建CronJob POST /apis/batch/v1beta1/namespaces/{namespace}/cronjobs 删除CronJob DELETE /apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name} 删除所有的CronJob DELETE /apis/batch/v1beta1/namespaces/{namespace}/cronjobs 获取指定的CronJob GET /apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name} 获取指定的CronJob的状态 GET /apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}/status 替换指定的CronJob PUT /apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name} 替换指定的CronJob的状态 PUT /apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}/status 列出指定Namespace下的CronJob GET /apis/batch/v1beta1/namespaces/{namespace}/cronjobs 列出所有的CronJob GET /apis/batch/v1beta1/cronjobs 更新指定的CronJob的状态 PATCH /apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}/status 更新指定的CronJob PATCH /apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name} ReplicaSet 列出指定的ReplicaSet GET /apis/apps/v1/namespaces/{namespace}/replicasets 获取指定的ReplicaSet GET /apis/apps/v1/namespaces/{namespace}/replicasets/{name} 获取Replicasets GET /apis/apps/v1/replicasets ReplicationController 创建ReplicationController POST /api/v1/namespaces/{namespace}/replicationcontrollers 删除ReplicationController DELETE /api/v1/namespaces/{namespace}/replicationcontrollers/{name} 删除所有的ReplicationController DELETE /api/v1/namespaces/{namespace}/replicationcontrollers 获取指定Namespace下的ReplicationController GET /api/v1/namespaces/{namespace}/replicationcontrollers/{name} 替换指定Namespace下的ReplicationController PUT /api/v1/namespaces/{namespace}/replicationcontrollers/{name} 替换指定Namespace下的ReplicationController状态 PUT /api/v1/namespaces/{namespace}/replicationcontrollers/{name}/status 列出指定Namespace下的ReplicationController GET /api/v1/namespaces/{namespace}/replicationcontrollers 列出ReplicationController GET /api/v1/replicationcontrollers 更新指定的ReplicationController PATCH /api/v1/namespaces/{namespace}/replicationcontrollers/{name} Endpoints 创建Endpoints POST /api/v1/namespaces/{namespace}/endpoints 删除Endpoints DELETE /api/v1/namespaces/{namespace}/endpoints/{name} 删除所有的Endpoints DELETE /api/v1/namespaces/{namespace}/endpoints 获取指定的Endpoints GET /api/v1/namespaces/{namespace}/endpoints/{name} 替换指定的Endpoints PUT /api/v1/namespaces/{namespace}/endpoints/{name} 列出Endpoints GET /api/v1/endpoints 列出指定Namespace下的Endpoints GET /api/v1/namespaces/{namespace}/endpoints 更新指定的Endpoints PATCH /api/v1/namespaces/{namespace}/endpoints/{name} Service 创建Service POST /api/v1/namespaces/{namespace}/services 删除指定的Service DELETE /api/v1/namespaces/{namespace}/services/{name} 获取指定的Service GET /api/v1/namespaces/{namespace}/services/{name} 替换指定的Service PUT /api/v1/namespaces/{namespace}/services/{name} 列出指定Namespace下的Service GET /api/v1/namespaces/{namespace}/services 列出Service GET /api/v1/services 更新指定的Service PATCH /api/v1/namespaces/{namespace}/services/{name} Ingress 创建Ingress POST /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses (仅适用于1.21及以上版本) POST /apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses (仅适用于1.15至1.21版本) POST /apis/extensions/v1beta1/namespaces/{namespace}/ingresses (仅适用于1.15以下版本) 更新指定的Ingress PATCH /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name} (仅适用于1.21及以上版本) PATCH /apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses/{name} (仅适用于1.15至1.21版本) PATCH /apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name} (仅适用于1.15以下版本) 替换指定的Ingress PUT /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name} (仅适用于1.21及以上版本) PUT /apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses/{name} (仅适用于1.15至1.21版本) PUT /apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name} (仅适用于1.15以下版本) 删除Ingress DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name} (仅适用于1.21及以上版本) DELETE /apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses/{name} (仅适用于1.15至1.21版本) DELETE /apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name} (仅适用于1.15以下版本) 删除所有的Ingress DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses (仅适用于1.21及以上版本) DELETE /apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses (仅适用于1.15至1.21版本) DELETE /apis/extensions/v1beta1/namespaces/{namespace}/ingresses (仅适用于1.15以下版本) 获取指定的Ingress GET /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name} (仅适用于1.21及以上版本) GET /apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses/{name} (仅适用于1.15至1.21版本) GET /apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name} (仅适用于1.15以下版本) 列出指定Namespace下的Ingress GET /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses (仅适用于1.21及以上版本) GET /apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses (仅适用于1.15至1.21版本) GET /apis/extensions/v1beta1/namespaces/{namespace}/ingresses (仅适用于1.15以下版本) 获取Ingress列表 GET /apis/networking.k8s.io/v1/ingresses (仅适用于1.21及以上版本) GET /apis/networking.k8s.io/v1beta1/ingresses (仅适用于1.15至1.21版本) GET /apis/extensions/v1beta1/ingresses (仅适用于1.15以下版本) 获取指定Namespace下的某个Ingress对象的状态 GET /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}/status (仅适用于1.21及以上版本) GET /apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses/{name}/status (仅适用于1.15至1.21版本) GET /apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}/status (仅适用于1.15以下版本) 替换指定Namespace下的某个Ingress对象的状态 PUT /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}/status (仅适用于1.21及以上版本) PUT /apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses/{name}/status (仅适用于1.15至1.21版本) PUT /apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}/status (仅适用于1.15以下版本) 更新指定Namespace下的某个Ingress对象的状态 PATCH /apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}/status (仅适用于1.21及以上版本) PATCH /apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses/{name}/status (仅适用于1.15至1.21版本) PATCH /apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}/status (仅适用于1.15以下版本) NetworkPolicy 创建networkpolicy POST /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies 更新指定的networkpolicy PATCH /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name} 替换指定的networkpolicy PUT /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name} 删除networkpolicy DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name} 批量删除networkpolicy DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies 获取指定的networkpolicy GET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name} 列出指定namespace下的networkpolicy GET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies 获取networkpolicy列表 GET /apis/networking.k8s.io/v1/networkpolicies PersistentVolume 创建PersistentVolume POST /api/v1/persistentvolumes 删除指定的PersistentVolume DELETE /api/v1/persistentvolumes/{name} 删除所有的PersistentVolume DELETE /api/v1/persistentvolumes 获取指定的PersistentVolume GET /api/v1/persistentvolumes/{name} 替换指定的PersistentVolume PUT /api/v1/persistentvolumes/{name} 替换指定的PersistentVolume的状态 PUT /api/v1/persistentvolumes/{name}/status 列出所有的PersistentVolume GET /api/v1/persistentvolumes 更新指定的PersistentVolume PATCH /api/v1/persistentvolumes/{name} PersistentVolumeClaim 创建PersistentVolumeClaim POST /api/v1/namespaces/{namespace}/persistentvolumeclaims 删除指定的PersistentVolumeClaim DELETE /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name} 删除所有的PersistentVolumeClaim DELETE /api/v1/namespaces/{namespace}/persistentvolumeclaims 获取指定的PersistentVolumeClaim GET /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name} 替换指定的PersistentVolumeClaim PUT /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name} 替换指定的PersistentVolumeClaim的状态 PUT /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status 列出指定的Namespace下的PersistentVolumeClaim GET /api/v1/namespaces/{namespace}/persistentvolumeclaims 列出所有的PersistentVolumeClaim GET /api/v1/persistentvolumeclaims 更新指定的PersistentVolumeClaim PATCH /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name} ConfigMap 创建ConfigMap POST /api/v1/namespaces/{namespace}/configmaps 删除ConfigMap DELETE /api/v1/namespaces/{namespace}/configmaps/{name} 删除所有的ConfigMap DELETE /api/v1/namespaces/{namespace}/configmaps 获取指定的ConfigMap GET /api/v1/namespaces/{namespace}/configmaps/{name} 替换指定ConfigMap PUT /api/v1/namespaces/{namespace}/configmaps/{name} 列出指定Namespace下的ConfigMap GET /api/v1/namespaces/{namespace}/configmaps 列出所有的ConfigMap GET /api/v1/configmaps 更新指定的ConfigMap PATCH /api/v1/namespaces/{namespace}/configmaps/{name} Secret 创建Secret POST /api/v1/namespaces/{namespace}/secrets 删除Secret DELETE /api/v1/namespaces/{namespace}/secrets/{name} 删除指定命名空间下所有的Secret DELETE /api/v1/namespaces/{namespace}/secrets 获取Secret信息 GET /api/v1/namespaces/{namespace}/secrets/{name} 替换指定的Secret PUT /api/v1/namespaces/{namespace}/secrets/{name} 列出指定Namespace下的Secret GET /api/v1/namespaces/{namespace}/secrets 列出集群下的Secret GET /api/v1/secrets RBAC/ ClusterRole 创建ClusterRole POST /apis/rbac.authorization.k8s.io/v1/clusterroles 更新指定的ClusterRole PATCH /apis/rbac.authorization.k8s.io/v1/clusterroles/{name} 替换指定的ClusterRole PUT /apis/rbac.authorization.k8s.io/v1/clusterroles/{name} 删除指定的ClusterRole DELETE /apis/rbac.authorization.k8s.io/v1/clusterroles/{name} 批量删除ClusterRole DELETE /apis/rbac.authorization.k8s.io/v1/clusterroles 获取指定的ClusterRole GET /apis/rbac.authorization.k8s.io/v1/clusterroles/{name} 获取ClusterRole列表 GET /apis/rbac.authorization.k8s.io/v1/clusterroles RBAC/ ClusterRoleBinding 创建ClusterRoleBinding POST /apis/rbac.authorization.k8s.io/v1/clusterrolebindings 更新指定的ClusterRoleBinding PATCH /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name} 替换指定的ClusterRoleBinding PUT /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name} 删除指定的ClusterRoleBinding DELETE /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name} 批量删除ClusterRoleBinding DELETE /apis/rbac.authorization.k8s.io/v1/clusterrolebindings 获取指定的ClusterRoleBinding GET /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name} 获取ClusterRoleBinding列表 GET /apis/rbac.authorization.k8s.io/v1/clusterrolebindings RBAC/Role 创建Role POST /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles 更新指定的Role PATCH /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name} 替换指定的Role PUT /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name} 删除指定的Role DELETE /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name} 批量删除Role DELETE /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles 获取指定的Role GET /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name} 获取指定namespace下的Role列表 GET /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles 获取Role列表 GET /apis/rbac.authorization.k8s.io/v1/roles RBAC/RoleBinding 创建RoleBinding POST /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings 更新指定的RoleBinding PATCH /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name} 替换指定的RoleBinding PUT /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name} 删除指定的RoleBinding DELETE /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name} 批量删除RoleBinding DELETE /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings 获取指定的RoleBinding GET /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name} 获取指定namespace下RoleBinding列表 GET /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings 获取RoleBinding列表 GET /apis/rbac.authorization.k8s.io/v1/rolebindings API groups 列出APIVersions GET /api 列出APIGroups GET /apis listing APIResources of GroupVersion apiregistration.k8s.io/v1beta1 GET /apis/apiregistration.k8s.io/v1beta1 listing APIResources of GroupVersion extensions/v1beta1 GET /apis/extensions/v1beta1 listing APIResources of GroupVersion apps/v1&apps/v1beta1 GET /apis/apps/v1(适用于1.15以上版本的集群) GET /apis/apps/v1beta1(仅适用于1.15及以下版本的集群) listing APIResources of GroupVersion authentication.k8s.io/v1 GET /apis/authentication.k8s.io/v1 listing APIResources of GroupVersion authentication.k8s.io/v1beta1 GET /apis/authentication.k8s.io/v1beta1 listing APIResources of GroupVersion authorization.k8s.io/v1 GET /apis/authorization.k8s.io/v1 listing APIResources of GroupVersion authorization.k8s.io/v1beta1 GET /apis/authorization.k8s.io/v1beta1 listing APIResources of GroupVersion autoscaling/v1 GET /apis/autoscaling/v1 listing APIResources of GroupVersion batch/v1 GET /apis/batch/v1 listing APIResources of GroupVersion certificates.k8s.io/v1beta1 GET /apis/certificates.k8s.io/v1beta1 listing APIResources of GroupVersion networking.k8s.io/v1 GET /apis/networking.k8s.io/v1 listing APIResources of GroupVersion policy/v1beta1 GET /apis/policy/v1beta1 listing APIResources of GroupVersion rbac.authorization.k8s.io/v1beta1 GET /apis/rbac.authorization.k8s.io/v1beta1 listing APIResources of GroupVersion storage.k8s.io/v1 GET /apis/storage.k8s.io/v1 listing APIResources of GroupVersion storage.k8s.io/v1beta1 GET /apis/storage.k8s.io/v1beta1 listing APIResources of GroupVersion apiextensions.k8s.io/v1beta1 GET /apis/apiextensions.k8s.io/v1beta1 listing APIResources of GroupVersion v1 GET /api/v1 Event 获取Event GET /api/v1/events 列出指定命名空间下的Event GET /api/v1/namespaces/{namespace}/events
  • 集群管理 表1 集群管理 API 说明 创建集群 创建一个空集群(即只有控制节点Master,没有工作节点Node)。 获取指定的集群 获取指定集群的详细信息。 获取指定项目下的集群 获取指定项目下所有集群的详细信息。 更新指定的集群 更新指定的集群。 删除集群 删除一个指定的集群。 集群休眠 休眠一个指定的集群。 集群唤醒 唤醒一个指定的已休眠集群。 获取集群证书 获取指定集群的证书信息。 获取任务信息 查询作业进度,通过某一作业请求下发后返回的jobID来查询指定作业的进度。
  • 节点管理 表2 节点管理 API 说明 创建节点 在指定集群下创建节点。 获取指定的节点 通过节点ID获取指定节点的详细信息。 获取集群下所有节点 通过集群ID获取指定集群下所有节点的详细信息。 更新指定的节点 更新指定的节点。 删除节点 删除指定的节点。 纳管节点 在指定集群下纳管节点。 重置节点 在指定集群下重置节点。 移除节点 将节点从指定集群中移除。 迁移节点 将节点从指定集群下迁移到另一集群。
  • 插件管理 表4 插件管理 API 说明 创建AddonInstance 根据提供的插件模板,安装插件实例。 查询AddonTemplates列表 插件模板查询接口,查询插件信息。 更新AddonInstance 更新插件实例的功能。 删除AddonInstance 删除插件实例的功能。 获取AddonInstance详情 获取插件实例详情。 获取AddonInstance列表 获取集群所有已安装插件实例。
  • 状态码 状态码如表1所示 表1 状态码 状态码 编码 状态说明 100 Continue 继续请求。 这个临时响应用来通知客户端,它的部分请求已经被服务器接收,且仍未被拒绝。 101 Switching Protocols 切换协议。只能切换到更高级的协议。 例如,切换到HTTP的新版本协议。 201 Created 创建类的请求完全成功。 202 Accepted 已经接受请求,但未处理完成。 203 Non-Authoritative Information 非授权信息,请求成功。 204 NoContent 请求完全成功,同时HTTP响应不包含响应体。 在响应OPTIONS方法的HTTP请求时返回此状态码。 205 Reset Content 重置内容,服务器处理成功。 206 Partial Content 服务器成功处理了部分GET请求。 300 Multiple Choices 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择。 301 Moved Permanently 永久移动,请求的资源已被永久的移动到新的URI,返回信息会包括新的URI。 302 Found 资源被临时移动。 303 See Other 查看其它地址。 使用GET和POST请求查看。 304 Not Modified 所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。 305 Use Proxy 所请求的资源必须通过代理访问。 306 Unused 已经被废弃的HTTP状态码。 400 BadRequest 非法请求。 建议直接修改该请求,不要重试该请求。 401 Unauthorized 在客户端提供认证信息后,返回该状态码,表明服务端指出客户端所提供的认证信息不正确或非法。 402 Payment Required 保留请求。 403 Forbidden 请求被拒绝访问。 返回该状态码,表明请求能够到达服务端,且服务端能够理解用户请求,但是拒绝做更多的事情,因为该请求被设置为拒绝访问,建议直接修改该请求,不要重试该请求。 404 NotFound 所请求的资源不存在。 建议直接修改该请求,不要重试该请求。 405 MethodNotAllowed 请求中带有该资源不支持的方法。 建议直接修改该请求,不要重试该请求。 406 Not Acceptable 服务器无法根据客户端请求的内容特性完成请求。 407 Proxy Authentication Required 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权。 408 Request Time-out 服务器等候请求时发生超时。 客户端可以随时再次提交该请求而无需进行任何更改。 409 Conflict 服务器在完成请求时发生冲突。 返回该状态码,表明客户端尝试创建的资源已经存在,或者由于冲突请求的更新操作不能被完成。 410 Gone 客户端请求的资源已经不存在。 返回该状态码,表明请求的资源已被永久删除。 411 Length Required 服务器无法处理客户端发送的不带Content-Length的请求信息。 412 Precondition Failed 未满足前提条件,服务器未满足请求者在请求中设置的其中一个前提条件。 413 Request Entity Too Large 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息。 414 Request-URI Too Large 请求的URI过长(URI通常为网址),服务器无法处理。 415 Unsupported Media Type 服务器无法处理请求附带的媒体格式。 416 Requested range not satisfiable 客户端请求的范围无效。 417 Expectation Failed 服务器无法满足Expect的请求头信息。 422 UnprocessableEntity 请求格式正确,但是由于含有语义错误,无法响应。 429 TooManyRequests 表明请求超出了客户端访问频率的限制或者服务端接收到多于它能处理的请求。建议客户端读取相应的Retry-After首部,然后等待该首部指出的时间后再重试。 500 InternalServerError 表明服务端能被请求访问到,但是不能理解用户的请求。 501 Not Implemented 服务器不支持请求的功能,无法完成请求。 502 Bad Gateway 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求。 503 ServiceUnavailable 被请求的服务无效。 建议直接修改该请求,不要重试该请求。 504 ServerTimeout 请求在给定的时间内无法完成。客户端仅在为请求指定超时(Timeout)参数时会得到该响应。 505 HTTP Version not supported 服务器不支持请求的HTTP协议的版本,无法完成处理。 父主题: 附录
  • 镜像回收策略说明 当容器引擎空间不足时,会触发镜像垃圾回收。 镜像垃圾回收策略只考虑两个因素:HighThresholdPercent 和 LowThresholdPercent。 磁盘使用率超过上限阈值(HighThresholdPercent,默认值为85%)将触发垃圾回收。 垃圾回收将删除最近最少使用的镜像,直到磁盘使用率满足下限阈值(LowThresholdPercent,默认值为80%)。
  • 共享数据盘说明 共享数据盘即在节点上不再划分容器引擎 (Docker/Containerd) 和Kubelet组件的空间,二者共用磁盘空间。 共享数据盘仅v1.21.10-r0、v1.23.8-r0、v1.25.3-r0及以上的集群支持。 容器存储Rootfs为OverlayFS类型时支持共享数据盘,Device Mapper类型不支持。 若您在集群中安装了npd插件,请将插件升级至1.18.10版本及以上。 若您在集群中安装了log-agent插件,请将插件升级至1.3.0版本及以上。 集群中的ICAgent版本需升级至5.12.140版本及以上。 图5 共享数据盘配置
  • 设置数据盘空间分配 在创建节点时,您需要配置节点数据盘,且数据盘容量不小于100G。您可“单击展开高级配置”,自定义节点数据盘的空间分配。 图1 设置数据盘空间分配 自定义容器引擎空间大小说明: v1.21.10-r0、v1.23.8-r0、v1.25.3-r0之前版本的集群中,CCE 将数据盘空间默认划分为两块:一块用于存放容器引擎 (Docker/Containerd) 工作目录、容器镜像的数据和镜像元数据;另一块用于Kubelet组件和EmptyDir临时存储等。容器引擎空间的剩余容量将会影响镜像下载和容器的启动及运行。 容器引擎和容器镜像空间(默认占90%):用于容器运行时工作目录、存储容器镜像数据以及镜像元数据。 Kubelet组件和EmptyDir临时存储(默认占10%):用于存储Pod配置文件、密钥以及临时存储EmptyDir等挂载数据。 v1.21.10-r0、v1.23.8-r0、v1.25.3-r0及之后版本的集群中,CCE使用的数据盘支持采用共享数据盘的方式,即不再划分容器引擎 (Docker/Containerd) 和Kubelet组件的空间。 自定义Pod容器空间大小:即容器的basesize设置,每个工作负载下的容器组 Pod 占用的磁盘空间设置上限(包含容器镜像占用的空间)。合理的配置可避免容器组无节制使用磁盘空间导致业务异常。建议此值不超过容器引擎空间的 80%。该参数与节点操作系统和容器存储Rootfs相关,部分场景下不支持设置。
  • 操作系统与容器存储Rootfs对应关系 表1 CCE集群节点操作系统与容器引擎对应关系 操作系统 容器存储Rootfs 自定义Pod容器空间(basesize) CentOS 7.x v1.19.16以下版本集群使用Device Mapper v1.19.16及以上版本集群使用OverlayFS Rootfs为Device Mapper且容器引擎为Docker时支持,默认值为10G。 Rootfs为OverlayFS时不支持。 EulerOS 2.3 Device Mapper 仅容器引擎为Docker时支持,默认值为10G。 EulerOS 2.5 Device Mapper 仅容器引擎为Docker时支持,默认值为10G。 EulerOS 2.8 v1.19.16-r2以下版本集群使用Device Mapper v1.19.16-r2及以上版本集群使用OverlayFS Rootfs为Device Mapper且容器引擎为Docker时支持,默认值为10G。 Rootfs为OverlayFS时不支持。 EulerOS 2.9 OverlayFS 仅v1.19.16、v1.21.3、v1.23.3及以上的集群版本支持,默认值为不限制。 v1.19.16、v1.21.3、v1.23.3以前的集群版本不支持。 EulerOS 2.10 OverlayFS 仅容器引擎为Docker时支持,默认值为不限制。 Ubuntu 18.04 OverlayFS 不支持。 Huawei Cloud EulerOS 1.1 OverlayFS 不支持。 Huawei Cloud EulerOS 2.0 OverlayFS 仅容器引擎为Docker时支持,默认值为不限制。 表2 CCE Turbo 集群节点操作系统与容器引擎对应关系 操作系统 容器存储Rootfs 自定义Pod容器空间(basesize) CentOS 7.x OverlayFS 不支持。 Ubuntu 18.04 OverlayFS 不支持。 EulerOS 2.9 弹性云服务器-虚拟机使用OverlayFS 弹性云服务器-物理机使用Device Mapper Rootfs为OverlayFS且仅容器引擎为Docker时支持,默认值为不限制。 Rootfs为Device Mapper且容器引擎为Docker时支持,默认值为10G。 Huawei Cloud EulerOS 1.1 OverlayFS 不支持。 Huawei Cloud EulerOS 2.0 OverlayFS 仅容器引擎为Docker时支持,默认值为不限制。
共100000条