我已经与Docker合作了很长一段时间,并且已经有了一个开始很小的生产环境,但是现在已经发展到超过50个Linux节点,每个节点运行一个Docker容器。
我一直在使用自定义python脚本来编排所有的东西,到目前为止它已经非常成功了,但是由于我们可能会继续进行扩展,我想我需要一个可靠的、灵活的编排工具,所以最好现在就开始计划每一件事情。
我开始阅读有关对接编排选项的文章,到目前为止,我已经将其缩小到两个选项: Kubernetes或坞群。
从Kubernetes的角度来看,这似乎是正确的选择(作为一个健壮、灵活的编排系统),但我不确定它是否适合我的环境。据我所读,它不能处理已经存在的码头容器,它只能用来从头开始创建一个新的集群。在我们的例子中,我们使用的是具有特殊硬件需求的专用服务器,因此我们不可能有另一个并行的备用集群,在这里我们可以从Kubernetes重新开始。
另一方面,坞群看起来更适合安排现有的码头容器,但似乎存在可靠性和扩展性问题。
有丰富的Kubernetes/码头群经验的人能给我一些建议吗?我应该如何处理迁移到一个精心安排的对接集群,而不需要从头创建一个集群(因为在我的情况下这是不可能的)?
谢谢!
发布于 2019-05-30 16:25:23
我对斯温码头不太了解,但我可以分享我对库伯奈特球队的看法。
无论如何,如果您想在环境中进行更改,您将需要一些额外的机器--您的机器的使用率为90%,所以在当前的场景中,您怎么可能迁移或开始使用Kubernetes。除了一个一个地关闭节点并逐渐迁移到Kubernetes之外。您可以尝试将两个当前节点更改为1个kubernetes主节点和1个节点(例如使用kubespray),然后将容器作为部署加入到集群中。
您已经提到不能开始编排运行容器,因为您需要从头开始使用Kubernetes,但是这里有一件事是很重要的。如果您正确地使用K8s,您将永远不会再有这个问题了。Kubernetes的声明方式和一切都是yaml文件的事实使未来变得更容易。您只需要将您的服务、部署、configmap等备份起来,这个问题就会在将来消失。此外,编排,自我愈合,升级和缩放将不再是如此复杂。
所以长话短说。我并不是说我要写的东西是唯一正确的方式,我只会分享在你的情况下我会做什么。
你已经说过你租的是硬件-那为什么不搬到云端呢?你不需要马上移动所有的东西。我的意思是-在云中重新创建您的水下--可能在一个管理的Kubernetes服务中(GKE、EKS、AKS或许多其他服务),因为它们是最容易管理的,如果您对集群有问题的话,您将得到Google/AWS/Azure等的工程师的支持。在您完成了云中的环境并按预期工作之后,您可以决定下一步是什么。
是否值得在你所有的基础设施中呆着,或者还是回到你的前提下更好呢?在这种情况下,您将已经有了使用Kubernetes、准备好的YAML文件、备份等方面的经验,并将其从Cloud Kubernetes迁移到on--前提Kubernetes将更加简单--您所需要做的就是几乎1:1的迁移+对网络进行一些修补。
有免费的试用,所以你可以测试这是否对你这样-在GCP你得到300美元的免费试用,而且他们提供持续的使用折扣。这样您就可以在更小的范围内测试您的应用程序。在AWS中有一个免费的层,它应该足够测试一些基本特性。不确定其他云提供商,但他们肯定有相应的报价。
因此,要么您尝试迁移到部分云,并在or和Cloud之间划分通信量,要么将整个水下部分复制到Cloud中,然后在-prem上复制它,如果您愿意的话。
另一种方法是关闭两个节点,在它们上创建一个Kubernetes主节点和Node,然后一个一个地慢慢地将您的节点连接到集群中。这也取决于您正在运行的是哪种应用程序,您能负担得起停机时间等等,但是可以通过例如金丝雀部署来解决这些问题。
https://serverfault.com/questions/968957
复制相似问题