我有一个kubernetss集群,我用上下文"dev1.k8s.local"启动它,它有一个带有EBS-PV(持久卷(的有状态集现在我们计划启动另一个上下文"dev2.k8s.local"有没有一种方法可以将dev1上下文EBS卷移动到上下文"dev2.k8s.local">
i am using K8S 1.10 & KOPS 1.10 Version
Context只是Kubernetes配置的一种表示,通常是~/.kube/config
。该文件中可以有多个手动管理或使用kubectl context
管理的配置。
当您使用Kops在AWS上提供第二个Kubernetes集群时,会重新创建没有其他集群参考框架的全新资源。为原始集群中的PV创建的EBS卷不能简单地使用配置文件中的上下文条目在集群之间传输。这不是它的设计初衷。
除了设计问题,还有一个严重的技术障碍。EBS卷是ReadWriteOnce。这意味着它们一次只能连接到一个吊舱上。之所以存在这种限制,是因为EBS连接是块存储,它被视为连接到运行pod的底层工作节点的物理块设备。该物理块设备不存在于其他群集中的工作节点上。因此,简单地移动指针是不可能的。
实现这一点的最佳方法是在磁盘上进行备份和复制。你如何处理这件事取决于你的团队。一种方法是装载两个EBS卷并手动复制数据。您还可以拍摄快照并将数据恢复到其他卷。