详情页标题前

阿里云容器服务ACK备份中心FAQ-云淘科技

详情页1

本文介绍备份中心使用过程中一些常见问题的解决方法。

索引

  • Flexvolume集群migrate-controller组件无法正常拉起

  • 备份、恢复或快照转换任务状态为Failed,且提示VaultError: backup vault is unavailable: xxx

  • 备份、恢复或快照转换任务状态为Failed,且提示backup location is not ok, please maybe check access oss

  • 备份、恢复或快照转换任务长期处于Inprogress状态

  • 控制台界面提示当前数据拉取失败,请刷新重试!404 page not found

  • 控制台界面提示已存在同名的资源,请修改名称后再试

  • 跨集群恢复应用时,出现初始化仓库提示,无法选择备份任务进行恢复

  • 如何修改备份仓库?

  • 备份任务状态为Failed,且提示PROCESS velero failed err: VeleroError: xxx

  • 恢复任务状态为Completed,但集群中有部分资源未创建

说明

若您通过命令行工具使用备份中心,问题排查前,建议您先将备份服务组件migrate-controller升级至最新版本。组件升级不会影响已有的备份。

Flexvolume集群migrate-controller组件无法正常拉起

migrate-controller组件不支持Flexvolume类型的集群。若需使用备份中心功能,您可以通过以下方式将Flexvolume插件迁移至CSI。

  • 通过csi-compatible-controller组件迁移Flexvolume至CSI

  • 将无存储集群的Flexvolume迁移至CSI

  • 将Flexvolume类型的NAS静态存储卷迁移至CSI

  • 将Flexvolume类型的OSS静态存储卷迁移至CSI

  • 其他情况,请加入钉钉用户群(钉钉群号:35532895)咨询。

备份、恢复或快照转换任务状态为Failed,且提示VaultError: backup vault is unavailable: xxx

问题现象

备份、恢复或快照转换任务状态为Failed,且提示VaultError: backup vault is unavailable: xxx。

问题原因

  • OSS Bucket不存在。

  • 集群OSS权限未配置。

  • OSS Bucket网络访问不通。

解决方案

  1. 登录OSS管理控制台,确认备份仓库绑定的OSS Bucket已存在。

    若OSS Bucket缺失,请创建Bucket并重新绑定。具体操作,请参见控制台创建存储空间。

  2. 确认集群OSS权限已配置。

    • ACK Pro版集群:无需配置OSS权限,确认集群备份仓库关联的OSS Bucket名称以cnfs-oss-**命名。

    • ACK专有版集群和注册集群:需配置OSS权限。具体操作,请参见安装备份服务组件并配置权限。

    对于早期创建的托管版集群,可能缺少OSS相关权限。您可以通过以下命令进行排查。

    kubectl get secret -n kube-system | grep addon.csi.token

    预期输出:

    addon.csi.token          Opaque                      1      62d

    若存在以上输出:则此集群只需要使用cnfs-oss-*开头的Bucket,无需配置OSS权限。

    若没有以上输出:则此集群需要参考ACK专有版集群和注册集群,配置OSS权限。具体操作,请参见安装备份服务组件并配置权限。

    说明

    备份仓库不支持同名重建,也不支持绑定非cnfs-oss-**命名的OSS Bucket。若您已绑定过非cnfs-oss-**命名的OSS Bucket,请重新创建非同名的备份仓库,并绑定符合命名要求的OSS Bucket。

  3. 使用以下命令,确认集群相关网络配置。

    kubectl get backuplocation  -n csdr -o yaml | grep network

    输出结果类似如下内容:

    network: internal
    • 当network为internal时,说明备份仓库正通过内网访问OSS Bucket。

    • 当network为public时,说明备份仓库正通过公网访问OSS Bucket。

    以下三种情况,备份仓库必须通过公网访问OSS Bucket。

    • 集群和OSS Bucket不在同一Region。

    • 当前集群为ACK Edge集群。

    • 当前集群为注册集群,且没有通过CEN、高速通道专线、VPN等方式与云上VPC互通;或已与云上VPC互通,但未配置指向该地域OSS内网网段的路由。您需要配置指向该地域OSS内网网段的路由。

      • 关于线下IDC接入云上VPC的相关内容,请参见接入方式介绍。

      • 关于OSS内网域名与VIP网段对照表,请参见OSS内网域名与VIP网段对照表。

    如果必须通过公网访问OSS Bucket时,您可以使用以下命令,将OSS Bucket的访问方式修改为公网访问。以下代码中为备份仓库的名称,为OSS Bucket所在的地域,例如cn-hangzhou。

    kubectl patch -ncsdr backuplocation/ --type='json' -p   '[{"op":"add","path":"/spec/config","value":{"network":"public","region":""}}]'
    kubectl patch -ncsdr backupstoragelocation/ --type='json' -p   '[{"op":"add","path":"/spec/config","value":{"network":"public","region":""}}]'

