商城
简体中文
  • 云原生容器产品
    • QKCP 企业级容器平台
    • KSV 虚拟化管理平台
    • KubeSphere 混合架构容器云
    • QKCP 容器一体机
    • 数据库(即将上线)
  • 云原生服务
    • 云原生备份容灾服务
  • 公有云容器服务
    • KubeSphere on AWS
    • KubeSphere on QingCloud
    • KubeSphere on Azure
    • KubeSphere on DigitalOcean
  • 技术支持服务
    • 全方位支持工单
    • 平台 Logo 定制

问题排查

介绍有关 KubeSphere Cloud 云原生备份容灾服务的问题排查思路。

导入 Kubernetes 集群后,云原生备份容灾服务会在您的 Kubernetes 集群上创建一个名为 qiming-backend 的命名空间,用于部署备份恢复组件。备份恢复组件主要包括 Velero 的安装程序以及 Velero 本身。

本节介绍有关 KubeSphere Cloud 云原生备份容灾服务的问题排查思路。

Kubernetes 集群资源预留

为了使备份容灾服务能够稳定且可靠地运行,请确保您的 Kubernetes 集群上预留有足够的资源。目前默认的资源设置如下:

  1. Velero 的安装程序是名为 restic 的守护进程集(DaemonSet),主要负责本地文件到 S3 对象存储仓库的传输控制,需要的资源如下:

    name: restic resources: limits: cpu: "1" memory: 1Gi requests: cpu: 500m memory: 512Mi

    common:NOTE

    上述资源设置均为默认的推荐设置,若您需要调整资源设置,请执行 kubectl edit daemonset restic -n qiming-backend 命令修改 spec.template.spec.containers.resources 字段下的对应配置并保存修改。

  2. Velero 是一个副本数为 1 的部署(Deployment),主要负责 Velero 的控制逻辑,例如备份、恢复等,需要的资源如下:

    name: velero resources: limits: cpu: "1" memory: 1000Mi requests: cpu: 500m memory: 256Mi

    common:NOTE

    上述资源设置均为默认的推荐设置,若您需要调整资源设置,请执行 kubectl edit deploy velero -n qiming-backend 命令修改 spec.template.spec.containers.resources 字段下的对应配置并保存修改。

获取备份组件容器组日志

若您的备份恢复组件有异常,请尝试获取相关容器组的日志,根据日志中的信息进行排查。

  1. 在您集群的主节点上,执行以下命令获取 qiming-backend 命名空间中的容器组(Pod)信息。

    $ kubectl get pods -n qiming-backend NAME READY STATUS RESTARTS AGE restic-98lc4 1/1 Running 0 80m velero-564c9df5c6-mn2s7 1/1 Running 0 80m velero-installer-66d65557c4-dz86t 1/1 Running 0 83m
  2. 执行以下命令获取 Velero 容器组日志。

    kubectl logs <Velero 容器组名称> -n qiming-backend > /tmp/velero.log
  3. 执行以下命令获取 restic 容器组日志。

    kubectl logs <restic 容器组名称> -n qiming-backend > /tmp/restic.log

获取备份和恢复信息以及日志

若您的备份任务或恢复任务有异常,请尝试获取异常任务的信息和日志,以进行排查。

准备工作

  1. 确保您的电脑能够访问待排查集群。

  2. 访问此网页,根据您电脑的型号下载相应的 Velero v1.7.0 安装包。

  3. 执行以下命令解压安装包并查看版本信息。

    tar -xvf <安装包文件名> cd <解压后的路径> chmod +x velero ./velero version
  4. 执行以下命令创建配置文件并进行编辑。

    mkdir -p $HOME/.config/velero vi $HOME/.config/velero/config.json
  5. 在配置文件中输入以下内容,将配置文件指向 qiming-backend 命名空间,编辑完成后进行保存。

    { "namespace": "qiming-backend" }
  6. 将待排查集群的 kubeconfig 信息保存至 ~/.kube/config,Velero 默认使用此 kubeconfig 文件连接您的集群。您也可使用 velero --kubeconfig=<your-kubeconfig-file> 指定 kubeconfig 文件位置。

获取备份任务信息以及日志

  1. 执行以下命令查看备份任务信息。

    ./velero get backups
  2. 执行以下命令查看备份任务详情。

    ./velero describe backup <备份任务名称>
  3. 执行以下命令查看备份任务日志。

    ./velero backup logs <备份任务名称>

获取恢复任务信息以及日志

  1. 执行以下命令查看恢复任务信息。

    ./velero get restores
  2. 执行以下命令查看恢复任务详情。

    ./velero describe restore <恢复任务名称>
  3. 执行以下命令查看恢复任务日志。

    ./velero restore logs <恢复任务名称>

备份恢复组件安装问题排查

  • qiming-backend 命名空间中的某个容器组无法正常启动。

    1. 请执行以下命令查看启动失败的原因。

      kubectl -n qiming-backend describe pod <容器组名称>
    2. 若回显信息提示无法拉取镜像,请执行以下命令来测试当前节点或者集群能否正常下载容器镜像。

      docker pull registry.cn-shanghai.aliyuncs.com/jibudata/velero-installer:xxx
    3. 若回显信息提示集群资源不足,请确保预留了足够的集群资源

  • restic 守护进程集出现错误。

    1. 请执行以下命令查看错误原因。

      kubectl -n qiming-backend describe pod <restic 容器组名称>
    2. restic 守护进程集通过在集群节点上挂载 kubelet 目录 /var/lib/kubelet/pods 来访问持久卷声明(PVC)文件数据进行备份。如果您的 Kubernetes 集群的 kubelet 路径和上述配置不同,请执行以下命令,将 spec.template.spec.volumes.hostPath.path 字段的值修改为正确的 kubelet 路径并保存修改。

      kubectl edit daemonset restic -n qiming-backend

备份相关问题排查

备份任务长时间处于进行中

  1. 执行以下命令查看备份任务信息。

    ./velero get backups
  2. 执行以下命令查看长时间处于进行中的备份任务详情,根据备份计划具体内容分析备份动作是否正常。

    ./velero describe backup <备份任务名称> --details

备份失败

  1. 执行以下命令查看备份任务信息。

    ./velero get backups
  2. 执行以下命令查看备份失败的备份任务详情,根据回显信息中的 Errors 字段分析具体原因并根据错误提示进行处理。

    ./velero describe backup <备份任务名称> --details

查看备份/恢复相关自定义资源(CR)信息

查看备份任务 CR

  1. 执行以下命令查看所有的备份任务 CR。

    $ kubectl get backups.velero.io -n qiming-backend NAME AGE test-backup-4lx3w-vfg5q 2d19h

    common:NOTE

    备份 CR 的名称前缀对应您创建的备份任务名称。例如,您创建了名为 test-backup1 的备份计划,那么对应的备份任务 CR 的名称为 test-backup1-xxxxx-xxxxx

  2. 执行以下命令查看备份任务 CR 的状态。

    kubectl get backups.velero.io -n qiming-backend <备份任务 CR 名称> -o yaml

    common:NOTE

    主要关注回显信息的 status.phase 字段内容,以及是否有 error 或者 warning。

查看恢复任务 CR

  1. 执行以下命令查看所有的恢复任务 CR。

    kubectl get restores.velero.io -n qiming-backend
  2. 执行以下命令查看恢复任务 CR 的状态。

    kubectl get restores.velero.io -n qiming-backend <restore cr name> -o yaml