容器集群保护

February 26, 2024About 11 min

容器集群保护

SDK类名:/ContainerCls/ContainerCls;

备份 - 新建

SDK方法名:createContinerClusterBackup;

URL

/v3/container_cluster_protect/backup

Method

POST

Request

名称类型必选简介Mock初始值Mock规则
task_nameString名称
task_typeNumber类型,列表过滤使用
0-备份
1-还原
10-模板
biz_grp_listArray业务组
cls_typeNumber备份集群类型
0-k8s
cls_uuidString备份集群uuid
location_uuidString备份存储位置uuid
resource_namespaceArray备份资源名字空间
resource_typeArray备份资源类型
callback_uuid_listArray备份回调脚本uuid列表
resource_labelString备份资源标签
tagString标记备份规则
backup_policyNumber备份策略,2 立即,0 定时,1 循环;
backup_one_timeNumber定时任务,执行时间(备份策略)
backup_scheduleArray周期任务(备份策略)参考nas比较计划
save_daysNumber备份保留天数,默认30天

Response

名称类型必选简介Mock初始值Mock规则
retNumber200
msgString
dataObject
  codeNumber0
  messageString[0] 操作成功。

备份 - 列表

SDK方法名:listContainerClusterBackup;

URL

/v3/container_cluster_protect/backup

Method

GET

Request

名称类型必选简介Mock初始值Mock规则
where_args[task_type]String0-备份
10-模板

Response

名称类型必选简介Mock初始值Mock规则
retNumber200
msgString
dataObject
  codeNumber0
  messageString[0] 操作成功。
  totalNumber3
  info_listArray2
    task_nameString任务名称aws-backup
    task_uuidString任务uuid@uuid
    location_nameString备份目标位置aws
    location_uuidString备份目标位置uuidE679EF73-5288-E3C4-9608-B33B47416B87
    create_timeNumber创建时间
    user_uuidString用户uuidE679EF73-5288-E3C4-9608-B33B47416B87
    usernameString用户名admin
    can_delNumber1
    can_opNumber1
    can_upNumber1
    cls_uuidString容器集群uuid

备份 - 单个

SDK方法名:describeContainerClusterBackup;

URL

/v3/container_cluster_protect/backup/:uuid([A-F0-9]+)

Method

GET

Request

名称类型必选简介Mock初始值Mock规则
sub_timeString子任务uuid后面跟的时间 - 例如:20221214031032

Response

名称类型必选简介Mock初始值Mock规则
retNumber200
msgString
dataObject
  codeNumber0
  messageString[0] 操作成功。
  totalNumber3
  container_cluster_backupObject
    task_nameString
    task_uuidString
    random_strString
    biz_grp_listArray
    cls_typeNumber1
    cls_uuidString
    location_uuidString
    resource_typeString
    resource_labelString
    resource_namespaceString
    callback_uuidString
    tagString
    backup_typeNumber1
    bkup_one_timeString
    bkup_scheduleObject
      limitString
      sched_dayString
      sched_everyString
      sched_timeString
      sched_gap_minString
      backup_typeString
    bkup_policyNumber1
    save_daysNumber1
    bkup_windowObject
      sched_time_startString
      sched_time_endString

备份 - 修改

SDK方法名:modifyContainerClusterBackup;

URL

/v3/container_cluster_protect/backup/:uuid([A-F0-9]+)

Method

PUT

Request

名称类型必选简介Mock初始值Mock规则
task_nameString
biz_grp_listArray
cls_typeNumber1
cls_uuidString
location_uuidString
resource_typeString
resource_labelString
resource_namespaceString
callback_uuidString
tagString
backup_typeNumber1
bkup_one_timeString
bkup_scheduleObject
  limitString
  sched_dayString
  sched_everyString
  sched_timeString
  sched_gap_minString
  backup_typeString
bkup_policyNumber1
save_daysNumber1
bkup_windowObject
  sched_time_startString
  sched_time_endString
task_uuidString
random_strString

Response

名称类型必选简介Mock初始值Mock规则
retNumber200
msgString
dataObject
  codeNumber0
  messageString[0] 操作成功。

备份 - 删除

SDK方法名:deleteContainerClusterBackup;

URL

/v3/container_cluster_protect/backup

Method

DELETE

Request

名称类型必选简介Mock初始值Mock规则
task_uuidsArray
sub_task_uuidString