备份、恢复或快照转换任务状态为Failed,且提示backup location is not ok, please maybe check access oss

问题现象

备份、恢复或快照转换任务状态为Failed,且提示backup location is not ok, please maybe check access oss。

问题原因

集群为1.20以下版本

可能原因如下:

  • 需要额外保证各备份仓库关联的OSS Bucket子路径是相互独立的,即不存在包含关系,如//A/A/A/B,且只能存储备份中心产生的备份数据,否则,涉及的备份仓库将不可用。

  • 与备份、恢复或快照转换任务状态为Failed,且提示VaultError: backup vault is unavailable: xxx中的可能原因一致。

集群为1.20及以上版本

可能由于备份服务组件migrate-controller版本过低。

解决方案

集群为1.20以下版本

  • 需要额外保证各备份仓库关联的OSS Bucket子路径是相互独立的,且只能存储备份中心产生的备份数据。您可以使用以下命令,进一步检查确认。以下代码中为备份仓库的名称。

    kubectl describe backupstoragelocation  -n csdr | grep message

    输出结果类似如下内容:

    Backup store contains invalid top-level directories: ****

    表明该备份仓库关联的OSS Bucket子路径下有其他数据。您可以选择以下方式解决。

    • 升级集群版本至1.20及以上,并将备份服务组件migrate-controller升级至最新版本。

    • 新建关联空路径的备份仓库并重新命名,请勿删除后重建同名的备份仓库。

  • 参见备份、恢复或快照转换任务状态为Failed,且提示VaultError: backup vault is unavailable: xxx中的解决方案处理。

集群为1.20及以上版本

请将备份服务组件migrate-controller升级至最新版本即可解决。具体操作,请参见管理组件。

备份、恢复或快照转换任务长期处于Inprogress状态

原因1:csdr命名空间中组件运行异常

确认组件运行状态,并查询组件异常原因。

  1. 执行以下命令,查询csdr命名空间中的组件是否出现重启或无法拉起的情况。

    kubectl get pod -n csdr
  2. 执行以下命令,查询组件重启或无法拉起的原因。

    kubectl describe pod  -n csdr
  • 若原因是OOM异常重启

    请执行以下命令,调整对应Deployment的Limit值。其中,csdr-controller-***对应csdr-controllercsdr-velero-***对应csdr-velero

    kubectl patch deploy   -p '{"spec":{"containers":{"resources":{"limits":""}}}}'
  • 若原因是HBR权限未配置导致拉起失败:请参见以下步骤处理。

    1. 确认集群已开通HBR服务。

      • 未开通:请开通HBR服务。具体操作,请参见混合云备份HBR。

      • 已开通:请转下一步。

    2. 确认ACK专有版集群和注册集群已配置HBR权限。

      • 未配置:请配置HBR权限。具体操作,请参见安装备份服务组件并配置权限。

      • 已配置:请转下一步。

    3. 执行以下命令,确认HBR Client组件所需Token是否存在。

      kubectl describe 

      若Event报错提示couldnt find key HBR_TOKEN,表明Token缺失,请参见以下步骤处理。

      1. 执行以下命令,查询对应hbr-client-***所在节点。

        kubectl get pod  -n csdr -owide
      2. 执行以下命令,将对应Node的labels: csdr.alibabacloud.com/agent-enabletrue修改为false

        kubectl label node  csdr.alibabacloud.com/agent-enable=false --overwrite

        重要

        • 重新进行备份恢复时,将自动创建Token并拉起hbr-client。

        • 将其他集群的Token拷贝到本集群,由此拉起的hbr-client不可用。您需要删除已拷贝的Token,以及由此Token拉起的hbr-client-*** Pod后,再执行上述步骤。

原因2:云盘数据备份时,集群快照权限未配置

