我正在尝试将Kubernetes集群(主实例和工作实例)迁移到其他OpenStack区域。经过一些简单的修改(更改了cloud-config,节点标签),我设法启动了集群。剩下一个问题-存储。在此设置中,我使用OpenStack内部云提供程序,该程序将煤渣卷作为吊舱的PV管理。新区域使用不同的区域名称和卷类型。卷ID也已更改。通过例如通过修改SC和PV定义无法更改此值。 kubectl。
我想知道是否可以在etcd数据库中直接更改它吗? 到目前为止,我尝试修改PV定义,但是看来Kubernetes还会插入其他字符,并且修改它并不明显。
我做了什么:
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
。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)"
[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。