Response

名称类型必选简介Mock初始值Mock规则
retNumber200
msgString
dataObject
  codeNumber0
  messageString[0] 操作成功。

备份 - 状态

SDK方法名:listContainerClusterBackupStatus;

URL

/v3/container_cluster_protect/backup/status

Method

GET

Request

名称类型必选简介Mock初始值Mock规则
task_uuidsArray

Response

名称类型必选简介Mock初始值Mock规则
msgString
dataObject
  codeNumber0
  messageString[0] success
  countNumber0
  statusArray
    statusStringVALIDATION_FAILED - 校验错误
IN_PROGRESS - 进行中
FINISH - 完成
PARTIALLY_FAILED - 部分错误
CLSP_FAILED - 错误
DELETING - 删除中

NEW - 新建
PROCESSED - 处理完成
ENABLED - 已生效
VALID - 有效
INVALID - 无效
READY - 已准备
NOT_READY - 未准备
FINISH
    task_uuidString38FFA6E2-2A40-31D6-7A94-E8168EBA9FF2
    error_numsNumber0
    warn_numsNumber0
    start_timeNumber1669112700
    end_timeNumber1669112700
retNumber200

备份 - 操作

SDK方法名:{operate}ContainerClusterBackup;

URL

/v3/container_cluster_protect/backup/operate

Method

POST

Request

名称类型必选简介Mock初始值Mock规则
task_uuidsArray
operateStringbackup_immediate - 立即执行start

Response

名称类型必选简介Mock初始值Mock规则
msgString
dataObject
  codeNumber0
  messageString[0] success
retNumber200

备份 - 查看子任务列表

SDK方法名: listContainerClusterBackupSubTask;

URL

/v3/container_cluster_protect/backup/sub_task

Method

GET

Request

名称类型必选简介Mock初始值Mock规则
task_uuidString681D716B-D3CE-4E35-A018-E2E3D3C5743E

Response

名称类型必选简介Mock初始值Mock规则
retNumber200
msgString
dataObject
  codeNumber0
  messageString[0] 操作成功。
  numNumber1
  info_listArray
    backup_location_uuidStringf3dc82cd-a46c-48e5-af32-fcf7d17470b9
    backup_nameStringbk0120221204150618
    backup_uuidStringd26ca4fd-a8d5-4cbf-948b-ee515e5881cd
    schedule_nameString
    schedule_uuidString
    statusStringFINISH
    rc_pointNumber1670137578
    resource_labelStringapp=nginx
    create_timeNumber1670137578
    finish_timeNumber1670137578
    error_numsNumber0
    warn_numsNumber0

备份 - 查看备份信息(rpc获取)

SDK方法名:getContainerClusterBackupInfo;

URL

/v3/container_cluster_protect/backup/info

Method

GET

Request

名称类型必选简介Mock初始值Mock规则
task_uuidString

Response