若您对挂载云盘数据卷的应用使用数据备份功能时,长期处于Inprogress状态。请执行以下命令,查询集群新创建的VolumeSnapshot资源。

kubectl get volumesnapshot -n 

部分预期输出:

NAME                    READYTOUSE      SOURCEPVC         SOURCESNAPSHOTCONTENT         ...
   true                                ...

若所有的volumesnapshotREADYTOUSE长期处于false状态,请参见如下步骤处理。

  1. 登录ECS管理控制台,确认是否已开启云盘快照服务。

    • 未开启:请在对应地域开通云盘快照。具体操作,请参见开通快照。

    • 已开启:请转下一步。

  2. 确认是否已配置云盘快照的使用权限。

    1. 登录容器服务管理控制台,在左侧导航栏单击集群

    2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择集群信息

    3. 集群信息页面,单击集群资源页签,然后单击Master RAM角色右侧链接进入权限管理页面。

    4. 权限策略列表,查看云盘快照权限是否正常。

      • k8sMasterRolePolicy-Csi-***权限策略已存在,且已配置k8sMasterRolePolicy-Csi-***k8sMasterRolePolicy-Csi-***权限,表明云盘快照权限正常。请提交工单处理。

      • k8sMasterRolePolicy-Csi-***权限策略缺失,请为Master RAM角色授予如下云盘快照权限策略。具体操作,请参见创建自定义权限策略和为RAM角色授权。

        {
            "Version": "1",
            "Statement": [
                {
                    "Action": [
                        "ecs:DescribeDisks",
                        "ecs:DescribeInstances",
                        "ecs:DescribeAvailableResource",
                        "ecs:DescribeInstanceTypes",
                        "nas:DescribeFileSystems",
                        "ecs:AttachDisk",
                        "ecs:CreateDisk",
                        "ecs:CreateSnapshot",
                        "ecs:DeleteDisk",
                        "ecs:DeleteSnapshot",
                        "ecs:DetachDisk"
                    ],
                    "Resource": [
                        "*"
                    ],
                    "Effect": "Allow"
                }
            ]
        }
    5. 权限配置完成后,若问题仍未解决,请提交工单处理。

控制台界面提示当前数据拉取失败,请刷新重试!404 page not found

问题现象

控制台界面提示当前数据拉取失败,请刷新重试!404 page not found。

问题原因

相关CRD部署失败。

解决方案

  • 检查集群中的节点是否存在。若不存在,备份中心将无法部署。

  • 确认集群是否使用Flexvolume存储插件。若集群使用Flexvolume存储插件,请将集群的Flexvolume插件迁移至CSI插件。具体操作,请参见Flexvolume集群migrate-controller组件无法正常拉起。

  • 若您通过命令行工具使用备份中心,请检查相关YAML配置是否有误。具体操作,请参见通过命令行工具实现备份和恢复。

  • 若您的集群为注册集群,请确认是否配置了相关权限。具体操作,请参见ACK专有版集群与注册集群。

控制台界面提示已存在同名的资源,请修改名称后再试

问题现象

在创建或删除备份、制作快照、恢复任务时,控制台界面提示已存在同名的资源,请修改名称后再试

问题原因

在控制台删除任务时,将在集群中创建deletrequest资源,由工作组件进行系列删除操作,不仅仅删除对应的备份资源。关于命令行操作也类似,请参见通过命令行工具实现备份和恢复。

如果删除操作错误或处理deleterequest资源流程中出错,将导致部分集群中部分资源无法删除,出现存在同名资源的提示。

解决方案

  • 根据提示删除对应的同名资源。例如,报错提示deleterequests.csdr.alibabacloud.com "xxxxx-dbr" already exists,您可以通过执行以下命令删除。

    kubectl -n csdr delete deleterequests xxxxx-db
  • 使用新的名称创建对应任务。

跨集群恢复应用时,出现初始化仓库提示,无法选择备份任务进行恢复

问题现象

跨集群恢复应用时,出现初始化仓库提示,无法选择备份任务进行恢复。

问题原因

由于您选择的备份仓库未与当前集群进行关联。初始化仓库操作会将备份仓库的基础信息(OSS Bucket)下发到当前集群中,然后将备份仓库中已成功备份完成的数据在集群中进行初始化。只有初始化操作完成后,才可以在当前集群中选择到该备份仓库中的备份数据进行恢复操作。

