kubernetes - 在 Kubernetes 集群中跨上下文移动资源/卷

标签 kubernetes kubernetes-pod kops persistent-volumes persistent-volume-claims

我有一个 kubernetss 集群,我从上下文“dev1.k8s.local”开始,它有一个带有 EBS -PV(持久卷)的有状态集
现在我们计划开始另一个上下文“dev2.k8s.local”
有没有办法可以将 dev1 上下文 EBS 卷移动到上下文“dev2.k8s.local”

i am using K8S 1.10 & KOPS 1.10 Version

最佳答案

上下文只是 Kubernetes 配置的表示,通常是 ~/.kube/config .这个文件可以有multiple configurations在其中手动管理或使用 kubectl context .

当您使用 Kops 在 AWS 上预置第二个 Kubernetes 集群时,会重新创建全新的资源,这些资源没有关于其他集群的引用框架。为原始集群中的 PV 创建的 EBS 卷不能简单地使用配置文件中的上下文条目在集群之间传输。这不是它的设计工作方式。

除了设计问题外,还涉及一个严重的技术障碍。 EBS 卷为 ReadWriteOnce .这意味着它们一次只能连接到一个 pod。存在此约束的原因是因为 EBS 连接是 block 存储,它被视为连接到运行您的 pod 的底层工作节点的物理 block 设备。该物理 block 设备在其他集群的工作程序节点上不存在。所以不可能简单地将指针移过去。

完成此操作的最佳方法是通过磁盘备份和复制。你如何处理这取决于你的团队。一种方法是安装两个 EBS 卷并手动复制数据。您还可以拍摄快照并将数据还原到另一个卷。

关于kubernetes - 在 Kubernetes 集群中跨上下文移动资源/卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60804342/

相关文章:

kubernetes - 将外部应用程序属性值传递给kubernetes部署

kubernetes - kops 部署的自动现货定价

kubernetes - 如何修复此错误 "watch chan error: etcdserver: mvcc: required revision has been compacted"?

kubernetes - 我可以对节点设置 CPU 限制吗?

wordpress - 在 Kubernetes 上使用 Wordpress CLI 镜像

docker - 在docker中运行两个服务节点和python

spring-boot - 如何从外部对运行在kubernetes pod中的应用程序进行http调用?

kubernetes - 我可以强制 Kubernetes 不要在同一节点中运行超过 X 个 pod 副本吗?

kubernetes - kubefed init 说 "waiting for the federation control plane to come up"但它永远不会出现

amazon-web-services - kubernetes:kops 和 IAMFullAccess 策略