华为云用户手册

  • 用户访问集群API Server的方式有哪些? 当前CCE提供两种访问集群API Server的方式: 集群API方式:(推荐)集群API需要使用证书认证访问。直接连接集群API Server,适合大规模调用。 API网关方式:API网关采用token方式认证,需要使用账号信息获取token。适合小规模调用场景,大规模调用时可能会触发API网关流控。 详情请参见使用Kubernetes API。 父主题: API&kubectl
  • 排查项一:节点是否存在资源压力 当满足硬性或软性驱逐条件时,即存在资源压力时,kubelet会根据驱逐信号将节点设置为相应的节点状况,并为节点打上对应的污点。请通过以下步骤查看节点是否存在对应的污点。 $ kubectl describe node 192.168.0.37 Name: 192.168.0.37 ... Taints: key1=value1:NoSchedule ... 表1 存在资源压力的节点状况及解决方案 节点状况 节点污点 驱逐信号 描述 解决方案 MemoryPressure node.kubernetes.io/memory-pressure memory.available 节点上的可用内存已满足驱逐条件。 您可以扩容节点规格,详情请参见如何变更CCE集群中的节点规格?。 DiskPressure node.kubernetes.io/disk-pressure nodefs.available、nodefs.inodesFree、imagefs.available 或 imagefs.inodesFree 节点的根文件系统或镜像文件系统上的可用磁盘空间和 inode 已满足驱逐条件。 您可以扩容节点磁盘空间,详情请参见存储扩容。 PIDPressure node.kubernetes.io/pid-pressure pid.available 节点上的可用进程标识符已低于驱逐条件。 您可以修改节点进程ID上限,详情请参见修改节点进程 ID数量上限kernel.pid_max。
  • CCE如何与其他服务进行内网通信? 与CCE进行内网通信的华为云常见服务有:RDS、DMS、Kafka、RabbitMQ、VPN、ModelArts等,有如下两种场景: 在同一个VPC网络下,CCE节点可以与此VPC下的所有服务进行互通。CCE的容器与其他服务通信时,需要关注对端是否开启了容器网段的入方向的安全组规则(此限制只针对于CCE的集群为VPC网络模式)。 如果不在同一个VPC,可以使用“对等连接”或VPN的方式打通两个VPC,不过需要注意的是两个VPC的网段及容器网段不能重复。并且,对端VPC或小网需要配置回程路由(此限制只针对于CCE的集群为VPC网络模式),配置方法请参见对等连接。 此逻辑针对于华为云所有服务均有效。 “容器隧道网络”的集群,天然支持各服务间内网通信,不需要另外配置。 “VPC网络”模型的集群需要注意的事项: 对端看到的来源IP为容器IP。 容器在VPC内的节点上互通,是通过CCE添加的自定义路由规则实现的。 CCE中的容器访问其他服务时,需要关注对端(目的端)是否开启了容器网段入方向的安全组规则或防火墙。具体请参见安全组配置示例。 如果使用VPN或“对等连接”等方式打通了小网通信,需要在中间路上和目的地,都需要在对等连接添加容器网段的路由。 “云原生网络2.0”模型的集群需要根据业务诉求放通容器关联的安全组,容器关联的默认安全组名称为{集群名}-cce-eni-{随机ID},具体请参见云原生网络2.0( CCE Turbo 集群)安全组规则。 父主题: 网络指导
  • 操作步骤 在执行退订操作前,请确保将退订的云资源上的数据已完成备份或者迁移,退订完成后云资源将被删除,数据无法找回,请谨慎操作。 页面中间有关于5天无理由退订的已退订次数和剩余退订次数提示,请注意查看。 进入“云服务退订”页面。 单击“退订使用中的资源”页签。 单个资源退订与批量退订可使用不同的操作方式: 退订单个资源:单击待退订资源所在行的“退订资源”。 图1 退订单个资源 批量退订:在退订列表中勾选需要退订的资源,单击列表左上角的“退订资源”。 图2 批量退订 在“退订资源”页面中查看退订信息,确认无误后选择退订原因,单击“退订”。
  • 排查项八:拉取公共镜像达上限 问题现象 创建工作负载时报如下错误。 ERROR: toomanyrequests: Too Many Requests. 或 you have reached your pull rate limit, you may increase the limit by authenticating an upgrading: https://www.docker.com/increase-rate-limits. 问题原因 DockerHub对用户拉取容器镜像请求设定了上限,详情请参见Understanding Docker Hub Rate Limiting。 解决方案: 将常用的镜像上传到SWR,然后从SWR拉取镜像。
  • 排查思路 根据具体事件信息确定具体问题原因,如表1所示。 表1 实例拉取镜像失败 事件信息 问题原因与解决方案 Failed to pull image "xxx": rpc error: code = Unknown desc = Error response from daemon: Get xxx: denied: You may not login yet 没有登录镜像仓库,无法拉取镜像。 排查项一:kubectl创建工作负载时未指定imagePullSecret Failed to pull image "nginx:v1.1": rpc error: code = Unknown desc = Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io: no such host 镜像地址配置有误找不到镜像导致失败。 排查项二:填写的镜像地址错误(使用第三方镜像时) 排查项三:使用错误的密钥(使用第三方镜像时) Failed create pod sandbox: rpc error: code = Unknown desc = failed to create a sandbox for pod "nginx-6dc48bf8b6-l8xrw": Error response from daemon: mkdir xxxxx: no space left on device 磁盘空间不足。 排查项四:节点磁盘空间不足 Failed to pull image "xxx": rpc error: code = Unknown desc = error pulling image configuration: xxx x509: certificate signed by unknown authority 从第三方仓库下载镜像时,第三方仓库使用了非知名或者不安全的证书. 排查项五: 远程镜像仓库使用非知名或不安全的证书 Failed to pull image "XXX": rpc error: code = Unknown desc = context canceled 镜像体积过大。 排查项六: 镜像过大导致失败 Failed to pull image "docker.io/bitnami/nginx:1.22.0-debian-11-r3": rpc error: code = Unknown desc = Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) 排查项七:无法连接镜像仓库 ERROR: toomanyrequests: Too Many Requests. 或 you have reached your pull rate limit, you may increase the limit by authenticating an upgrading 由于拉取镜像次数达到上限而被限速。 排查项八:拉取公共镜像达上限
  • 排查项四:节点磁盘空间不足 当k8s事件中包含以下信息,表明节点上用于存储镜像的磁盘空间已满,会导致重新拉取镜像失败。您可以通过清理镜像或扩容磁盘解决该问题。 Failed create pod sandbox: rpc error: code = Unknown desc = failed to create a sandbox for pod "nginx-6dc48bf8b6-l8xrw": Error response from daemon: mkdir xxxxx: no space left on device 您可以执行以下命令,确认节点上存储镜像的磁盘空间: lvs 方案一:清理镜像 您可以执行以下步骤清理未使用的镜像: 使用containerd容器引擎的节点: 查看节点上的本地镜像。 crictl images -v 确认镜像无需使用,并通过镜像ID删除无需使用的镜像。 crictl rmi {镜像ID} 使用docker容器引擎的节点: 查看节点上的本地镜像。 docker images 确认镜像无需使用,并通过镜像ID删除无需使用的镜像。 docker rmi {镜像ID} 请勿删除cce-pause等系统镜像,否则可能导致无法正常创建容器。 方案二:扩容磁盘 扩容磁盘的操作步骤如下: 在EVS界面扩容数据盘。 登录CCE控制台,进入集群,在左侧选择“节点管理”,单击节点后的“同步云服务器”。 登录目标节点。 使用lsblk命令查看节点块设备信息。 这里存在两种情况,根据容器存储Rootfs而不同。 Overlayfs,没有单独划分thinpool,在dockersys空间下统一存储镜像相关数据。 # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 8:0 0 50G 0 disk └─vda1 8:1 0 50G 0 part / vdb 8:16 0 200G 0 disk ├─vgpaas-dockersys 253:0 0 90G 0 lvm /var/lib/docker # 容器引擎使用的空间 └─vgpaas-kubernetes 253:1 0 10G 0 lvm /mnt/paas/kubernetes/kubelet # kubernetes使用的空间 在节点上执行如下命令, 将新增的磁盘容量加到dockersys盘上。 pvresize /dev/vdb lvextend -l+100%FREE -n vgpaas/dockersys resize2fs /dev/vgpaas/dockersys Devicemapper,单独划分了thinpool存储镜像相关数据。 # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 8:0 0 50G 0 disk └─vda1 8:1 0 50G 0 part / vdb 8:16 0 200G 0 disk ├─vgpaas-dockersys 253:0 0 18G 0 lvm /var/lib/docker ├─vgpaas-thinpool_tmeta 253:1 0 3G 0 lvm │ └─vgpaas-thinpool 253:3 0 67G 0 lvm # thinpool空间 │ ... ├─vgpaas-thinpool_tdata 253:2 0 67G 0 lvm │ └─vgpaas-thinpool 253:3 0 67G 0 lvm │ ... └─vgpaas-kubernetes 253:4 0 10G 0 lvm /mnt/paas/kubernetes/kubelet 在节点上执行如下命令, 将新增的磁盘容量加到thinpool盘上。 pvresize /dev/vdb lvextend -l+100%FREE -n vgpaas/thinpool 在节点上执行如下命令, 将新增的磁盘容量加到dockersys盘上。 pvresize /dev/vdb lvextend -l+100%FREE -n vgpaas/dockersys resize2fs /dev/vgpaas/dockersys
  • 排查项二:填写的镜像地址错误(使用第三方镜像时) CCE支持拉取第三方镜像仓库中的镜像来创建工作负载。 在填写第三方镜像的地址时,请参照要求的格式来填写。镜像地址格式为:ip:port/path/name:version或name:version,若没标注版本号则默认版本号为latest。 若是私有仓库,请填写ip:port/path/name:version。 若是docker开源仓库,请填写name:version,例如nginx:latest。 图1 第三方镜像 镜像地址配置有误找不到镜像导致失败,Kubernetes Event中提示如下信息: Failed to pull image "nginx:v1.1": rpc error: code = Unknown desc = Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io: no such host 解决方案: 可编辑yaml修改镜像地址,也可在工作负载详情页面更新升级页签单击更换镜像。
  • 排查项一:kubectl创建工作负载时未指定imagePullSecret 当工作负载状态异常并显示“实例拉取镜像失败”的K8s事件时,请排查yaml文件中是否存在imagePullSecrets字段。 排查事项: 当Pull SWR容器镜像 仓库的镜像时,name参数值需固定为default-secret。 apiVersion: extensions/v1beta1 kind: Deployment metadata: name: nginx spec: replicas: 1 selector: matchLabels: app: nginx strategy: type: RollingUpdate template: metadata: labels: app: nginx spec: containers: - image: nginx imagePullPolicy: Always name: nginx imagePullSecrets: - name: default-secret Pull第三方镜像仓库的镜像时,需设置为创建的secret名称。 kubectl创建工作负载拉取第三方镜像时,需指定的imagePullSecret字段,name表示pull镜像时的secret名称,创建密钥的方法请参见使用kubectl创建第三方镜像仓库的密钥。
  • 排查项七:无法连接镜像仓库 问题现象 创建工作负载时报如下错误。 Failed to pull image "docker.io/bitnami/nginx:1.22.0-debian-11-r3": rpc error: code = Unknown desc = Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) 问题原因 无法连接镜像仓库,网络不通。SWR仅支持直接拉取Docker官方的镜像,其他仓库的镜像需要连接公网。 解决方案: 方案一:给需要下载镜像的节点绑定公网IP。 方案二:先将镜像上传到SWR,然后从SWR拉取镜像。
  • 使用CCE设置工作负载访问方式时,端口如何填写? CCE支持工作负载的内部互访和被互联网访问两种方式。 内部访问:包括集群内访问(通过集群虚拟IP)和节点访问(通过节点私有IP)两种方式。 表1 内部访问类型说明 内部访问类型 说明 端口如何填写 集群内访问(通过集群虚拟IP) 用于“工作负载之间的互访”,例如某个后端工作负载需要和前端工作负载互访,就需要选择该类型来实现内部互访。 集群虚拟IP,即Cluster IP,是在工作负载设置此访问类型后,就会自动分配一个可用的Cluster IP。 容器端口:指容器中工作负载启动监听的端口。端口根据每个业务的不同而不同,一般在容器镜像中已指定。 服务端口:指该容器工作负载发布为服务后,所设定的服务端口号,请填写1-65535之间的整数值。在内部工作负载互访时,将通过“Cluster IP:访问端口”来访问。 节点访问(通过节点私有IP) 可以通过“节点IP:节点端口”的形式访问工作负载。若该节点绑定了弹性IP,则外网就可以访问该工作负载。 容器端口:指容器中工作负载启动监听的端口。端口根据每个业务的不同而不同,一般在容器镜像中已指定。 服务端口:指该容器工作负载发布为服务后,所设定的服务端口号,请填写1-65535之间的整数值。 节点端口:指容器映射到节点上的端口。配置完成后,系统会在用户所在项目的所有节点上打开一个真实的端口号。访问工作负载时可以通过“节点IP:节点端口”来访问工作负载。 如无特殊需求,选择“自动生成”即可,系统会自动分配访问端口号。若选择“指定端口”,请填写30000-32767之间的整数,且确保集群内该值唯一。 外部访问:包括节点访问(通过弹性IP)、负载均衡和DNAT网关三种方式。 表2 外部访问类型说明 外部访问类型 说明 端口如何填写 节点访问(通过弹性IP) 为节点绑定弹性IP,访问工作负载时,通过“节点弹性IP:节点端口”的形式访问工作负载。工作负载可被公网访问。 容器端口:指容器中工作负载启动监听的端口。端口根据每个业务的不同而不同,一般在容器镜像中已指定。 服务端口:指该容器工作负载发布为服务后,所设定的服务端口号,请填写1-65535之间的整数值。 节点端口:指容器映射到节点上的端口。配置完成后,系统会在用户所在项目的所有节点上打开一个真实的端口号。访问工作负载时可以通过“节点IP:节点端口”来访问工作负载。 如无特殊需求,选择“自动生成”即可,系统会自动分配访问端口号。若选择“指定端口”,请填写30000-32767之间的整数,且确保集群内该值唯一。 负载均衡 负载均衡通过将访问流量自动分发到多台节点,扩展工作负载系统对外的服务能力,实现更高水平的工作负载程序容错性能。 您需要提前创建负载均衡实例,并在CCE访问类型中选择负载均衡实例。 容器端口:指容器中工作负载启动监听的端口。端口根据每个业务的不同而不同,一般在容器镜像中已指定。 服务端口:代表负载均衡上注册的对外端口,请填写1-65535之间的整数值。外部用户使用“ELB的VIP:服务端口”访问工作负载。 DNAT网关 NAT网关提供 网络地址转换 服务,使多个云服务器可以共享弹性公网IP。 您需要提前创建公网NAT网关实例。 容器端口:指容器中工作负载启动监听的端口。端口根据每个业务的不同而不同,一般在容器镜像中已指定。 服务端口:代表NAT网关上注册的对外端口,请填写1-65535之间的整数值。系统会自动创建DNAT规则,外部用户使用“网关的弹性IP:服务端口”访问工作负载。 父主题: 网络指导
  • 支持审计的关键操作列表 表1 云审计 服务支持的AppStage服务操作列表 操作名称 资源类型 事件名称 订单支付完成回调 wiseOrder orderPayCompleted 订购下单 wiseOrder subscribeOrder 变更资源状态 wiseOrder changeResourceStatus 证书授权 wiseCredential authorizeCredential 关联组织 wiseOrg associateOrg 清理资源 rosCleanup cleanupResources 创建委托 wiseAgency createAgency
  • 通过控制台创建WordPress 登录CCE控制台。 单击集群进入集群控制台。 在左侧菜单栏选择“工作负载”,单击右上角“创建负载”。 填写工作负载参数。 基本信息 负载类型:选择无状态负载。 负载名称:wordpress。 命名空间:default。 实例数量:本例中实例数量设置为2。 图1 设置工作负载基本信息 容器配置 在基本信息中单击“选择镜像”,在弹出的窗口中选择“镜像中心”,并搜索“wordpress”,选择wordpress镜像,并设置镜像版本为“php7.3”。 图2 选择镜像版本 在环境变量下添加如下环境变量, 此处一共需要设置四个环境变量,让WordPress知道MySQL数据库的信息。 WORDPRESS_DB_HOST:数据库的访问地址。可以在mysql工作负载的访问方式中找到。可以使用集群内部域名mysql.default.svc.cluster.local:3306访问,其中.default.svc.cluster.local可以省略,即使用mysql:3306。 WORDPRESS_DB_USER:访问数据的用户名,此处需要设置为步骤1:创建MySQL中MYSQL_USER一致,即使用这个用户去连接MySQL。 WORDPRESS_DB_PASSWORD:访问数据库的密码,此处需要设置为步骤1:创建MySQL中MYSQL_PASSWORD一致。 WORDPRESS_DB_NAME:访问数据库的名称,此处需要设置为步骤1:创建MySQL中MYSQL_DATABASE一致。 图3 设置环境变量 服务配置 单击服务配置下的加号,创建服务(Service),用于从外部访问负载。本例将创建一个负载均衡类型的Service,请在右侧弹窗中配置如下参数。 Service名称:输入应用发布的可被外部访问的名称,设置为:wordpress。 访问类型:选择“负载均衡 ( LoadBalancer )”。 服务亲和:保持默认。 负载均衡器:如果已有负载均衡(ELB)实例,可以选择已有ELB,如果没有可单击“创建负载均衡器”,在ELB控制台创建一个公网类型负载均衡器。 端口配置: 对外协议:TCP。 服务端口:设置为80,该端口号将映射到容器端口。 容器端口:容器中应用启动监听的端口,wordpress镜像请设置为80,其他应用容器端口和应用本身的端口一致。 图4 创建服务 单击右下角“创建工作负载”。 等待工作负载创建成功。 创建成功后在无状态负载下会显示一个运行中的工作负载。 图5 wordpress负载创建成功
  • 访问WordPress 获取WordPress的外部访问地址。 单击WordPress工作负载名称,进入工作负载详情页。在“访问方式”页签下可以看到WordPress的IP地址,其中公网地址就是外部访问地址。 图6 访问WordPress应用 在浏览器中输入“外部访问地址:端口”,即可成功访问应用。 访问到的WordPress应用如下图。 图7 WordPress应用 图8 WordPress应用
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Language 否 String 语言类型。 表3 请求Body参数 参数 是否必选 参数类型 描述 is_reboot 是 String 是否重启。 hbase_modify_settings 是 Array of HbaseModifySettingV2 objects 参见HBaseModifySettingV2结构说明。 表4 HbaseModifySettingV2 参数 是否必选 参数类型 描述 id 否 String 参数ID。 parm_name 是 String 待修改的参数名。 new_value 是 String 设置的参数值。
  • 请求示例 修改集群配置参数示范。 { "is_reboot" : false, "hbase_modify_settings" : [ { "parm_name" : "hbase.regionserver.thread.compaction.small", "new_value" : "4" }, { "parm_name" : "hbase.regionserver.global.memstore.size", "new_value" : "0.25" } ] }
  • URI PUT /v2/{project_id}/clusters/{cluster_id}/setting 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID。获取方法,请参见获取项目ID。 cluster_id 是 String 集群ID。 获取方法:在CloudTable控制台,单击要查询的集群名称进入集群详情页,获取“集群ID"。请参见获取集群ID。
  • 响应示例 状态码: 200 查询集群详情成功(openTSDB字段只适用于HBase1.3.1版本,enable_lemon字段废弃)。 { "datastore" : { "type" : "hbase", "version" : "1.0.6" }, "actions" : [ "GROWING" ], "enable_openTSDB" : true, "enable_lemon" : false, "cluster_name" : "cloudtable-sxh-lemon07", "cu_num" : "2", "tsd_num" : "2", "lemon_num" : "4", "storage_type" : "ULTRAHIGH", "storage_quota" : "800", "used_storage_size" : "0", "auth_mode" : false, "updated" : "2018-12-12T07:41:19", "created" : "2018-12-12T07:41:19", "cluster_id" : "464d092e-b950-4f31-a904-b07c68431a78", "status" : "200", "openTSDB_link" : "opentsdb-pbn2zws091euf76.mycloudtable.com:4242", "tsd_public_endpoint" : "ac753d5bb4844f14a5d000dfe6dc366d.apigw.southchina.huaweicloud.com", "lemon_link" : "cloudtable-sxh-hba-lemon-2-1-oKGxbvrR.mycloudtable.com:8765,cloudtable-sxh-hba-lemon-3-1-mkvVSaZ2.mycloudtable.com:8765", "zookeeper_link" : "cloudtable-sxh-hbase-l07-zk1-NrHKTDDO.mycloudtable.com:2181,cloudtable-sxh-hbase-l07-zk2-MTLPWir9.mycloudtable.com:2181,cloudtable-sxh-hbase-l07-zk3-p0HFRqDR.mycloudtable.com:2181", "hbase_public_endpoint" : "2c6412739e7f4258a1de2ee4dad7e758.apigw.southchina.huaweicloud.com", "is_frozen" : "0", "vpc_id" : "23af42c2-f57f-499f-8a2f-a934bd05b8b3", "sub_net_id" : "8e8b7b75-5e55-4948-907e-79d06e18c516", "security_group_id" : "1ee23c44-9bfb-4a5e-80c7-83ad78b7aba4", "availability_zone" : "cn-north-7c" }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 actions Array of strings 集群当前状态列表: 创建中 扩容中 重启中 开启opentsdb(此字段只适用于HBase1.3.1版本) 扩容失败 重启失败 开启opentsdb失败(此字段只适用于HBase1.3.1版本) datastore Datastore object 创建集群数据库参数。 enable_openTSDB Boolean 是否打开openTSDB特性。 false:不开启 true:开启 备注:此字段只适用于HBase1.3.1版本。 enable_lemon Boolean 是否打开SQL查询特性。 false:不开启 true:开启 备注:此字段废弃 cluster_name String 集群名称。 cu_num String RegionServer个数。 tsd_num String TSD节点个数。 备注:此字段废弃。 lemon_num String Lemon节点个数。 备注:此字段废弃 storage_type String 集群底层存储类型: OBS HDFS storage_quota String 集群存储配额。 used_storage_size String 当前使用存储空间。 auth_mode Boolean 是否打开 IAM 认证。 false:不开启 true:开启 备注:此字段废弃。 enable_dfv Boolean 是否打开dfv。 updated String 集群更新时间。 created String 集群创建时间。 cluster_id String 集群唯一标识,集群ID。 status String 集群当前状态: 200:集群正常。 300:集群异常。 400:集群已删除。 303:集群创建失败。 openTSDB_link String 内网OpenTSDB连接访问地址。 备注:此字段废弃。 tsd_public_endpoint String OpenTSDB公网endpoint地址。 备注:此字段只适用于HBase1.3.1版本。 lemon_link String 内网Lemon连接访问地址。 备注:此字段废弃。 zookeeper_link String 内网ZooKeeper连接访问地址。 hbase_public_endpoint String 公网HBase连接访问地址。 is_frozen String 集群是否被冻结。 false:不冻结 true:冻结 vpc_id String VPC ID,创建集群节点所在的虚拟私有ID。 sub_net_id String 子网ID,创建集群所在子网段。 security_group_id String 安全组对应的ID。 availability_zone String 集群所属的可用区。 表4 Datastore 参数 参数类型 描述 version String controller版本号,默认1.0.6。 type String 集群数据库类型。
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 parm_status Integer 集群参数生效状态:0、未更改 1、未应用 2、应用中 3、已应用 4、应用失败。 parameter_info Array of ParameterInfo objects 参数列表。 表4 ParameterInfo 参数 参数类型 描述 id String 参数ID。 name String 配置名称。 default_value String 默认值。 value_type String 配置值类型。 running_value String 集群当前运行的配置值。 unit String 单位。 reboot Boolean 是否需要重启生效。 value_range String 配置值取值范围。 description String 配置描述信息。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。
  • URI GET /v2/{project_id}/clusters/{cluster_id}/setting 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID。获取方法,请参见获取项目ID。 cluster_id 是 String 集群ID。 获取方法:在CloudTable控制台,单击要查询的集群名称进入集群详情页,获取“集群ID"。请参见获取集群ID。
  • 响应示例 状态码: 200 正常响应示例。 { "parm_status" : 0, "parameter_info" : [ { "id" : "1d5ae2cf-45ea-45b8-a45e-b9de3af9ea41", "name" : "hbase.regionserver.thread.compaction.small", "unit" : "--", "reboot" : true, "description" : "thread_compaction_des", "default_value" : "1", "value_type" : "integer", "running_value" : "1", "value_range" : "[1,20]" }, { "id" : "27508fbd-dbc4-46ce-8c39-5b76517432ed", "name" : "hbase.regionserver.global.memstore.size", "unit" : "--", "reboot" : true, "description" : "global_memstore_size_des", "default_value" : "0.4", "value_type" : "decimal", "running_value" : "0.4", "value_range" : "(0,0.8)" }, { "id" : "2e46b1bd-d77d-4b82-a9a2-71ad1d6ba577", "name" : "hbase.hstore.blockingStoreFiles", "unit" : "--", "reboot" : true, "description" : "hstore_blockingStoreFiles_des", "default_value" : "60", "value_type" : "integer", "running_value" : "60", "value_range" : "[1,2147483647]" }, { "id" : "31abc744-ead8-411d-af32-f98bb249f540", "name" : "hbase.client.scanner.timeout.period", "unit" : "millisecond", "reboot" : true, "description" : "client_scanner_period_des", "default_value" : "60000", "value_type" : "integer", "running_value" : "60000", "value_range" : "[1,2147483647]" }, { "id" : "3fed1e81-9f44-4688-9b3a-cb1f53dd7735", "name" : "hfile.block.cache.size", "unit" : "--", "reboot" : true, "description" : "hfile_block_cache_size_des", "default_value" : "0.2", "value_type" : "decimal", "running_value" : "0.2", "value_range" : "(0,0.8)" }, { "id" : "5fffdba2-675f-41bf-9b47-906b9246ff95", "name" : "hbase.regionserver.handler.count", "unit" : "--", "reboot" : true, "description" : "handler_count_des", "default_value" : "100", "value_type" : "integer", "running_value" : "100", "value_range" : "[1,300]" }, { "id" : "661a69a4-e9dc-4107-b608-3ffad6866015", "name" : "hbase.regionserver.metahandler.count", "unit" : "--", "reboot" : true, "description" : "metahandler_count_des", "default_value" : "50", "value_type" : "integer", "running_value" : "50", "value_range" : "[1,100]" }, { "id" : "89c573eb-72fe-446a-8db5-00e1881569b3", "name" : "hbase.ipc.server.callqueue.read.ratio", "unit" : "--", "reboot" : true, "description" : "callqueue_read_ratio_des", "default_value" : "0.5", "value_type" : "decimal", "running_value" : "0.5", "value_range" : "[0,1]" }, { "id" : "9ea7cf3b-f7bc-4906-82fc-a83c328a1be5", "name" : "hbase.hstore.flusher.count", "unit" : "--", "reboot" : true, "description" : "hstore_flusher_count_des", "default_value" : "2", "value_type" : "integer", "running_value" : "2", "value_range" : "[1,10]" } ] } 状态码: 400 失败响应结果 { "error_code" : "CloudTable.0140", "error_msg" : "Invalid parameter project id or cluster id." }
  • 请求消息体(可选) 该部分可选。请求消息体通常以结构化格式(如JSON或XML)发出,与请求消息头中Content-Type对应,传递除请求消息头之外的内容。若请求消息体中的参数支持中文,则中文字符必须为UTF-8编码。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中username为用户名,domainname为用户所属的账号名称,********为用户登录密码,xxxxxxxxxxxxxxxxxx为project的ID,获取方法请参见获取项目ID。 scope参数定义了Token的作用域,上面示例中获取的Token仅能访问project下的资源。您还可以设置Token的作用域为某个账号下所有资源或账号的某个project下的资源,详细定义请参见IAM服务的获取用户Token。 POST https://{{endpoint}}/v3/auth/tokens Content-Type: application/json { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "id": "xxxxxxxxxxxxxxxxxx" } } } } 到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中“x-subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。
  • 请求消息头 附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 详细的公共请求消息头字段请参见表3。 表3 公共请求消息头 名称 描述 是否必选 示例 X-Sdk-Date 请求的发生时间,格式为(YYYYMMDD'T'HHMMSS'Z')。 取值为当前系统的GMT时间。 使用AK/SK认证时必选。 20150907T101459Z Host 请求的服务器信息,从服务API的URL中获取。值为hostname[:port]。端口缺省时使用默认的端口,https的默认端口为443。 使用AK/SK认证时必选。 code.test.com or code.test.com:443 Content-Type 发送的实体的MIME类型。推荐用户默认使用application/json,有其他取值时会在具体接口中专门说明。 是 application/json Content-Length 请求body长度,单位为Byte。 POST/PUT请求必填。 GET不能包含。 3495 X-Project-Id project id,用于不同project取token。 否 e9993fc787d94b6c886cbaa340f9c0f4 X-Auth-Token 用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 否 使用Token认证时必选。 - X-Language 请求语言,支持配置如下值: zh-cn:中文 en-us:英文 是 en-us X-Domain-Id 账号ID。 否 - API同时支持使用AK/SK认证,AK/SK认证是使用SDK对请求进行签名,签名过程会自动往请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。 AK/SK认证的详细说明请参见认证鉴权的“AK/SK认证”。 对于获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添加消息头后的请求如下所示。 POST https://{{endpoint}}/v3/auth/tokens Content-Type: application/json
  • 请求方法 HTTP请求方法(也称为操作或动词),它告诉服务你正在请求什么类型的操作。 表2 HTTP方法 方法 说明 GET 请求服务器返回指定资源。 PUT 请求服务器更新指定资源。 POST 请求服务器新增资源或执行特殊操作。 DELETE 请求服务器删除指定资源,如删除对象等。 HEAD 请求服务器资源头部。 PATCH 请求服务器更新资源的部分内容。 当资源不存在的时候,PATCH可能会去创建一个新的资源。 在获取用户Token的URI部分,您可以看到其请求方法为“POST”,则其请求为: POST https://{{endpoint}}/v3/auth/tokens
  • 请求URI 请求URI由如下部分组成: {URI-scheme}://{Endpoint}/{resource-path}?{query-string} 尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。 表1 URI中的参数说明 参数 说明 URI-scheme 表示用于传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint 指定承载REST服务端点的服务器域名或IP,不同服务不同区域的Endpoint不同,您可以从终端节点及区域获取。 resource-path 资源路径,也即API访问路径。从具体接口的URI模块获取,例如获取用户TokenAPI的resource-path为“/v3/auth/tokens”。 query-string 查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“limit=10”,表示查询不超过10条数据。 例如您需要获取IAM在“华北-北京一”区域的Token,则需使用“华北-北京一”区域的Endpoint(iam.cn-north-1.myhuaweicloud.com),并在获取用户Token的URI部分找到resource-path(/v3/auth/tokens),拼接起来如下所示。 https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens 图1 URI示意图 为查看方便,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以将这两部分内容省略。
  • 响应示例 状态码: 200 查询集群列表成功(lemon字段废弃,enable_openTSDB字段只适用于HBase1.3.1版本)。 { "clusters" : [ { "cluster_name" : "cloudtable-3058", "cluster_id" : "24cebcf3-8c51-493e-84ae-4c0bd2d2334d", "status" : "200", "version" : "v1.1.16", "created" : "2019-02-21T01:51:49", "zookeeper_link" : "cloudtable-3058-zk3-Dqcwuh6R.mycloudtable.com:2181,cloudtable-3058-zk2-TCwkZEie.mycloudtable.com:2181,cloudtable-3058-zk1-TBELUFOK.mycloudtable.com:2181", "az_code" : "kvmxen.dc1", "actions" : [ ], "action_progress" : { }, "enable_dfv" : "true", "enable_lemon" : "false", "enable_openTSDB" : "false", "enable_free" : "false", "auth_mode" : "false" }, { "cluster_name" : "cloudtable-ES", "cluster_id" : "8907e9cc-0e6d-4f86-a719-b7971f84ebe0", "status" : "200", "version" : "v1.1.16", "created" : "2019-02-21T00:52:14", "zookeeper_link" : "cloudtable-es-zk3-iQd6HzKa.mycloudtable.com:2181,cloudtable-es-zk1-dCmsgqrb.mycloudtable.com:2181,cloudtable-es-zk2-mTR1TS4c.mycloudtable.com:2181", "az_code" : "kvmxen.dc1", "actions" : [ ], "action_progress" : { }, "enable_dfv" : "true", "enable_lemon" : "false", "enable_openTSDB" : "false", "enable_free" : "false", "auth_mode" : "false" } ], "count" : 2 }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 clusters Array of ClusterDetail objects 查询到的集群详细列表,每个json体表示一个集群的详情。 count Integer 查询到的集群数量。 表4 ClusterDetail 参数 参数类型 描述 action_progress ActionProgress object 集群操作进度,任务信息,由key、value组成。key值为正在进行的任务,value值为正在进行任务的进度。示例如 "action_progress":{"SNAPSHOTTING":"16%"}。 actions Array of strings 集群操作记录。 auth_mode String 是否开启IAM权限认证。 false:不开启 true:开启 备注:此字段废弃。 az_code String 集群所在的可用区(AZ)。 cluster_id String 集群ID,集群唯一标识。 cluster_name String CloudTable集群名称。 created String 集群创建时间。 enable_dfv String 是否开启DFV。 false:不开启 true:开启 enable_free String 集群是否免费。 false:不免费 true:免费 enable_lemon String 是否开启Lemon。 false:不开启 true:开启 备注:此字段废弃。 enable_openTSDB String 是否开启OpenTSDB。 false:不开启 true:开启 备注:此字段只适用于HBase1.3.1版本。 status String 集群状态: 200:集群正常 300:集群异常 303:集群创建失败 400:集群已删除 tags String 集群标识符。 version String 集群版本号。 zookeeper_link String CloudTable集群ZooKeeper的链接地址。例如:cloudtable-3058-zk3-Dqcwuh6R.mycloudtable.com:2181,cloudtable-3058-zk2-TCwkZEie.mycloudtable.com:2181,cloudtable-3058-zk1-TBELUFOK.mycloudtable.com:2181 表5 ActionProgress 参数 参数类型 描述 CREATING String 创建集群进度,例如:29% GROWING String 扩容集群进度,例如:29% RESTORING String 恢复集群进度,例如:29% SNAPSHOTTING String 集群快照进度,例如:29% REPAIRING String 修复集群进度,例如:29%
  • 请求示例 创建超高IO集群请求样例(enable_openTSDB字段只适用HBase1.3.1版本,enable_lemon字段废弃)。 POST /v2/{project_id}/clusters/ { "cluster" : { "name" : "cloudtable-interfacetest1", "datastore" : { "version" : "1.0.6", "type" : "hbase" }, "vpc_id" : "23af42c2-f57f-499f-8a2f-a934bd05b8b3", "storage_type" : "ULTRAHIGH", "enable_openTSDB" : false, "auth_mode" : false, "enable_lemon" : false, "instance" : { "nics" : [ { "net_id" : "8e8b7b75-5e55-4948-907e-79d06e18c516", "security_group_id" : "57c6e2a1-857c-4504-92b2-24e95bd587cc" } ], "availability_zone" : "cn-north-1a", "cu_num" : 2, "tsd_num" : 0, "lemon_num" : 0 } } }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Language 是 String 语言类型。 表3 请求Body参数 参数 是否必选 参数类型 描述 cluster 是 Cluster object 创建集群参数对象实体。 表4 Cluster 参数 是否必选 参数类型 描述 auth_mode 否 String 是否开启IAM权限认证。 false:不开启 true:开启 备注:此字段废弃。 enable_lemon 否 Boolean 是否开启Lemon(目前已关闭该参数,填false即可) false:不开启 true:开启 备注:此字段废弃。 enable_openTSDB 否 Boolean 是否开启OpenTSDB。 false:不开启 true:开启 备注:此字段只适用HBase1.3.1版本。 instance 是 Instance object 集群的实例对象。 name 是 String CloudTable集群的名称。 storage_size 否 Integer 存储值的大小。 HBase取值范围: 800GB-10TB。 storage_type 是 String 存储类型: ULTRAHIGH:超高IO COMMON:普通IO vpc_id 是 String 集群所在的(虚拟网络私有云)VPC。 datastore 是 Datastore object 创建集群数据库参数。 表5 Instance 参数 是否必选 参数类型 描述 availability_zone 是 String 集群所在可用区的ID。 cu_num 是 Integer CloudTable集群计算单元节点数目,至少为2。 lemon_num 否 Integer CloudTable集群Lemon节点数目。 备注:此字段废弃。 nics 是 Array of Nics objects 集群所在网络信息。 tsd_num 是 Integer CloudTable集群TSD节点数目,至少为2。 备注:此字段废弃。 表6 Nics 参数 是否必选 参数类型 描述 net_id 是 String CloudTable集群所在网络ID。 security_group_id 是 String CloudTable所在安全组对应的ID。 表7 Datastore 参数 是否必选 参数类型 描述 version 是 String controller版本号,默认1.0.6。 type 是 String 集群数据库类型。
共100000条