将Kubernetes集群迁移到其他OpenStack区域

时间:2020-06-30 07:48:53

标签: kubernetes openstack etcd openstack-cinder

我正在尝试将Kubernetes集群(主实例和工作实例)迁移到其他OpenStack区域。经过一些简单的修改(更改了cloud-config,节点标签),我设法启动了集群。剩下一个问题-存储。在此设置中,我使用OpenStack内部云提供程序,该程序将煤渣卷作为吊舱的PV管理。新区域使用不同的区域名称和卷类型。卷ID也已更改。通过例如通过修改SC和PV定义无法更改此值。 kubectl。

我想知道是否可以在etcd数据库中直接更改它吗? 到目前为止,我尝试修改PV定义,但是看来Kubernetes还会插入其他字符,并且修改它并不明显。

我做了什么:

  1. 从etcd获取PV定义并保存到文件中: docker run --rm -it --net host -v /etc/kubernetes:/etc/kubernetes k8s.gcr.io/etcd:3.4.3-0 etcdctl --cert /etc/kubernetes/pki/etcd/healthcheck-client.crt --key /etc/kubernetes/pki/etcd/healthcheck-client.key --cacert /etc/kubernetes/pki/etcd/ca.crt --endpoints https://kube-dev02-master01:2379 get /registry/persistentvolumes/pvc-1625baa0-e36c-4e2b-ad3d-0dfecc910ae0 --print-value-only > pv1.txt
  2. 我更改了区域名称,区域名称和卷ID(使用vi)。
  3. 将修改后的值加载到etcd: docker run --rm -it --net host -v /etc/kubernetes:/etc/kubernetes k8s.gcr.io/etcd:3.4.3-0 etcdctl --cert /etc/kubernetes/pki/etcd/healthcheck-client.crt --key /etc/kubernetes/pki/etcd/healthcheck-client.key --cacert /etc/kubernetes/pki/etcd/ca.crt --endpoints https://kube-dev02-master01:2379 put /registry/persistentvolumes/pvc-1625baa0-e36c-4e2b-ad3d-0dfecc910ae0 "$(cat pv1.txt)"
  4. 从kubectl检查PV:
[kubeadmin@kube-dev02-master01 ~]$ kubectl get pv
Error from server: illegal base64 data at input byte 5

因此,编码似乎有些问题,但我不知道在哪里。

Output of PV value stored in etcd

随Kubeadm一起安装的Kubernetes v1.17.5,etcd v.3.4.3-0。

0 个答案:

没有答案
相关问题