- 前提: 数据保存在挂载目录
简单概括就是
-
停止原来pod
-
新建pod
-
使用vim新建yaml文件
apiVersion: v1 kind: Pod metadata: name: pvc-rescue namespace: ns-59jre8sd spec: restartPolicy: Never containers: - name: rescue image: busybox:1.36 command: ["sh", "-c", "sleep 7d"] volumeMounts: - name: data mountPath: /data volumes: - name: data persistentVolumeClaim: claimName: vn-data-nav-book-0 -
启动,
kubectl apply -f pvc-rescue.yaml -
查看状态
kubectl get pod pvc-rescue -n ns-59jre8sd -w 如果看到pvc-rescue 正常运行 1/1 那就行成功了
-
-
连上新pod, 下载容器数据到宿主机
kubectl exec -it pvc-rescue -n ns-59jre8sd -- sh 连上之后, 具体操作因人而异, 我的文件是在/data目录, 我就打包/data tar czf /tmp/data-backup.tar.gz -C /data . 再exit退出容器 再复制数据 kubectl cp ns-59jre8sd/pvc-rescue:/tmp/data-backup.tar.gz ./data-backup.tar.gz -
上传数据到临时存储, 最后下载
这块有很多方法
- 比如使用cf Tunnels+文件服务(Copyparty, filebrowser)暴露出去, 直接下载
- 如果本地有什么服务(webdav, alist等)可以通过curl,wget直接上传的那更方便
- 我使用的是ffsend, 得先下载, 不重要的资料可以用这个, 或者先把资料加密
wget https://github.com/timvisee/ffsend/releases/download/v0.2.77/ffsend-v0.2.77-linux-x64-static 设置执行权限 chmod +x ffsend-v0.2.77-linux-x64-static 上传文件 ./ffsend-v0.2.77-linux-x64-static upload data-backup.tar.gz --password "你设置的密码" 正常返回下载地址, 直接访问下载就好了
注意事项
3 个帖子 - 3 位参与者