名称类型必选简介Mock初始值Mock规则
retNumber200
msgString
dataObject
  codeNumber0
  messageString[0] success
  infoStringName: [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_nameString名称
task_typeString类型,还原-1
biz_grp_listArray业务组
cls_typeNumber目标集群类型1
cls_uuidString目标集群
location_uuidString备份存储位置uuid
backup_task_uuidString还原对象uuid
rc_point_in_timeString还原时间点
callback_uuid_listArray还原回调脚本
save_nodeportNumber保留nodeport
0-不保留
1-保留
1
tagString标记还原规则
namespace_mappingString名字空间映射,逗号分隔
src_cls_uuidString源集群

Response

名称类型必选简介Mock初始值Mock规则
retNumber200
msgString
dataObject
  codeNumber0
  messageString[0] 操作成功。

还原 - 列表

SDK方法名:listContainerClusterRecovery;

URL

/v3/container_cluster_protect/recovery

Method

GET

Request

名称类型必选简介Mock初始值Mock规则

Response

名称类型必选简介Mock初始值Mock规则
retNumber200
msgString
dataObject
  codeNumber0
  messageString[0] 操作成功。
  totalNumber3
  info_listArray
    task_nameStringaws-recovery
    task_uuidString@uuid
    backup_task_uuidString
    backup_task_nameString
    create_timeNumber1
    end_timeNumber1
    user_uuidStringE679EF73-5288-E3C4-9608-B33B47416B87
    usernameStringadmin
    can_delNumber1
    can_opNumber1
    can_upNumber1

还原 - 单个

SDK方法名:describeContainerClusterRecovery;

URL

/v3/container_cluster_protect/recovery/:uuid([A-F0-9]+)

Method

GET

Request

名称类型必选简介Mock初始值Mock规则

Response

名称类型必选简介Mock初始值Mock规则
retNumber200
msgString
dataObject
  codeNumber0
  messageString[0] 操作成功。
  totalNumber3
  container_cluster_recoveryObject
    task_nameString
    task_typeString
    biz_grp_listArray
    cls_typeNumber1
    cls_uuidString
    location_uuidString
    backup_task_uuidString
    rc_point_in_timeString
    callback_uuidString
    save_nodeportNumber1
    tagString
    user_uuidString
    random_strString

还原 - 修改

SDK方法名:modifyContainerClusterRecovery;

URL

/v3/container_cluster_protect/recovery/:uuid([A-F0-9]+)

Method

PUT

Request

名称类型必选简介Mock初始值Mock规则
task_nameString
task_typeString
biz_grp_listArray
cls_typeNumber1
cls_uuidString
location_uuidString
backup_task_uuidString
rc_point_in_timeString
callback_uuidString
save_nodeportNumber1
tagString
user_uuidString
random_strString

Response

名称类型必选简介Mock初始值Mock规则
retNumber200
msgString
dataObject
  codeNumber0
  messageString[0] 操作成功。

还原 - 删除

SDK方法名:deleteContainerClusterRecovery;

URL

/v3/container_cluster_protect/recovery

Method

DELETE

Request

名称类型必选简介Mock初始值Mock规则
task_uuidsArray

Response

名称类型必选简介Mock初始值Mock规则
retNumber200
msgString
dataObject
  codeNumber0
  messageString[0] 操作成功。

还原 - 状态

SDK方法名:listContainerClusterRecoveryStatus;

URL

/v3/container_cluster_protect/recovery/status

Method

GET

Request

名称类型必选简介Mock初始值Mock规则
task_uuidsArray

Response

名称类型必选简介Mock初始值Mock规则
msgString
dataObject
  codeNumber0
  messageString[0] success
  countNumber0
  statusArray
    statusStringVALIDATION_FAILED - 校验错误
IN_PROGRESS - 进行中
FINISH - 完成
PARTIALLY_FAILED - 部分错误
CLSP_FAILED - 错误
DELETING - 删除中

NEW - 新建
PROCESSED - 处理完成
ENABLED - 已生效
VALID - 有效
INVALID - 无效
READY - 已准备
NOT_READY - 未准备
FINISH
    task_uuidString38FFA6E2-2A40-31D6-7A94-E8168EBA9FF2
    error_numsNumber0
    warn_numsNumber0
    end_timeNumber1669112700
retNumber200

还原 - 获取还原时间点

SDK方法名:listContainerClusterRecoveryPoint;

URL

/v3/container_cluster_protect/recovery/rc_point

Method

GET

Request

名称类型必选简介Mock初始值Mock规则
backup_task_uuidString还原对象uuid
cls_uuidString目标集群uuid

Response

名称类型必选简介Mock初始值Mock规则
msgString
retNumber200
dataObject
  info_listArray
    rc_pointString"2022-03-17 09:40:43"
    backup_uuidString11131524-C53C-4917-957F-98D32F38FAD1
  messageString[0] success
  codeNumber0

还原 - 操作

SDK方法名:{operate}ContainerClusterRecovery;

URL

/v3/container_cluster_protect/recovery/operate

Method

POST

Request

名称类型必选简介Mock初始值Mock规则
operateStringstart stop deletestart
task_uuidsArray["11111111-1111-1111-1111-111111111111"]

Response

名称类型必选简介Mock初始值Mock规则
msgString
dataObject
  codeNumber0
  messageString[0] success
retNumber200

还原 - 查看还原信息(rpc获取)

SDK方法名:getContainerClusterRecoveryInfo;

URL

/v3/container_cluster_protect/recovery/info

Method

GET

Request

名称类型必选简介Mock初始值Mock规则
task_uuidString

Response

名称类型必选简介Mock初始值Mock规则
retNumber200
msgString
dataObject
  codeNumber0
  messageString[0] success
  infoStringName: [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
Last update: 4/30/2024, 2:22:48 PM
Contributors: ganl