解决方案

创建恢复任务页面,单击备份仓库右侧的初始化仓库,待备份仓库初始化完成后,再选择待恢复的任务。

如何修改备份仓库?

备份中心不支持备份仓库修改。备份仓库如需修改,只能删除后重建。

由于备份仓库是共用的,已创建的备份仓库随时可能处于备份恢复状态。此时,修改任意一个参数,都可能导致备份或恢复应用时找不到数据。所以备份仓库不允许修改。

重要

  • 若确认备份仓库未被使用过,您可以通过先删除此备份仓库,然后再创建同名备份仓库的方式间接修改。

  • 若备份仓库已进行过备份或恢复操作,则不允许修改,避免任务备份失败。

备份任务状态为Failed,且提示PROCESS velero failed err: VeleroError: xxx

问题现象

任务备份失败,且提示PROCESS velero failed err: VeleroError: xxx。

问题原因

csdr命名空间下名为csdr-velero-****的Pod在备份过程出现异常,通常为OOMKilled。csdr-velero在应用备份期间会出现内存峰值。当您需备份的对象较多时,可能会出现OOMKilled。

解决方案

关于排查和解决方案,请参见备份、恢复或快照转换任务长期处于Inprogress状态。

恢复任务状态为Completed,但集群中有部分资源未创建

问题现象

恢复任务状态为Completed,但集群中有部分资源未创建。

问题原因

  • 该资源未被备份。

  • 恢复集群中已经存在同名资源,恢复时跳过。

  • 由于端口冲突、底层云产品资源依赖等原因,部分任务恢复失败。

解决方案

  1. 执行以下命令,确认该资源已经备份。

    以下命令行中,为备份任务的名称,为未创建的资源所在的命名空间,为该资源的名称。

    kubectl -n csdr describe configmap  | grep "/"

    若无输出结果,表明该资源未被备份,可重新备份后恢复,或手动部署该资源。

    未被备份的原因:

    • 备份时,该资源还未创建或状态异常。

    • 设置了排除命名空间或排除资源,该资源命中被排除;设置了包含命名空间、指定资源、或指定标签备份,该资源未被命中被排除。

    • 未被任何应用使用的Cluster Scoped资源。

  2. 确认集群中是否已存在同名资源,若需要覆盖该资源,可以删除后重新恢复。

  3. 执行以下命令,获取Velero工作组件名称。

    kubectl -n csdr get pod | grep csdr-velero | awk '{print $1}'

    预期输出:

    csdr-velero-75996bbdb8-gddng
  4. 执行以下命令,获取应用恢复失败列表及原因。

    以下命令行中,为恢复任务的名称。

    kubectl -n csdr exec -it csdr-velero-75996bbdb8-gddng -- /velero describe restore 

    预期输出:

    ...
    Warnings:
      Velero:     
      Cluster:  could not restore, CustomResourceDefinition "volumesnapshots.snapshot.storage.k8s.io" already exists. Warning: the in-cluster version is different than the backed-up version.
      Namespaces: 
    
    Errors:
      Velero:     
      Cluster:    
      Namespaces:
        :  error restoring services//: Internal error occurred: failed to allocate requested HealthCheck NodePort 32578: provided port is already allocated
        ...
    ...

    预期输出中,为恢复资源所在命名空间的名称,该示例中恢复失败的资源类型为services为该资源的名称。

您可以通过失败原因自助排查解决。例如,示例中恢复失败的原因为Internal error occurred: failed to allocate requested HealthCheck NodePort 32578: provided port is already allocated,当备份和恢复集群为同一集群时,会自动修改健康检查端口;备份和恢复集群为不同集群时,该端口号会被保留。

重要

当备份的Service为使用已有SLB创建的LoadBalancer类型时,恢复的Service将复用该指定的SLB,并关闭强制覆盖已有监听。更多信息,请参见复用SLB的注意事项。

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/171336.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云容器服务ACK备份中心FAQ-云淘科技

    本文介绍备份中心使用过程中一些常见问题的解决方法。 索引 Flexvolume集群migrate-controller组件无法正常拉起 备份、恢复或快照转换任务状态为Failed,且提示VaultError: backup vault is unavailable: xxx 备份、恢复或快照转换任务状态为Failed,且提示backup location i…

    阿里云容器服务 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。