问题排查
介绍有关 KubeSphere Cloud 云原生备份容灾服务的问题排查思路。
导入 Kubernetes 集群后,云原生备份容灾服务会在您的 Kubernetes 集群上创建一个名为 qiming-backend
的命名空间,用于部署备份恢复组件。备份恢复组件主要包括 Velero 的安装程序以及 Velero 本身。
本节介绍有关 KubeSphere Cloud 云原生备份容灾服务的问题排查思路。
Kubernetes 集群资源预留
为了使备份容灾服务能够稳定且可靠地运行,请确保您的 Kubernetes 集群上预留有足够的资源。目前默认的资源设置如下:
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
字段下的对应配置并保存修改。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
字段下的对应配置并保存修改。
获取备份组件容器组日志
若您的备份恢复组件有异常,请尝试获取相关容器组的日志,根据日志中的信息进行排查。
在您集群的主节点上,执行以下命令获取
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
执行以下命令获取 Velero 容器组日志。
kubectl logs <Velero 容器组名称> -n qiming-backend > /tmp/velero.log
执行以下命令获取
restic
容器组日志。kubectl logs <restic 容器组名称> -n qiming-backend > /tmp/restic.log
获取备份和恢复信息以及日志
若您的备份任务或恢复任务有异常,请尝试获取异常任务的信息和日志,以进行排查。
准备工作
确保您的电脑能够访问待排查集群。
访问此网页,根据您电脑的型号下载相应的 Velero v1.7.0 安装包。
执行以下命令解压安装包并查看版本信息。
tar -xvf <安装包文件名> cd <解压后的路径> chmod +x velero ./velero version
执行以下命令创建配置文件并进行编辑。
mkdir -p $HOME/.config/velero vi $HOME/.config/velero/config.json
在配置文件中输入以下内容,将配置文件指向
qiming-backend
命名空间,编辑完成后进行保存。{ "namespace": "qiming-backend" }
将待排查集群的 kubeconfig 信息保存至
~/.kube/config
,Velero 默认使用此 kubeconfig 文件连接您的集群。您也可使用velero --kubeconfig=<your-kubeconfig-file>
指定 kubeconfig 文件位置。
获取备份任务信息以及日志
执行以下命令查看备份任务信息。
./velero get backups
执行以下命令查看备份任务详情。
./velero describe backup <备份任务名称>
执行以下命令查看备份任务日志。
./velero backup logs <备份任务名称>
获取恢复任务信息以及日志
执行以下命令查看恢复任务信息。
./velero get restores
执行以下命令查看恢复任务详情。
./velero describe restore <恢复任务名称>
执行以下命令查看恢复任务日志。
./velero restore logs <恢复任务名称>
备份恢复组件安装问题排查
qiming-backend
命名空间中的某个容器组无法正常启动。请执行以下命令查看启动失败的原因。
kubectl -n qiming-backend describe pod <容器组名称>
若回显信息提示无法拉取镜像,请执行以下命令来测试当前节点或者集群能否正常下载容器镜像。
docker pull registry.cn-shanghai.aliyuncs.com/jibudata/velero-installer:xxx
若回显信息提示集群资源不足,请确保预留了足够的集群资源。
restic
守护进程集出现错误。请执行以下命令查看错误原因。
kubectl -n qiming-backend describe pod <restic 容器组名称>
restic
守护进程集通过在集群节点上挂载 kubelet 目录/var/lib/kubelet/pods
来访问持久卷声明(PVC)文件数据进行备份。如果您的 Kubernetes 集群的 kubelet 路径和上述配置不同,请执行以下命令,将spec.template.spec.volumes.hostPath.path
字段的值修改为正确的 kubelet 路径并保存修改。kubectl edit daemonset restic -n qiming-backend
备份相关问题排查
备份任务长时间处于进行中
执行以下命令查看备份任务信息。
./velero get backups
执行以下命令查看长时间处于
进行中
的备份任务详情,根据备份计划具体内容分析备份动作是否正常。./velero describe backup <备份任务名称> --details
备份失败
执行以下命令查看备份任务信息。
./velero get backups
执行以下命令查看备份失败的备份任务详情,根据回显信息中的
Errors
字段分析具体原因并根据错误提示进行处理。./velero describe backup <备份任务名称> --details
查看备份/恢复相关自定义资源(CR)信息
查看备份任务 CR
执行以下命令查看所有的备份任务 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
。执行以下命令查看备份任务 CR 的状态。
kubectl get backups.velero.io -n qiming-backend <备份任务 CR 名称> -o yaml
common:NOTE
主要关注回显信息的
status.phase
字段内容,以及是否有 error 或者 warning。
查看恢复任务 CR
执行以下命令查看所有的恢复任务 CR。
kubectl get restores.velero.io -n qiming-backend
执行以下命令查看恢复任务 CR 的状态。
kubectl get restores.velero.io -n qiming-backend <restore cr name> -o yaml