K8S相同后端存储在2个K8S集群PVC数据直接拷贝

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/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 CentOS 7 中搭建 K8S 集群的步骤如下: 1. 安装 Docker: K8S 需要使用 Docker 作为容器引擎, 因此需要在每个节点上安装 Docker。 2. 安装 kubeadm, kubelet 和 kubectl: kubeadm 是用于在 CentOS 上安装和管理 K8S 集群的工具, kubelet 是 K8S 的主要组件, 用于在节点上运行容器, kubectl 是 K8S 的命令行工具, 用于管理集群。 3. 初始化集群: 使用 kubeadm 初始化集群, 在一个节点上运行 kubeadm init 命令。 4. 加入节点: 使用 kubeadm join 命令在其他节点上加入集群。 5. 安装网络插件: 为了使容器之间可以通信, 还需要安装一个网络插件, 常用的有 Flannel 和 Calico。 6. 部署应用: 可以使用 kubectl 命令在集群中部署应用, 或者使用其他工具如 Helm。 希望这些信息能够帮助你。 ### 回答2: 在CentOS 7中搭建K8S集群的步骤如下: 1. 首先,确保所有节点上的操作系统为CentOS 7,并且所有节点之间能够互相通信。 2. 在所有节点上安装Docker并启动Docker服务。可以通过以下命令进行安装: $ sudo yum install -y docker $ sudo systemctl start docker $ sudo systemctl enable docker 3. 配置Docker的系统参数以支持Kubernetes。通过编辑/etc/docker/daemon.json文件,添加以下内容: { "exec-opts": ["native.cgroupdriver=systemd"] } 4. 配置Kubernetes的YUM源,并安装Kubernetes所需的软件包。可以通过以下命令进行安装: $ sudo vi /etc/yum.repos.d/kubernetes.repo 添加以下内容: [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg $ sudo yum install -y kubelet kubeadm kubectl 5. 配置Kubernetes集群的Master节点。在Master节点上执行以下命令: $ sudo kubeadm init 6. 完成Kubernetes集群的Master节点配置后,按照命令输出的指引,将所需的配置文件拷贝到合适的位置,并设置kubectl的配置文件。例如: $ mkdir -p $HOME/.kube $ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config $ sudo chown $(id -u):$(id -g) $HOME/.kube/config 7. 启动Kubernetes集群的网络插件。可以选择任何支持的网络插件,例如Calico、Flannel等。执行以下命令以安装Calico插件: $ kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml 8. 加入其他节点到Kubernetes集群。按照输出的命令在其他节点上执行以加入集群,例如: $ sudo kubeadm join <Master节点IP>:<Master节点端口> --token <Token值> --discovery-token-ca-cert-hash <CA证书哈希值> 9. 检查Kubernetes集群的状态。执行以下命令以查看集群中节点的状态: $ kubectl get nodes 10. 完成以上步骤后,Kubernetes集群的搭建就完成了。您现在可以开始使用Kubernetes来部署和管理容器应用程序了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值