k8s数据通常保存在nfs-server里面,本例子将整个nfs-server的k8s数据挂载在集群1的master机器。
集群1: gz-kubesphere-master01
集群2: gz2-k8s-master01
注意:拷贝数据库,最好停库拷贝,在线拷贝会导致数据不一致。
一、核实集群1的PVC数据
1 挂载nfs-server的所有目录到本地服务器
mount -t nfs 10.186.100.13:/volume2/EHR /mnt
2 进入/mnt即可看到nfs所有数据
cd /mnt
ls -ls
.......
monitoring-elasticsearch-data-elasticsearch-data-1-pvc-c57aac19-e76f-445d-9dbf-f7dc421cca38
monitoring-elasticsearch-master-elasticsearch-master-0-pvc-7b063b9c-124e-432b-a5bc-0f49044d7b8c
monitoring-elasticsearch-master-elasticsearch-master-1-pvc-335bba0b-abaa-4951-bee9-e06e15d3ba94
monitoring-grafana-nfs-pvc-pvc-2a8815df-e94b-492a-87ec-69d0d06baeaa
monitoring-nfs-loki-0-pvc-b7ee4997-e762-484f-9dfd-d102dda57251
monitoring-pvc-backup-mysql-pvc-48a4bb5c-0390-40c0-a397-ea4f777c2940
monitoring-pvc-mysql-0-pvc-98344a63-3801-4050-b851-46b1aafd708d
monitoring-pvc-mysql-1-pvc-aadf0550-689a-4fb8-a26e-8303078cf97b
rds-pvc-backup-mysql-pvc-154e1f91-06fa-4c21-867d-9e59d0ad7f9b
rds-pvc-mysql-0-pvc-f8badc6d-e11c-4c27-8b94-5627df0050bb
rds-pvc-mysql-1-pvc-898d9512-4068-42ab-9a01-4c0b6a905755
usopa-test-pvc-backup-mysql-pvc-4b5125a3-d338-4d1c-8b7d-ce7e56b75183
wangjinxiong
wangjinxiong-gitlab-pvc-config-pvc-41deed8d-b3c0-4f39-b986-e54abacc53ac
wangjinxiong-gitlab-pvc-data-pvc-b4d00659-0408-4f29-8178-2184c876b5d0
wangjinxiong-gitlab-pvc-logs-pvc-428ab448-6729-4b6a-b183-7d1aea6e2948
wangjinxiong-mysql0527-pvc-pvc-888d6778-b035-48d9-81bf-e5e3f4123f68
wangjinxiong-nfs-pvc1-pvc-f1e5ef44-b720-4458-bafc-5df6bc89a42b
wangjinxiong-nfs-server-pvc2-pvc-496a4757-6262-42ae-81db-99dab70cbd07
wangjinxiong-pvc0530-pvc-731be493-61b4-4ca3-a146-361fc3c20d08
work-infinity-prod-pvc-backup-mysql-pvc-c4e42d99-c7e5-47b6-b762-30ec61ddfa44
work-infinity-prod-work-infinity-prod-mysql-0-pvc-09f1410b-f0ea-4608-8d90-bc29c9559682
work-infinity-prod-work-infinity-prod-mysql-1-pvc-2e31d1d1-18e5-4527-bd63-61ef0d6787f7
work-infinity-prod-work-infinity-prod-rabbitmq1-pvc1-pvc-15b48eaa-b20f-4987-9e75-9d5c80fa9040
work-infinity-prod-work-infinity-prod-redis-pvc1-pvc-1c83a3b5-7eab-429a-b39c-021d4a3147aa
work-infinity-test-work-infinity-test-mysql-pvc1-pvc-5962b1b7-1a02-4d4d-bc0c-6a8394278d10
work-infinity-test-work-infinity-test-rabbitmq1-pvc1-pvc-5f76626d-64d8-46ce-b5c2-54e470841613
work-infinity-test-work-infinity-test-redis-pvc1-pvc-5ecd2cb1-29bf-4b2c-b7c0-1b8e42015b4c
xr-dev-mysql-pvc1-pvc-e8ef0d9e-9548-4536-b025-3b49e1e1ca79
xr-dev-redis-data-redis-master-0-pvc-e8790ffd-deb9-44e7-a854-2d620b30d8df
zhangfangrui-pvc-backup-mysql-pvc-48d34e7c-0372-405a-ab50-86d316f42708
zhangfangrui-pvc-mysql-0-pvc-3b515c4e-e360-432b-b283-3f02bb3fb0a1
zhangfangrui-pvc-mysql-1-pvc-1196f1a5-c6f9-4d18-9e7a-4b4bfcc06f0e
zhaodengke-grafana-pvc-16595777-6d34-4ae8-a2d1-a7bdcd88a371
zhaodengke-prometheus-k8s-db-prometheus-k8s-0-pvc-379e5dc7-02a9-4aa4-bb1e-1f73e99ed372
3 查看集群1的pvc,后端存储sc为nfs-synology
[root@gz-kubesphere-master01 mnt]# kubectl get pvc -n it2
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
pvc-mysql-0 Bound pvc-632b8acd-41ba-4231-9fb4-b1a115c44529 20Gi RWO nfs-synology 112d
4 查看pvc所在的pv在后端存储的名称
[root@gz-kubesphere-master01 mnt]# kubectl describe pv pvc-632b8acd-41ba-4231-9fb4-b1a115c44529
Name: pvc-632b8acd-41ba-4231-9fb4-b1a115c44529
Labels: <none>
Annotations: pv.kubernetes.io/provisioned-by: nfs-provisioner-01
Finalizers: [kubernetes.io/pv-protection]
StorageClass: nfs-synology
Status: Bound
Claim: it2/pvc-mysql-0
Reclaim Policy: Delete
Access Modes: RWO
VolumeMode: Filesystem
Capacity: 20Gi
Node Affinity: <none>
Message:
Source:
Type: NFS (an NFS mount that lasts the lifetime of a pod)
Server: 10.186.100.13
Path: /volume2/EHR/it2-pvc-mysql-0-pvc-632b8acd-41ba-4231-9fb4-b1a115c44529
ReadOnly: false
Events: <none>
以上it2-pvc-mysql-0-pvc-632b8acd-41ba-4231-9fb4-b1a115c44529即为后端的目录名称
进入/mnt查看
[root@gz-kubesphere-master01 mnt]# ls -ls | grep it2-pvc-mysql-0-pvc-632b8acd-41ba-4231-9fb4-b1a115c44529
0 drwxrwxrwx 1 501 root 2972 7月 6 06:45 it2-pvc-mysql-0-pvc-632b8acd-41ba-4231-9fb4-b1a115c44529
源pvc: it2-pvc-mysql-0-pvc-632b8acd-41ba-4231-9fb4-b1a115c44529
二、集群2创建新的PVC
1 在集群2创建一个空pvc
[root@gz2-k8s-master01 /]# kubectl get pvc -n it2-dev
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
pvc-mysql-0 Bound pvc-481fa4ef-3056-4286-8850-15dc07cceb0c 20Gi RWO nfs-synology 17m
2 查看pvc所在的pv在后端存储的名称:
[root@gz2-k8s-master01 /]# kubectl describe pv pvc-481fa4ef-3056-4286-8850-15dc07cceb0c -n it2-dev
Name: pvc-481fa4ef-3056-4286-8850-15dc07cceb0c
Labels: <none>
Annotations: pv.kubernetes.io/provisioned-by: nfs-provisioner-01
Finalizers: [kubernetes.io/pv-protection]
StorageClass: nfs-synology
Status: Bound
Claim: it2-dev/pvc-mysql-0
Reclaim Policy: Delete
Access Modes: RWO
VolumeMode: Filesystem
Capacity: 20Gi
Node Affinity: <none>
Message:
Source:
Type: NFS (an NFS mount that lasts the lifetime of a pod)
Server: 10.186.100.13
Path: /volume2/EHR/it2-dev-pvc-mysql-0-pvc-481fa4ef-3056-4286-8850-15dc07cceb0c
ReadOnly: false
Events: <none>
it2-dev-pvc-mysql-0-pvc-481fa4ef-3056-4286-8850-15dc07cceb0c即为后端的目录名称
进入/mnt查看
cd /mnt
[root@gz-kubesphere-master01 mnt]# ls -ls | grep it2-dev-pvc-mysql-0-pvc-481fa4ef-3056-4286-8850-15dc07cceb0c
0 drwxrwxrwx 1 501 root 636 7月 6 10:02 it2-dev-pvc-mysql-0-pvc-481fa4ef-3056-4286-8850-15dc07cceb0c
目标pvc: it2-dev-pvc-mysql-0-pvc-481fa4ef-3056-4286-8850-15dc07cceb0c
三、将数据拷贝到新的PVC
cp源目录: 第一步的源pvc
cp目标目录: 第二步的目标pvc
cd /mnt
cp -r it2-pvc-mysql-0-pvc-632b8acd-41ba-4231-9fb4-b1a115c44529/* it2-dev-pvc-mysql-0-pvc-481fa4ef-3056-4286-8850-15dc07cceb0c/