华为云用户手册

  • 响应参数 表2 响应参数 参数 参数类型 描述 datastore_version String 引擎版本。 datastore_name String 引擎名称。 created String 创建时间,格式为"yyyy-MM-dd HH:mm:ss"。 updated String 更新时间,格式为"yyyy-MM-ddHH:mm:ss"。 configuration_parameters Array of objects 参数对象,用户基于默认参数模板自定义的参数配置,具体请参考表3。 表3 configuration_parameters字段数据结构说明 参数 参数类型 描述 name String 参数名称。 value String 参数值。 restart_required Boolean 修改该参数是否需要重启实例。 value_range String 参数取值范围。 type String 参数类型,取值为“string”、“integer”、“boolean”、“list”或“float”之一。 枚举值: string integer boolean list float description String 参数描述。
  • 响应示例 { "created": "2022-04-11 10:46:59", "updated": "2022-04-11 10:46:59", "datastore_version": "2.0", "datastore_name": " GaussDB ", "configuration_parameters": [ { "name": "audit_system_object", "value": "12295", "type": "integer", "description": "该参数决定是否对数据库对象的CREATE、DROP、ALTER操作进行审计。", "restart_required": false, "value_range": "0-2097151" } ] }
  • URI GET https://{Endpoint}/v3/{project_id}/instance-snapshot?instance_id={instance_id}&restore_time={restore_time}&backup_id={backup_id} 表1 参数说明 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一Region下的项目ID。 获取方法请参见获取项目ID。 instance_id 否 String 原实例ID。 restore_time 否 String 根据时间点查看实例的备份信息时,需要填写restore_time。 UNIX时间戳格式,单位是毫秒,时区是UTC,某时间点实例的信息。 backup_id 否 String 备份ID。 根据备份ID恢复实例时,需要填写该参数。
  • 响应参数 表2 参数说明 参数 参数类型 描述 cluster_mode String 实例部署形态。 枚举值: Ha:主备版。 Independent:独立部署。 Combined:混合部署。 instance_mode String 实例模型。 枚举值: basic:基础版。 standard:标准版。 enterprise:企业版。 data_volume_size String 磁盘大小,单位:GB。 solution String 解决方案模板类型。 枚举值: single:单节点。 double:1主1备2节点部署。 triset:1主2备。 logger:1主1备1日志。 loggerdorado:1主1备1日志(共享存储)。 quadruset:1主3备。 hws:分布式(独立部署)。 node_num Integer 节点数量。 coordinator_num Integer 协调节点数量。 sharding_num Integer 分片数量。 replica_num Integer 副本数量。 engine_version String 引擎版本。
  • 响应示例 { "cluster_mode" : "Ha", "instance_mode" : "enterprise", "data_volume_size" : "200", "solution" : "triset", "node_num" : 3, "coordinator_num" : 0, "sharding_num" : 3, "replica_num" : 3, "engine_version" : "2.2.90" }
  • 请求参数 表2 参数说明 名称 是否必选 参数类型 说明 name 是 String 数据库账号名称,不能为系统账号用户。系统用户包括“rdsAdmin”,“rdsMetric”, “rdsBackup”, “rdsRepl”。 password 是 String 数据库账号密码。 取值范围: 非空,至少包含以下字符中的三种:大写字母、小写字母、数字和特殊符号~!@#%^*-_=+?,组成,长度8~32个字符,不能和数据库账号“name”或“name”的逆序相同。 建议您输入高强度密码,以提高安全性,防止出现密码被暴力破解等安全风险。
  • 请求示例 重置数据库root账号的密码。 PUT https://gaussdb-opengauss.cn-north-1.myhuaweicloud.com/v3/0483b6b16e954cb88930a360d2c4e663/instances/{instance_id}/db-user/password { "name" : "root", "password" : "*******" }
  • 请求示例 应用参数模板。 PUT https://gaussdb-opengauss.cn-north-4.myhuaweicloud.com/v3/054b61972980d4552f0bc00ac8d3f5cd/configurations/3ca44134a16d4bbab8eb701e025b19f7pr14/apply { "instance_ids" : [ "5362449138da4e408dbae5152ca26640in14", "ea926816f0154066830d12ebebc8562din14" ] }
  • URI GET https://{Endpoint}/opengauss/v3/{project_id}/instances?id={id}&name={name}&type={type}&datastore_type={datastore_type}&vpc_id={vpc_id}&subnet_id={subnet_id}&offset={offset}&limit={limit} 表1 参数说明 名称 参数类型 是否必选 说明 project_id String 是 租户在某一Region下的项目ID。 获取方法请参见获取项目ID。 id String 否 实例ID。 “*”为系统保留字符,如果id是以“*”起始,表示按照*后面的值模糊匹配,否则,按照id精确匹配查询。不能只传入“*”。 name String 否 实例名称。 “*”为系统保留字符,如果name是以“*”起始,表示按照*后面的值模糊匹配,否则,按照name精确匹配查询。不能只传入“*”。 type String 否 按照实例类型查询。目前仅支持取值“Enterprise”(区分大小写),对应分布式实例(企业版)。 datastore_type String 否 数据库类型,不区分大小写。 GaussDB vpc_id String 否 虚拟私有云ID。 方法1:登录虚拟私有云服务的控制台界面,在虚拟私有云的详情页面查找VPC ID。 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考查询VPC列表。 subnet_id String 否 子网的网络ID信息。 方法1:登录虚拟私有云服务的控制台界面,单击VPC下的子网,进入子网详情页面,查找网络ID。 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考查询子网列表。 offset Integer 否 索引位置,偏移量。从第一条数据偏移offset条数据后开始查询,默认为0(偏移0条数据,表示从第一条数据开始查询),必须为数字,不能为负数。 limit Integer 否 查询记录数。默认为100,不能为负数,最小值为1,最大值为100。 tags String 否 根据实例标签键值对进行查询。 {key}表示标签键,最大长度127个unicode字符。key不能为空或者空字符串,不能为空格,使用之前先trim前后半角空格。不能包含+/?#&=,%特殊字符。 {value}表示标签值,可以为空。最大长度255个unicode字符,使用之前先trim 前后半角空格。不能包含+/?#&=,%特殊字符。如果value为空,则表示any_value(查询任意value)。 如果同时使用多个标签键值对进行查询,中间使用逗号分隔开,最多包含10组。
  • 请求示例 查询所有实例列表 https://gaussdb-opengauss.cn-north-1.myhuaweicloud.com/opengauss/v3/97b026aa9cc4417888c14c84a1ad9860/instances 根据指定条件查询实例列表 https://gaussdb-opengauss.cn-north-1.myhuaweicloud.com/opengauss/v3/97b026aa9cc4417888c14c84a1ad9860/instances?id=ed7cc6166ec24360a5ed5c5c9c2ed726in14&name=hy&type=Enterprise&datastore_type=GaussDB&vpc_id=19e5d45d-70fd-4a91-87e9-b27e71c9891f&subnet_id=bd51fb45-2dcb-4296-8783-8623bfe89bb7&offset=0&limit=10
  • 响应示例 实例列表: { "instances": [ { "id": "b331ed66cc3249f78bc20737308c01f4in14", "status": "ACTIVE", "name": "gauss-9e88", "port": 8000, "type": "enterprise", "ha": { "consistency": "strong", "replication_mode": "sync" }, "region": "aaa", "datastore": { "type": "GaussDB", "version": "1.4" }, "created": "2021-01-15 01:46:40 UTC", "updated": "2021-01-15 02:05:03 UTC", "volume": { "type": "ULTRAHIGH", "size": 120 }, "nodes": [ { "id": "02ebf757aaf94074855f49cc6e0e4712no14", "name": "gauss-9e88_gaussdbv5cn_2", "role": "master", "status": "ACTIVE", "availability_zone": "bbb" }, { "id": "0a87b8ecbfeb46aba1409cfc0f0d5c34no14", "name": "gauss-9e88_gaussdbv5cn_0", "role": "master", "status": "ACTIVE", "availability_zone": "bbb" }, { "id": "2d9fec1ab3834936b074d63acf48b1f2no14", "name": "gauss-9e88_gaussdbv5dn3_2", "role": "master", "status": "ACTIVE", "availability_zone": "bbb" }, { "id": "48bb08a2d635435891ac0caa1c0bf2e3no14", "name": "gauss-9e88_gaussdbv5dn1_0", "role": "master", "status": "ACTIVE", "availability_zone": "bbb" }, { "id": "5df830f652204827ada32f8bc28b107eno14", "name": "gauss-9e88_gaussdbv5dn1_1", "role": "slave", "status": "ACTIVE", "availability_zone": "bbb" }, { "id": "8a97a246cee841b38c5b47290d4c9c38no14", "name": "gauss-9e88_gaussdbv5cn_1", "role": "master", "status": "ACTIVE", "availability_zone": "bbb" }, { "id": "8c1a3f8eecca4d9e9974a868bb6dd942no14", "name": "gauss-9e88_gaussdbv5dn2_0", "role": "master", "status": "ACTIVE", "availability_zone": "bbb" }, { "id": "9bd0c80b8a684cc9bd7d99dd5adffb07no14", "name": "gauss-9e88_gaussdbv5dn3_1", "role": "slave", "status": "ACTIVE", "availability_zone": "bbb" }, { "id": "9e2a3cd541e249d4af5aa57c5d3a7f39no14", "name": "gauss-9e88_gaussdbv5dn1_2", "role": "slave", "status": "ACTIVE", "availability_zone": "bbb" }, { "id": "b046d28989ec4ae5a1a9ab20fe65f248no14", "name": "gauss-9e88_gaussdbv5dn2_2", "role": "slave", "status": "ACTIVE", "availability_zone": "bbb" }, { "id": "b614cc12fd3742dbb230245f88a7bf00no14", "name": "gauss-9e88_gaussdbv5dn3_0", "role": "slave", "status": "ACTIVE", "availability_zone": "bbb" }, { "id": "caba8e88c3c84ae58202f1f589490611no14", "name": "gauss-9e88_gaussdbv5dn2_1", "role": "slave", "status": "ACTIVE", "availability_zone": "bbb" } ], "tags": [], "private_ips": [ "192.168.28.81 / 192.168.27.52 / 192.168.16.253" ], "public_ips": [], "replice_num": 3, "db_user_name": "root", "vpc_id": "5f84a5c4-2f93-41de-8359-d7acedb585cc", "subnet_id": "300036af-a92f-4e9e-8e9f-7d20e7878b05", "security_group_id": "2dcfd40a-8f32-46b8-8a47-6cfab5eba163", "flavor_ref": "gaussdb.opengauss.ee.dn.m6.large.8.in", "flavor_info": { "vcpu": 2, "mem": 16 }, "switch_strategy": "Reliability", "charge_info": { "charge_mode": "prePaid" }, "backup_strategy": { "start_time": "19:00-20:00", "keep_days": 7 }, "maintenance_window": "18:00-22:00", "related_instance": [], "disk_encryption_id": "24ae42b5-4009-4ea2-b66a-0b211e424dab", "enterprise_project_id": "6e76681b-a2f5-4c5f-97c5-ba4fd3c0dfb2", "time_zone": "UTC+08:00", "instance_mode":"enterprise", "order_id": " CS 2101150917EUW8N" }, { "id": "226b4afcfcc84c86bf1b9cb345d3b00fin14", "status": "ACTIVE", "name": "UTS-gauss-ad53-2C3D", "port": 8000, "type": "enterprise", "ha": { "consistency": "strong", "replication_mode": "sync" }, "region": "aaa", "datastore": { "type": "GaussDB", "version": "1.4" }, "created": "2021-01-08 09:18:27 UTC", "updated": "2021-01-14 13:25:03 UTC", "volume": { "type": "ULTRAHIGH", "size": 120 }, "nodes": [ { "id": "07538a1def584cee99e2a5685eeab36ano14", "name": "UTS-gauss-ad53-2C3D_gaussdbv5dn3_1", "role": "slave", "status": "ACTIVE", "availability_zone": "az2xahz" }, { "id": "21f41baba1e2454f82331b7cb5aeabe5no14", "name": "UTS-gauss-ad53-2C3D_gaussdbv5dn1_2", "role": "master", "status": "ACTIVE", "availability_zone": "az2xahz" }, { "id": "2909771a3b3e4e3998f9388e77d22391no14", "name": "UTS-gauss-ad53-2C3D_gaussdbv5dn1_0", "role": "slave", "status": "ACTIVE", "availability_zone": "az2xahz" }, { "id": "2bd9a90a5da242a6b0743a7f597f6106no14", "name": "UTS-gauss-ad53-2C3D_gaussdbv5dn2_2", "role": "master", "status": "ACTIVE", "availability_zone": "az2xahz" }, { "id": "77092f1dadb74d3ea13d28269cdd3590no14", "name": "UTS-gauss-ad53-2C3D_gaussdbv5dn3_2", "role": "master", "status": "ACTIVE", "availability_zone": "az2xahz" }, { "id": "a46bfaa6d5a24355a60fce7432b964cano14", "name": "UTS-gauss-ad53-2C3D_gaussdbv5dn3_0", "role": "slave", "status": "ACTIVE", "availability_zone": "az2xahz" }, { "id": "aa5277736f3844e2a7adeb9de529e2b1no14", "name": "UTS-gauss-ad53-2C3D_gaussdbv5dn2_1", "role": "slave", "status": "ACTIVE", "availability_zone": "az2xahz" }, { "id": "b1d798e4ea7344dfa95032984bc6cfd7no14", "name": "UTS-gauss-ad53-2C3D_gaussdbv5cn_1", "role": "master", "status": "ACTIVE", "availability_zone": "az2xahz" }, { "id": "b9a46540186f4c0781eabaa2a79594cbno14", "name": "UTS-gauss-ad53-2C3D_gaussdbv5dn1_1", "role": "slave", "status": "ACTIVE", "availability_zone": "az2xahz" }, { "id": "d283813030364060ab64371d50294977no14", "name": "UTS-gauss-ad53-2C3D_gaussdbv5dn2_0", "role": "slave", "status": "ACTIVE", "availability_zone": "az2xahz" }, { "id": "eb7bce29b2284cd290405eaddc1b1a1eno14", "name": "UTS-gauss-ad53-2C3D_gaussdbv5cn_0", "role": "master", "status": "FAILED", "availability_zone": "az2xahz" } ], "tags": [], "private_ips": [ "192.168.30.44 / 192.168.29.231" ], "public_ips": [ "10.154.217.248" ], "db_user_name": "root", "vpc_id": "5f84a5c4-2f93-41de-8359-d7acedb585cc", "subnet_id": "300036af-a92f-4e9e-8e9f-7d20e7878b05", "security_group_id": "2dcfd40a-8f32-46b8-8a47-6cfab5eba163", "flavor_ref": "gaussdb.opengauss.ee.dn.m6.large.8.in", "flavor_info": { "vcpu": 2, "mem": 16 }, "switch_strategy": "Reliability", "charge_info": { "charge_mode": "prePaid" }, "backup_strategy": { "start_time": "18:00-19:00", "keep_days": 7 }, "maintenance_window": "18:00-22:00", "related_instance": [], "enterprise_project_id": "0", "time_zone": "UTC+08:00", "instance_mode":"enterprise", "order_id": "CS21010817315KY81" }, { "id": "706c65c3dd7d497ab16f5b3a113690abin14", "status": "ACTIVE", "name": "UTS-gauss-7362", "port": 8000, "type": "enterprise", "ha": { "replication_mode": "sync" }, "region": "cn-xianhz-1", "datastore": { "type": "GaussDB", "version": "1.2" }, "created": "2020-12-23 03:21:41 UTC", "updated": "2021-01-15 02:32:13 UTC", "volume": { "type": "ULTRAHIGH", "size": 80 }, "nodes": [ { "id": "25b7f16ee4084b7884d52f1bdfab4e68no14", "name": "UTS-gauss-7362_gaussdbv5dn1_2", "role": "master", "status": "ACTIVE", "availability_zone": "az2xahz" }, { "id": "ad6f02f31744422fa8ce487e81c9e7afno14", "name": "UTS-gauss-7362_gaussdbv5cn_0", "role": "master", "status": "ACTIVE", "availability_zone": "az2xahz" }, { "id": "b30c56582bf44a548e3bb5b5af6c4773no14", "name": "UTS-gauss-7362_gaussdbv5dn1_1", "role": "slave", "status": "ACTIVE", "availability_zone": "az2xahz" }, { "id": "f79ea0600cba42b2888bd9bd67e52a79no14", "name": "UTS-gauss-7362_gaussdbv5dn1_0", "role": "slave", "status": "ACTIVE", "availability_zone": "az2xahz" } ], "tags": [], "private_ips": [ "192.168.26.70" ], "public_ips": [], "replice_num": 3, "db_user_name": "root", "vpc_id": "5f84a5c4-2f93-41de-8359-d7acedb585cc", "subnet_id": "300036af-a92f-4e9e-8e9f-7d20e7878b05", "security_group_id": "2dcfd40a-8f32-46b8-8a47-6cfab5eba163", "flavor_ref": "gaussdb.opengauss.ee.dn.m6.large.8.in", "flavor_info": { "vcpu": 2, "mem": 16 }, "switch_strategy": "Reliability", "charge_info": { "charge_mode": "postPaid" }, "backup_strategy": { "start_time": "16:00-17:00", "keep_days": 7 }, "maintenance_window": "18:00-22:00", "related_instance": [], "enterprise_project_id": "0", "time_zone": "UTC+08:00", "instance_mode":"enterprise", }, { "id": "4ad42d079a3948d88c28d6236211b21ein14", "status": "ACTIVE", "name": "UTS-gauss-4336", "port": 8000, "type": "enterprise", "ha": { "replication_mode": "sync" }, "region": "cn-xianhz-1", "datastore": { "type": "GaussDB", "version": "1.4" }, "created": "2020-12-03 14:28:53 UTC", "updated": "2021-01-14 13:20:10 UTC", "volume": { "type": "ULTRAHIGH", "size": 40 }, "nodes": [ { "id": "254dbda6f03643519ad64b39481bd11cno14", "name": "UTS-gauss-4336_gaussdbv5dn1_2", "role": "master", "status": "ACTIVE", "availability_zone": "az1xahz" }, { "id": "6ad76d4db26443c2a93b280739a31558no14", "name": "UTS-gauss-4336_gaussdbv5dn1_1", "role": "slave", "status": "ACTIVE", "availability_zone": "az1xahz" }, { "id": "9fdebf821bdf444a8689b19c0ff588ceno14", "name": "UTS-gauss-4336_gaussdbv5cn_0", "role": "master", "status": "FAILED", "availability_zone": "az1xahz" }, { "id": "dd64bdbc02a542d88823b1582f772d25no14", "name": "UTS-gauss-4336_gaussdbv5cn_1", "role": "master", "status": "ACTIVE", "availability_zone": "az1xahz" }, { "id": "de3c41461045466faf6c2b96eb709540no14", "name": "UTS-gauss-4336_gaussdbv5dn1_0", "role": "slave", "status": "ACTIVE", "availability_zone": "az1xahz" } ], "tags": [], "private_ips": [ "192.168.30.93 / 192.168.29.232" ], "public_ips": [], "db_user_name": "root", "vpc_id": "5f84a5c4-2f93-41de-8359-d7acedb585cc", "subnet_id": "300036af-a92f-4e9e-8e9f-7d20e7878b05", "security_group_id": "2dcfd40a-8f32-46b8-8a47-6cfab5eba163", "flavor_ref": "gaussdb.opengauss.ee.dn.m6.large.8.in", "flavor_info": { "vcpu": 2, "mem": 16 }, "switch_strategy": "Reliability", "charge_info": { "charge_mode": "postPaid" }, "backup_strategy": { "start_time": "18:00-19:00", "keep_days": 7 }, "maintenance_window": "18:00-22:00", "related_instance": [], "enterprise_project_id": "0", "time_zone": "UTC+08:00", "instance_mode":"enterprise", } ], "total_count": 4 } 实例详情: { "instances": [ { "id": "706c65c3dd7d497ab16f5b3a113690abin14", "status": "ACTIVE", "name": "UTS-gauss-7362", "port": 8000, "type": "enterprise", "ha": { "replication_mode": "sync" }, "region": "aaa", "datastore": { "type": "GaussDB", "version": "1.4" }, "created": "2020-12-23 03:21:41 UTC", "updated": "2021-01-15 02:32:13 UTC", "volume": { "type": "ULTRAHIGH", "size": 80 }, "nodes": [ { "id": "25b7f16ee4084b7884d52f1bdfab4e68no14", "name": "UTS-gauss-7362_gaussdbv5dn1_2", "role": "master", "status": "ACTIVE", "availability_zone": "bbb" }, { "id": "ad6f02f31744422fa8ce487e81c9e7afno14", "name": "UTS-gauss-7362_gaussdbv5cn_0", "role": "master", "status": "ACTIVE", "availability_zone": "bbb" , }, { "id": "b30c56582bf44a548e3bb5b5af6c4773no14", "name": "UTS-gauss-7362_gaussdbv5dn1_1", "role": "slave", "status": "ACTIVE", "availability_zone": "bbb" }, { "id": "f79ea0600cba42b2888bd9bd67e52a79no14", "name": "UTS-gauss-7362_gaussdbv5dn1_0", "role": "slave", "status": "ACTIVE", "availability_zone": "bbb" } ], "tags": [], "private_ips": [ "192.168.26.70 / 192.168.28.81" ], "public_ips": [], "db_user_name": "root", "vpc_id": "5f84a5c4-2f93-41de-8359-d7acedb585cc", "subnet_id": "300036af-a92f-4e9e-8e9f-7d20e7878b05", "security_group_id": "2dcfd40a-8f32-46b8-8a47-6cfab5eba163", "flavor_ref": "gaussdb.opengauss.ee.dn.m6.large.8.in", "flavor_info": { "vcpu": 2, "mem": 16 }, "switch_strategy": "Reliability", "charge_info": { "charge_mode": "postPaid" }, "backup_strategy": { "start_time": "16:00-17:00", "keep_days": 7 }, "maintenance_window": "18:00-22:00", "related_instance": [], "enterprise_project_id": "0", "time_zone": "UTC+08:00" "instance_mode":"enterprise", } ], "total_count": 1 }
  • 请求示例 删除 GaussDB数据库 ,库名为gaussdb_test。 DELETE https://gaussdb-opengauss.cn-north-1.myhuaweicloud.com/v3/0483b6b16e954cb88930a360d2c4e663/instances/{instance_id}/database?database_name={database_name} { "database_name" : "gaussdb_test" }
  • 响应示例 { "backups": [ { "id": "a696cd25e4fc453aa503650225cece8bbr14", "name": "GaussDB-hly-ha-20220509080110906", "description": null, "status": "FAILED", "size": 0.0, "type": "auto", "datastore": { "type": "GaussDB", "version": "1.4" }, "begin_time": "2022-05-09T16:01:10+0800", "end_time": "2022-05-09T16:04:31+0800", "instance_id": "164abc6d35114095bb849d007b19db3bin14" }, { "id": "5651c62a7f12461c98020dd3abfe24ccbr14", "name": "GaussDB-hly-master-20220509022658257", "description": null, "status": "FAILED", "size": 0.0, "type": "auto", "datastore": { "type": "GaussDB", "version": "1.4" }, "begin_time": "2022-05-09T10:26:58+0800", "end_time": "2022-05-09T10:30:17+0800", "instance_id": "fd26e3bf26e5467587eec857e4f66ef0in14" } ], "total_count": 167 }
  • 响应参数 表2 响应参数 参数 参数类型 描述 backups Array of objects 备份信息。 详情请参见表3。 total_count Long 备份文件的总数。 表3 backups字段数据结构说明 参数 参数类型 描述 id String 备份ID。 name String 备份名称。 description String 备份文件描述信息。 begin_time String 备份开始时间,格式为"yyyy-mm-ddThh:mm:ssZ"。 其中,T指某个时间的开始;Z指时区偏移量,例如北京时间偏移显示为+0800。 end_time String 备份结束时间,格式为“yyyy-mm-ddThh:mm:ssZ”。 其中,T指某个时间的开始;Z指时区偏移量,例如北京时间偏移显示为+0800。 status String 备份状态 枚举值: BUILDING:备份中。 COMPLETED:备份完成。 FAILED:备份失败。 size Double 备份大小(单位:MB)。 type String 备份类型 取值: auto:自动全量备份。 manual:手动全量备份。 datastore Object 数据库信息。 详情请参见表4 instance_id String 实例ID。 表4 datastore字段数据结构说明 参数 参数类型 描述 type String 数据库引擎,不区分大小写,取值如下: GaussDB。 version String 数据库版本。不填时,默认为当前最新版本。 数据库支持版本可根据查询数据库引擎的版本接口获取。
  • URI GET https://{Endpoint}/v3/{project_id}/backups?instance_id={instance_id}&backup_id={backup_id}&backup_type={backup_type}&offset={offset}&limit={limit}&begin_time={begin_time}&end_time={end_time} 表1 参数说明 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一Region下的项目ID。 获取方法请参见获取项目ID。 instance_id 否 String 实例ID。 backup_id 否 String 备份ID,严格匹配UUID规则。 backup_type 否 String 备份类型,取值范围: auto 自动全量备份 manual 手动全量备份 offset 否 Integer 索引位置,偏移量。从第一条数据偏移offset条数据后开始查询,默认为0(偏移0条数据,表示从第一条数据开始查询),必须为数字,不能为负数。 最小值:0 limit 否 Integer 查询记录数。默认为100,不能为负数,最小值为1,最大值为100。 最小值:1 最大值:100 begin_time 否 String 查询开始时间,格式为“yyyy-mm-ddThh:mm:ssZ”。其中,T指某个时间的开始;Z指时区偏移量,例如北京时间偏移显示为+0800。与end_time必须同时使用。 end_time 否 String 查询结束时间,格式为“yyyy-mm-ddThh:mm:ssZ”,且大于查询开始时间。其中,T指某个时间的开始;Z指时区偏移量,例如北京时间偏移显示为+0800。与begin_time必须同时使用。
  • 响应示例 非包租期用户响应消息样例: { "job_id": "2b414788a6004883a02390e2eb0ea227" } 包租期用户响应消息样例: { "payInfo": { "payModel": null, "orderId": "CS2105061116HNTVI", "period": null, "periodType": 5, "isAutoRenew": 0, "isAutoPay": 1 }, "job_id": null }
  • 请求参数 表2 请求参数 名称 是否必选 参数类型 说明 expand_cluster 是 Object 请参见表3 表3 expand_cluster字段数据结构说明 名称 是否必选 参数类型 说明 coordinators 是 Array 请参见表4 isAutoPay 否 int 包周期用户需要填写该字段。 0:表示不自动支付扩容订单费用 1:表示自动支付扩容订单费用 不填写则保持默认。默认值:0 表4 azCode字段数据结构说明 名称 是否必选 参数类型 说明 az_code 是 String 新增CN横向扩容每个节点的可用区
  • 请求示例 扩单CN。 https://gaussdb-opengauss.cn-north-1.myhuaweicloud.com/opengauss/v3/0483b6b16e954cb88930a360d2c4e663/instances/dsfae23fsfdsae3435in01/action { "expand_cluster": { "coordinators": [ { "az_code":"az1xahz" } ], "isAutoPay":0 } } 扩多CN。 https://gaussdb-opengauss.cn-north-1.myhuaweicloud.com/opengauss/v3/0483b6b16e954cb88930a360d2c4e663/instances/dsfae23fsfdsae3435in01/action { "expand_cluster": { "coordinators": [ { "az_code":"az1xahz" }, { "az_code":"az2xahz" }, { "az_code":"az3xahz" } ] } }
  • 响应示例 查询数据库列表成功。 { "databases" : [ { "name" : "rds-test", "character_set" : "utf8", "owner" : "root", "collate_set" : "en_US.UTF-8", "size" : 10777247 }, { "name" : "testdb1", "character_set" : "utf8", "owner" : "root", "collate_set" : "en_US.UTF-8", "size" : 10777247 }, { "name" : "tt", "character_set" : "utf8", "owner" : "root", "collate_set" : "en_US.UTF-8", "size" : 10777247 } ], "total_count" : 3 }
  • 响应参数 表2 参数说明 参数 参数类型 描述 databases Array of objects 列表中每个元素表示一个数据库。详情参见表3。 total_count Integer 总记录数。 表3 databases字段数据结构说明 参数 参数类型 描述 name String 数据库名称。 owner String 数据库所属用户。 character_set String 数据库使用的字符集,例如UTF8。 collate_set String 数据库排序集,例如en_US.UTF-8等。 size String 数据库大小。
  • URI GET https://{Endpoint}/v3/{project_id}/instances/{instance_id}/databases 表1 参数说明 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一Region下的项目ID。 获取方法请参见获取项目ID。 instance_id 是 String 实例ID。 offset 否 Integer 分页符。从第一条数据偏移offset页数据后开始查询,默认为0(偏移0页数据,表示从第一条数据开始查询),必须为数字,不能为负数。例如:该参数指定为1,limit指定为10,则只展示第11~20条数据。 limit 否 Integer 每页显示的条目数量,取值范围[1, 100],默认10。
  • 响应示例 查询参数模板的应用记录成功。 { "total_count": 2, "histories": [ { "instance_id": "1995a67680474481b3e42ac1474e32e0in14", "instance_name": "gauss-a283", "apply_result" : "SUC CES S", "applied_at" : "2022-08-09T03:06:52+0800", "error_code" : null }, { "instance_id": "8303819fd8744ef69f34595e9710a33din14", "instance_name": "gauss-2423-lt-master", "apply_result" : "FAILED", "applied_at" : "2022-08-09T03:06:52+0800", "error_code" : "DBS.280005" } ] }
  • 响应参数 表2 参数说明 参数 参数类型 描述 histories Array of objects 应用记录列表,具体参数请参考表3。 total_count Integer 总记录数。 表3 histories字段数据结构说明 参数 参数类型 描述 instance_id String 实例ID。 instance_name String 实例名称。 apply_result String 应用状态。 SUCCESS FAILED APPLYING applied_at String 应用时间,格式为“yyyy-mm-ddThh:mm:ssZ”。 其中,T指某个时间的开始;Z指时区偏移量,例如北京时间偏移显示为+0800。 error_code String 失败原因错误码,如DBS.280005。
  • URI GET https://{Endpoint}/v3/{project_id}/configurations/{config_id}/applied-histories 表1 参数说明 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一Region下的项目ID。 获取方法请参见获取项目ID。 config_id 是 String 参数模板ID。 offset 否 Integer 索引位置,偏移量。从第一条数据偏移offset条数据后开始查询,默认为0(偏移0条数据,表示从第一条数据开始查询),必须为数字,不能为负数。例如:该参数指定为0,limit指定为10,则只展示第1-10条数据。 limit 否 Integer 查询记录数。默认为100,不能为负数,最小值为1,最大值为100。例如该参数设定为10,则查询结果最多只显示10条记录。
  • 示例:授予命名空间只读权限(view) view权限拥有命名空间查看权限,您可以给某个或全部命名空间授权。 图8 授予default命名空间只读权限(view) 如果使用kubectl查看可以看到创建了一个RoleBinding,将view和cce-role-group这个用户组绑定了起来,且权限范围是default这个命名空间。 # kubectl get rolebinding NAME ROLE AGE clusterrole_view_group0c96fad22880f32a3f84c009862af6f7 ClusterRole/view 7s # kubectl get rolebinding clusterrole_view_group0c96fad22880f32a3f84c009862af6f7 -oyaml apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: CCE.com/ IAM : "true" creationTimestamp: "2021-06-24T01:36:53Z" name: clusterrole_view_group0c96fad22880f32a3f84c009862af6f7 namespace: default resourceVersion: "36965800" selfLink: /apis/rbac.authorization.k8s.io/v1/namespaces/default/rolebindings/clusterrole_view_group0c96fad22880f32a3f84c009862af6f7 uid: b86e2507-e735-494c-be55-c41a0c4ef0dd roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: view subjects: - apiGroup: rbac.authorization.k8s.io kind: Group name: 0c96fad22880f32a3f84c009862af6f7 使用被授予用户连接集群,您会发现可以查询default命名空间的资源,但无法创建资源。 # kubectl get pod NAME READY STATUS RESTARTS AGE test-568d96f4f8-brdrp 1/1 Running 0 40m test-568d96f4f8-cgjqp 1/1 Running 0 40m # kubectl run -i --tty --image tutum/dnsutils dnsutils --restart=Never --rm /bin/sh Error from server (Forbidden): pods is forbidden: User "0c97ac3cb280f4d91fa7c0096739e1f8" cannot create resource "pods" in API group "" in the namespace "default"
  • 示例:授予集群管理员权限(cluster-admin) 集群全部权限可以使用cluster-admin权限,cluster-admin包含集群所有资源的权限。 图5 授予集群管理员权限(cluster-admin) 如果使用kubectl查看可以看到创建了一个ClusterRoleBinding,将cluster-admin和cce-role-group这个用户组绑定了起来。 # kubectl get clusterrolebinding NAME ROLE AGE clusterrole_cluster-admin_group0c96fad22880f32a3f84c009862af6f7 ClusterRole/cluster-admin 61s # kubectl get clusterrolebinding clusterrole_cluster-admin_group0c96fad22880f32a3f84c009862af6f7 -oyaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: CCE.com/IAM: "true" creationTimestamp: "2021-06-23T09:15:22Z" name: clusterrole_cluster-admin_group0c96fad22880f32a3f84c009862af6f7 resourceVersion: "36659058" selfLink: /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/clusterrole_cluster-admin_group0c96fad22880f32a3f84c009862af6f7 uid: d6cd43e9-b4ca-4b56-bc52-e36346fc1320 roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - apiGroup: rbac.authorization.k8s.io kind: Group name: 0c96fad22880f32a3f84c009862af6f7 使用被授予用户连接集群,如果能正常查询PV、StorageClass的信息,则说明权限配置正常。 # kubectl get pv No resources found # kubectl get sc NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE csi-disk everest-csi-provisioner Delete Immediate true 75d csi-disk-topology everest-csi-provisioner Delete WaitForFirstConsumer true 75d csi-nas everest-csi-provisioner Delete Immediate true 75d csi-obs everest-csi-provisioner Delete Immediate false 75d csi-sfsturbo everest-csi-provisioner Delete Immediate true 75d
  • 示例:授予命名空间运维权限(admin) admin权限拥有命名空间大多数资源的读写权限,您可以授予用户/用户组全部命名空间admin权限。 图6 授予全部命名空间运维权限(admin) 如果使用kubectl查看可以看到创建了一个RoleBinding,将admin和cce-role-group这个用户组绑定了起来。 # kubectl get rolebinding NAME ROLE AGE clusterrole_admin_group0c96fad22880f32a3f84c009862af6f7 ClusterRole/admin 18s # kubectl get rolebinding clusterrole_admin_group0c96fad22880f32a3f84c009862af6f7 -oyaml apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: CCE.com/IAM: "true" creationTimestamp: "2021-06-24T01:30:08Z" name: clusterrole_admin_group0c96fad22880f32a3f84c009862af6f7 resourceVersion: "36963685" selfLink: /apis/rbac.authorization.k8s.io/v1/namespaces/default/rolebindings/clusterrole_admin_group0c96fad22880f32a3f84c009862af6f7 uid: 6c6f46a6-8584-47da-83f5-9eef1f7b75d6 roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: admin subjects: - apiGroup: rbac.authorization.k8s.io kind: Group name: 0c96fad22880f32a3f84c009862af6f7 使用被授予用户连接集群,如果能正常查询PV、StorageClass的信息,但无法创建命名空间,则说明权限配置正常。 # kubectl get pv No resources found # kubectl get sc NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE csi-disk everest-csi-provisioner Delete Immediate true 75d csi-disk-topology everest-csi-provisioner Delete WaitForFirstConsumer true 75d csi-nas everest-csi-provisioner Delete Immediate true 75d csi-obs everest-csi-provisioner Delete Immediate false 75d csi-sfsturbo everest-csi-provisioner Delete Immediate true 75d # kubectl apply -f namespaces.yaml Error from server (Forbidden): namespaces is forbidden: User "0c97ac3cb280f4d91fa7c0096739e1f8" cannot create resource "namespaces" in API group "" at the cluster scope
  • 示例:授予命名空间开发权限(edit) edit权限拥有命名空间大多数资源的读写权限,您可以授予用户/用户组全部命名空间edit权限。 图7 授予default命名空间开发权限(edit) 如果使用kubectl查看可以看到创建了一个RoleBinding,将edit和cce-role-group这个用户组绑定了起来,且权限范围是default这个命名空间。 # kubectl get rolebinding NAME ROLE AGE clusterrole_admin_group0c96fad22880f32a3f84c009862af6f7 ClusterRole/admin 18s # kubectl get rolebinding clusterrole_admin_group0c96fad22880f32a3f84c009862af6f7 -oyaml apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: CCE.com/IAM: "true" creationTimestamp: "2021-06-24T01:30:08Z" name: clusterrole_admin_group0c96fad22880f32a3f84c009862af6f7 namespace: default resourceVersion: "36963685" selfLink: /apis/rbac.authorization.k8s.io/v1/namespaces/default/rolebindings/clusterrole_admin_group0c96fad22880f32a3f84c009862af6f7 uid: 6c6f46a6-8584-47da-83f5-9eef1f7b75d6 roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: edit subjects: - apiGroup: rbac.authorization.k8s.io kind: Group name: 0c96fad22880f32a3f84c009862af6f7 使用被授予用户连接集群,您会发现可以查询和创建default命名空间的资源,但无法查询kube-system命名空间资源,也无法查询集群级别的资源。 # kubectl get pod NAME READY STATUS RESTARTS AGE test-568d96f4f8-brdrp 1/1 Running 0 33m test-568d96f4f8-cgjqp 1/1 Running 0 33m # kubectl get pod -nkube-system Error from server (Forbidden): pods is forbidden: User "0c97ac3cb280f4d91fa7c0096739e1f8" cannot list resource "pods" in API group "" in the namespace "kube-system" # kubectl get pv Error from server (Forbidden): persistentvolumes is forbidden: User "0c97ac3cb280f4d91fa7c0096739e1f8" cannot list resource "persistentvolumes" in API group "" at the cluster scope
  • 自定义命名空间权限(kubectl) kubectl访问CCE集群是通过集群上生成的配置文件(kubeconfig.json)进行认证,kubeconfig.json文件内包含用户信息,CCE根据用户信息的权限判断kubectl有权限访问哪些Kubernetes资源。即哪个用户获取的kubeconfig.json文件,kubeconfig.json就拥有哪个用户的信息,这样使用kubectl访问时就拥有这个用户的权限。而用户拥有的权限就是集群权限(IAM授权)与命名空间权限(Kubernetes RBAC授权)的关系所示的权限。 除了使用cluster-admin、admin、edit、view这4个最常用的clusterrole外,您还可以通过定义Role和RoleBinding来进一步对命名空间中不同类别资源(如Pod、Deployment、Service等)的增删改查权限进行配置,从而做到更加精细化的权限控制。 Role的定义非常简单,指定namespace,然后就是rules规则。如下面示例中的规则就是允许对default命名空间下的Pod进行GET、LIST操作。 kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: namespace: default # 命名空间 name: role-example rules: - apiGroups: [""] resources: ["pods"] # 可以访问pod verbs: ["get", "list"] # 可以执行GET、LIST操作 apiGroups表示资源所在的API分组。 resources表示可以操作哪些资源:pods表示可以操作Pod,其他Kubernetes的资源如deployments、configmaps等都可以操作 verbs表示可以执行的操作:get表示查询一个Pod,list表示查询所有Pod。您还可以使用create(创建), update(更新), delete(删除)等操作词。 详细的类型和操作请参见使用 RBAC 鉴权。 有了Role之后,就可以将Role与具体的用户绑定起来,实现这个的就是RoleBinding了。如下所示。 kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: RoleBinding-example namespace: default annotations: CCE.com/IAM: 'true' roleRef: kind: Role name: role-example apiGroup: rbac.authorization.k8s.io subjects: - kind: User name: 0c97ac3cb280f4d91fa7c0096739e1f8 # user-example的用户ID apiGroup: rbac.authorization.k8s.io 这里的subjects就是将Role与IAM用户绑定起来,从而使得IAM用户获取role-example这个Role里面定义的权限,如下图所示。 图4 RoleBinding绑定Role和用户 subjects下用户的类型还可以是用户组,这样配置可以对用户组下所有用户生效。 subjects: - kind: Group name: 0c96fad22880f32a3f84c009862af6f7 # 用户组ID apiGroup: rbac.authorization.k8s.io 使用IAM用户user-example连接集群,获取Pod信息,发现可获取到Pod的信息。 # kubectl get pod NAME READY STATUS RESTARTS AGE deployment-389584-2-6f6bd4c574-2n9rk 1/1 Running 0 4d7h deployment-389584-2-6f6bd4c574-7s5qw 1/1 Running 0 4d7h deployment-3895841-746b97b455-86g77 1/1 Running 0 4d7h deployment-3895841-746b97b455-twvpn 1/1 Running 0 4d7h nginx-658dff48ff-7rkph 1/1 Running 0 4d9h nginx-658dff48ff-njdhj 1/1 Running 0 4d9h # kubectl get pod nginx-658dff48ff-7rkph NAME READY STATUS RESTARTS AGE nginx-658dff48ff-7rkph 1/1 Running 0 4d9h 然后查看Deployment和Service,发现没有权限;再查询kube-system命名空间下的Pod信息,发现也没有权限。这就说明IAM用户user-example仅拥有default这个命名空间下GET和LIST Pod的权限,与前面定义的没有偏差。 # kubectl get deploy Error from server (Forbidden): deployments.apps is forbidden: User "0c97ac3cb280f4d91fa7c0096739e1f8" cannot list resource "deployments" in API group "apps" in the namespace "default" # kubectl get svc Error from server (Forbidden): services is forbidden: User "0c97ac3cb280f4d91fa7c0096739e1f8" cannot list resource "services" in API group "" in the namespace "default" # kubectl get pod --namespace=kube-system Error from server (Forbidden): pods is forbidden: User "0c97ac3cb280f4d91fa7c0096739e1f8" cannot list resource "pods" in API group "" in the namespace "kube-system"
  • 命名空间权限(kubernetes RBAC授权) 命名空间权限是基于Kubernetes RBAC能力的授权,通过权限设置可以让不同的用户或用户组拥有操作不同Kubernetes资源的权限。Kubernetes RBAC API定义了四种类型:Role、ClusterRole、RoleBinding与ClusterRoleBinding,这四种类型之间的关系和简要说明如下: Role:角色,其实是定义一组对Kubernetes资源(命名空间级别)的访问规则。 RoleBinding:角色绑定,定义了用户和角色的关系。 ClusterRole:集群角色,其实是定义一组对Kubernetes资源(集群级别,包含全部命名空间)的访问规则。 ClusterRoleBinding:集群角色绑定,定义了用户和集群角色的关系。 Role和ClusterRole指定了可以对哪些资源做哪些动作,RoleBinding和ClusterRoleBinding将角色绑定到特定的用户、用户组或ServiceAccount上。如下图所示。 图1 角色绑定 在CCE控制台可以授予用户或用户组命名空间权限,可以对某一个命名空间或全部命名空间授权,CCE控制台默认提供如下ClusterRole。 view(只读权限):对全部或所选命名空间下大多数资源的只读权限。 edit(开发权限):对全部或所选命名空间下多数资源的读写权限。当配置在全部命名空间时能力与运维权限一致。 admin(运维权限):对全部命名空间下大多数资源的读写权限,对节点、存储卷,命名空间和配额管理的只读权限。 cluster-admin(管理员权限):对全部命名空间下所有资源的读写权限。 drainage-editor:节点排水操作权限,可执行节点排水。 drainage-viewer:节点排水只读权限,仅可查看节点排水状态,无法执行节点排水。 除了使用上述常用的ClusterRole外,您还可以通过定义Role和RoleBinding来进一步对全局资源(如Node、PersistentVolumes、CustomResourceDefinitions等)和命名空间中不同类别资源(如Pod、Deployment、Service等)的增删改查权限进行配置,从而做到更加精细化的权限控制。
共100000条