容器集群保护
February 26, 2024About 11 min
容器集群保护
SDK类名:/ContainerCls/ContainerCls;
备份 - 新建
SDK方法名:createContinerClusterBackup;
URL
/v3/container_cluster_protect/backup
Method
POST
Request
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
task_name | String | 名称 | |||
task_type | Number | 类型,列表过滤使用 0-备份 1-还原 10-模板 | |||
biz_grp_list | Array | 业务组 | |||
cls_type | Number | 备份集群类型 0-k8s | |||
cls_uuid | String | 备份集群uuid | |||
location_uuid | String | 备份存储位置uuid | |||
resource_namespace | Array | 备份资源名字空间 | |||
resource_type | Array | 备份资源类型 | |||
callback_uuid_list | Array | 备份回调脚本uuid列表 | |||
resource_label | String | 备份资源标签 | |||
tag | String | 标记备份规则 | |||
backup_policy | Number | 备份策略,2 立即,0 定时,1 循环; | |||
backup_one_time | Number | 定时任务,执行时间(备份策略) | |||
backup_schedule | Array | 周期任务(备份策略)参考nas比较计划 | |||
save_days | Number | 备份保留天数,默认30天 |
Response
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
ret | Number | 200 | |||
msg | String | ||||
data | Object | ||||
code | Number | 0 | |||
message | String | [0] 操作成功。 |
备份 - 列表
SDK方法名:listContainerClusterBackup;
URL
/v3/container_cluster_protect/backup
Method
GET
Request
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
where_args[task_type] | String | 0-备份 10-模板 |
Response
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
ret | Number | 200 | |||
msg | String | ||||
data | Object | ||||
code | Number | 0 | |||
message | String | [0] 操作成功。 | |||
total | Number | 3 | |||
info_list | Array | 2 | |||
task_name | String | 任务名称 | aws-backup | ||
task_uuid | String | 任务uuid | @uuid | ||
location_name | String | 备份目标位置 | aws | ||
location_uuid | String | 备份目标位置uuid | E679EF73-5288-E3C4-9608-B33B47416B87 | ||
create_time | Number | 创建时间 | |||
user_uuid | String | 用户uuid | E679EF73-5288-E3C4-9608-B33B47416B87 | ||
username | String | 用户名 | admin | ||
can_del | Number | 1 | |||
can_op | Number | 1 | |||
can_up | Number | 1 | |||
cls_uuid | String | 容器集群uuid |
备份 - 单个
SDK方法名:describeContainerClusterBackup;
URL
/v3/container_cluster_protect/backup/:uuid([A-F0-9]+)
Method
GET
Request
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
sub_time | String | 子任务uuid后面跟的时间 - 例如:20221214031032 |
Response
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
ret | Number | 200 | |||
msg | String | ||||
data | Object | ||||
code | Number | 0 | |||
message | String | [0] 操作成功。 | |||
total | Number | 3 | |||
container_cluster_backup | Object | ||||
task_name | String | ||||
task_uuid | String | ||||
random_str | String | ||||
biz_grp_list | Array | ||||
cls_type | Number | 1 | |||
cls_uuid | String | ||||
location_uuid | String | ||||
resource_type | String | ||||
resource_label | String | ||||
resource_namespace | String | ||||
callback_uuid | String | ||||
tag | String | ||||
backup_type | Number | 1 | |||
bkup_one_time | String | ||||
bkup_schedule | Object | ||||
limit | String | ||||
sched_day | String | ||||
sched_every | String | ||||
sched_time | String | ||||
sched_gap_min | String | ||||
backup_type | String | ||||
bkup_policy | Number | 1 | |||
save_days | Number | 1 | |||
bkup_window | Object | ||||
sched_time_start | String | ||||
sched_time_end | String |
备份 - 修改
SDK方法名:modifyContainerClusterBackup;
URL
/v3/container_cluster_protect/backup/:uuid([A-F0-9]+)
Method
PUT
Request
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
task_name | String | ||||
biz_grp_list | Array | ||||
cls_type | Number | 1 | |||
cls_uuid | String | ||||
location_uuid | String | ||||
resource_type | String | ||||
resource_label | String | ||||
resource_namespace | String | ||||
callback_uuid | String | ||||
tag | String | ||||
backup_type | Number | 1 | |||
bkup_one_time | String | ||||
bkup_schedule | Object | ||||
limit | String | ||||
sched_day | String | ||||
sched_every | String | ||||
sched_time | String | ||||
sched_gap_min | String | ||||
backup_type | String | ||||
bkup_policy | Number | 1 | |||
save_days | Number | 1 | |||
bkup_window | Object | ||||
sched_time_start | String | ||||
sched_time_end | String | ||||
task_uuid | String | ||||
random_str | String |
Response
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
ret | Number | 200 | |||
msg | String | ||||
data | Object | ||||
code | Number | 0 | |||
message | String | [0] 操作成功。 |
备份 - 删除
SDK方法名:deleteContainerClusterBackup;
URL
/v3/container_cluster_protect/backup
Method
DELETE
Request
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
task_uuids | Array | ||||
sub_task_uuid | String |
Response
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
ret | Number | 200 | |||
msg | String | ||||
data | Object | ||||
code | Number | 0 | |||
message | String | [0] 操作成功。 |
备份 - 状态
SDK方法名:listContainerClusterBackupStatus;
URL
/v3/container_cluster_protect/backup/status
Method
GET
Request
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
task_uuids | Array |
Response
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
msg | String | ||||
data | Object | ||||
code | Number | 0 | |||
message | String | [0] success | |||
count | Number | 0 | |||
status | Array | ||||
status | String | VALIDATION_FAILED - 校验错误 IN_PROGRESS - 进行中 FINISH - 完成 PARTIALLY_FAILED - 部分错误 CLSP_FAILED - 错误 DELETING - 删除中 NEW - 新建 PROCESSED - 处理完成 ENABLED - 已生效 VALID - 有效 INVALID - 无效 READY - 已准备 NOT_READY - 未准备 | FINISH | ||
task_uuid | String | 38FFA6E2-2A40-31D6-7A94-E8168EBA9FF2 | |||
error_nums | Number | 0 | |||
warn_nums | Number | 0 | |||
start_time | Number | 1669112700 | |||
end_time | Number | 1669112700 | |||
ret | Number | 200 |
备份 - 操作
SDK方法名:{operate}ContainerClusterBackup;
URL
/v3/container_cluster_protect/backup/operate
Method
POST
Request
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
task_uuids | Array | ||||
operate | String | backup_immediate - 立即执行 | start |
Response
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
msg | String | ||||
data | Object | ||||
code | Number | 0 | |||
message | String | [0] success | |||
ret | Number | 200 |
备份 - 查看子任务列表
SDK方法名: listContainerClusterBackupSubTask;
URL
/v3/container_cluster_protect/backup/sub_task
Method
GET
Request
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
task_uuid | String | 681D716B-D3CE-4E35-A018-E2E3D3C5743E |
Response
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
ret | Number | 200 | |||
msg | String | ||||
data | Object | ||||
code | Number | 0 | |||
message | String | [0] 操作成功。 | |||
num | Number | 1 | |||
info_list | Array | ||||
backup_location_uuid | String | f3dc82cd-a46c-48e5-af32-fcf7d17470b9 | |||
backup_name | String | bk0120221204150618 | |||
backup_uuid | String | d26ca4fd-a8d5-4cbf-948b-ee515e5881cd | |||
schedule_name | String | ||||
schedule_uuid | String | ||||
status | String | FINISH | |||
rc_point | Number | 1670137578 | |||
resource_label | String | app=nginx | |||
create_time | Number | 1670137578 | |||
finish_time | Number | 1670137578 | |||
error_nums | Number | 0 | |||
warn_nums | Number | 0 |
备份 - 查看备份信息(rpc获取)
SDK方法名:getContainerClusterBackupInfo;
URL
/v3/container_cluster_protect/backup/info
Method
GET
Request
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
task_uuid | String |
Response
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
ret | Number | 200 | |||
msg | String | ||||
data | Object | ||||
code | Number | 0 | |||
message | String | [0] success | |||
info | String | Name: [1m681d716b-d3ce-4e35-a018-e2e3d3c5743e[0m Namespace: info2soft Labels: info2soft.io/backup_one_time= info2soft.io/backup_policy= info2soft.io/cluster_name=cls01 info2soft.io/cluster_uuid=58eceeb7-d4fc-4746-a507-aa3bbc98efd1 info2soft.io/schedule_name=zqs-sch1 info2soft.io/schedule_uuid=681d716b-d3ce-4e35-a018-e2e3d3c5743e Annotations: kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"velero.io/v1","kind":"Schedule","metadata":{"annotations":{},"labels":{"info2soft.io/backup_one_time":"","info2soft.io/backup_policy":"","info2soft.io/cluster_name":"cls01","info2soft.io/cluster_uuid":"58eceeb7-d4fc-4746-a507-aa3bbc98efd1","info2soft.io/schedule_name":"zqs-sch1","info2soft.io/schedule_uuid":"681d716b-d3ce-4e35-a018-e2e3d3c5743e"},"name":"681d716b-d3ce-4e35-a018-e2e3d3c5743e","namespace":"info2soft"},"spec":{"schedule":"20 12 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 * ?","template":{"defaultVolumesToRestic":true,"hooks":{"resources":[{"labelSelector":{"matchLabels":{"app":"nginx"}},"name":"callback01","post":[{"exec":{"command":["/bin/echo"," post1---------------"],"container":"nginx","timeout":"30s"}},{"exec":{"command":["/bin/echo"," post2---------------"],"container":"nginx","timeout":"30s"}}],"pre":[{"exec":{"command":["/bin/echo","pre1-------------"],"container":"nginx","timeout":"60s"}},{"exec":{"command":["/bin/echo","pre2-------------"],"container":"nginx","timeout":"30s"}}]}]},"includedNamespaces":["nginx-example"],"labelSelector":{"matchLabels":{"app":"nginx"}},"metadata":{"labels":{"info2soft.io/backup_one_time":"","info2soft.io/backup_policy":"","info2soft.io/cluster_name":"cls01","info2soft.io/cluster_uuid":"58eceeb7-d4fc-4746-a507-aa3bbc98efd1","info2soft.io/schedule_name":"zqs-sch1","info2soft.io/schedule_uuid":"681d716b-d3ce-4e35-a018-e2e3d3c5743e"}},"storageLocation":"698074c9-ce52-45e8-8721-668d5b66742a","ttl":"720h0m0s"}}} Phase: [32mEnabled[0m Schedule: 20 12 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 * ? Backup Template: Namespaces: Included: nginx-example Excluded: <none> Resources: Included: * Excluded: <none> Cluster-scoped: auto Label selector: app=nginx Storage Location: 698074c9-ce52-45e8-8721-668d5b66742a Velero-Native Snapshot PVs: auto TTL: 720h0m0s Hooks: Resources: callback01: Namespaces: Included: nginx-example Excluded: <none> Resources: Included: * Excluded: <none> Label selector: app=nginx Pre Exec Hook: Container: nginx Command: /bin/echo pre1------------- On Error: Timeout: 1m0s Pre Exec Hook: Container: nginx Command: /bin/echo pre2------------- On Error: Timeout: 30s Post Exec Hook: Container: nginx Command: /bin/echo post1--------------- On Error: Timeout: 30s Post Exec Hook: Container: nginx Command: /bin/echo post2--------------- On Error: Timeout: 30s Last Backup: <never> |
还原 - 新建
SDK方法名:createContainerClusterRecovery;
URL
/v3/container_cluster_protect/recovery
Method
POST
Request
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
task_name | String | 名称 | |||
task_type | String | 类型,还原-1 | |||
biz_grp_list | Array | 业务组 | |||
cls_type | Number | 目标集群类型 | 1 | ||
cls_uuid | String | 目标集群 | |||
location_uuid | String | 备份存储位置uuid | |||
backup_task_uuid | String | 还原对象uuid | |||
rc_point_in_time | String | 还原时间点 | |||
callback_uuid_list | Array | 还原回调脚本 | |||
save_nodeport | Number | 保留nodeport 0-不保留 1-保留 | 1 | ||
tag | String | 标记还原规则 | |||
namespace_mapping | String | 名字空间映射,逗号分隔 | |||
src_cls_uuid | String | 源集群 |
Response
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
ret | Number | 200 | |||
msg | String | ||||
data | Object | ||||
code | Number | 0 | |||
message | String | [0] 操作成功。 |
还原 - 列表
SDK方法名:listContainerClusterRecovery;
URL
/v3/container_cluster_protect/recovery
Method
GET
Request
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|
Response
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
ret | Number | 200 | |||
msg | String | ||||
data | Object | ||||
code | Number | 0 | |||
message | String | [0] 操作成功。 | |||
total | Number | 3 | |||
info_list | Array | ||||
task_name | String | aws-recovery | |||
task_uuid | String | @uuid | |||
backup_task_uuid | String | ||||
backup_task_name | String | ||||
create_time | Number | 1 | |||
end_time | Number | 1 | |||
user_uuid | String | E679EF73-5288-E3C4-9608-B33B47416B87 | |||
username | String | admin | |||
can_del | Number | 1 | |||
can_op | Number | 1 | |||
can_up | Number | 1 |
还原 - 单个
SDK方法名:describeContainerClusterRecovery;
URL
/v3/container_cluster_protect/recovery/:uuid([A-F0-9]+)
Method
GET
Request
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|
Response
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
ret | Number | 200 | |||
msg | String | ||||
data | Object | ||||
code | Number | 0 | |||
message | String | [0] 操作成功。 | |||
total | Number | 3 | |||
container_cluster_recovery | Object | ||||
task_name | String | ||||
task_type | String | ||||
biz_grp_list | Array | ||||
cls_type | Number | 1 | |||
cls_uuid | String | ||||
location_uuid | String | ||||
backup_task_uuid | String | ||||
rc_point_in_time | String | ||||
callback_uuid | String | ||||
save_nodeport | Number | 1 | |||
tag | String | ||||
user_uuid | String | ||||
random_str | String |
还原 - 修改
SDK方法名:modifyContainerClusterRecovery;
URL
/v3/container_cluster_protect/recovery/:uuid([A-F0-9]+)
Method
PUT
Request
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
task_name | String | ||||
task_type | String | ||||
biz_grp_list | Array | ||||
cls_type | Number | 1 | |||
cls_uuid | String | ||||
location_uuid | String | ||||
backup_task_uuid | String | ||||
rc_point_in_time | String | ||||
callback_uuid | String | ||||
save_nodeport | Number | 1 | |||
tag | String | ||||
user_uuid | String | ||||
random_str | String |
Response
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
ret | Number | 200 | |||
msg | String | ||||
data | Object | ||||
code | Number | 0 | |||
message | String | [0] 操作成功。 |
还原 - 删除
SDK方法名:deleteContainerClusterRecovery;
URL
/v3/container_cluster_protect/recovery
Method
DELETE
Request
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
task_uuids | Array |
Response
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
ret | Number | 200 | |||
msg | String | ||||
data | Object | ||||
code | Number | 0 | |||
message | String | [0] 操作成功。 |
还原 - 状态
SDK方法名:listContainerClusterRecoveryStatus;
URL
/v3/container_cluster_protect/recovery/status
Method
GET
Request
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
task_uuids | Array |
Response
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
msg | String | ||||
data | Object | ||||
code | Number | 0 | |||
message | String | [0] success | |||
count | Number | 0 | |||
status | Array | ||||
status | String | VALIDATION_FAILED - 校验错误 IN_PROGRESS - 进行中 FINISH - 完成 PARTIALLY_FAILED - 部分错误 CLSP_FAILED - 错误 DELETING - 删除中 NEW - 新建 PROCESSED - 处理完成 ENABLED - 已生效 VALID - 有效 INVALID - 无效 READY - 已准备 NOT_READY - 未准备 | FINISH | ||
task_uuid | String | 38FFA6E2-2A40-31D6-7A94-E8168EBA9FF2 | |||
error_nums | Number | 0 | |||
warn_nums | Number | 0 | |||
end_time | Number | 1669112700 | |||
ret | Number | 200 |
还原 - 获取还原时间点
SDK方法名:listContainerClusterRecoveryPoint;
URL
/v3/container_cluster_protect/recovery/rc_point
Method
GET
Request
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
backup_task_uuid | String | 还原对象uuid | |||
cls_uuid | String | 目标集群uuid |
Response
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
msg | String | ||||
ret | Number | 200 | |||
data | Object | ||||
info_list | Array | ||||
rc_point | String | "2022-03-17 09:40:43" | |||
backup_uuid | String | 11131524-C53C-4917-957F-98D32F38FAD1 | |||
message | String | [0] success | |||
code | Number | 0 |
还原 - 操作
SDK方法名:{operate}ContainerClusterRecovery;
URL
/v3/container_cluster_protect/recovery/operate
Method
POST
Request
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
operate | String | start stop delete | start | ||
task_uuids | Array | ["11111111-1111-1111-1111-111111111111"] |
Response
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
msg | String | ||||
data | Object | ||||
code | Number | 0 | |||
message | String | [0] success | |||
ret | Number | 200 |
还原 - 查看还原信息(rpc获取)
SDK方法名:getContainerClusterRecoveryInfo;
URL
/v3/container_cluster_protect/recovery/info
Method
GET
Request
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
task_uuid | String |
Response
名称 | 类型 | 必选 | 简介 | Mock初始值 | Mock规则 |
---|---|---|---|---|---|
ret | Number | 200 | |||
msg | String | ||||
data | Object | ||||
code | Number | 0 | |||
message | String | [0] success | |||
info | String | Name: [1m839f81a9-5b1f-4d1e-b8ba-48f70c040cf3[0m Namespace: info2soft Labels: info2soft.io/cluster_name=cls01 info2soft.io/cluster_uuid=58eceeb7-d4fc-4746-a507-aa3bbc98efd1 info2soft.io/restore_name=rc01 Annotations: kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"velero.io/v1","kind":"Restore","metadata":{"annotations":{},"labels":{"info2soft.io/cluster_name":"cls01","info2soft.io/cluster_uuid":"58eceeb7-d4fc-4746-a507-aa3bbc98efd1","info2soft.io/restore_name":"rc01"},"name":"839f81a9-5b1f-4d1e-b8ba-48f70c040cf3","namespace":"info2soft"},"spec":{"backupName":"2e3f50b3-fd9a-4752-a3e8-6c76e3326ebe","existingResourcePolicy":"none","hooks":{"resources":[{"labelSelector":{"matchLabels":{"app":"nginx"}},"name":"restore01"}]},"includedNamespaces":["nginx-example"],"labelSelector":{"matchLabels":{"app":"nginx"}},"preserveNodePorts":true,"restorePVs":true}} Phase: [32mCompleted[0m Total items to be restored: 7 Items restored: 7 Started: 2022-11-22 10:22:54 +0000 UTC Completed: 2022-11-22 10:22:55 +0000 UTC Warnings: Velero: <none> Cluster: <none> Namespaces: nginx-example: could not restore, PersistentVolumeClaim "nginx-logs" already exists. Warning: the in-cluster version is different than the backed-up version. could not restore, Pod "nginx-deployment-77ddf7df75-pmxjn" already exists. Warning: the in-cluster version is different than the backed-up version. could not restore, Service "my-nginx" already exists. Warning: the in-cluster version is different than the backed-up version. Backup: 2e3f50b3-fd9a-4752-a3e8-6c76e3326ebe Namespaces: Included: nginx-example Excluded: <none> Resources: Included: * Excluded: nodes, events, events.events.k8s.io, backups.velero.io, restores.velero.io, resticrepositories.velero.io Cluster-scoped: auto Namespace mappings: <none> Label selector: app=nginx Restore PVs: true Existing Resource Policy: none Preserve Service NodePorts: true |