我们公司正在开发一个应用程序,它运行在3个不同版本(生产,分期,测试)的单独kubernetes集群中。 我们需要随着时间的推移监控我们的集群和应用程序(指标和日志)。我们还需要运行邮件服务器。
基本上我们有3种不同的环境,我们的应用程序版本不同。我们有一些 需要运行的共享服务,我们并不关心它们:
我不确定在哪里运行这些外部共享服务。我找到了这些选项:
我们需要为3种环境安装工具3次。
骗局:
我们在另外一个kubernetes-cluster中安装共享工具。
缺点:
我们在oldschool-root-server上运行docker-containers。
缺点:
我试图谷歌解决这个问题,但我找不到有关该主题的任何内容。任何人都可以给我一个关于这个主题的提示或一些链接吗? 或者群集可能会出现问题,这只是一个相关的问题吗?
对我来说,第二个选项听起来不那么邪恶,但我无法估计是否很难将数据从一个集群传输到另一个集群。
重要的问题是:
OpenTelekomCloud
运行kubernetes,基本上是OpenStack
)?感谢您的提示,
的Marius
答案 0 :(得分:1)
这是一个非常复杂和哲学的话题,但我会向你提出我对它的看法以及支持它的一些事实。
我认为最好的方法是第二种 - 创建一个额外的群集,这就是原因:
您需要一个可以从任何环境访问的点。使用单独的群集,您可以在所有环境中设置相同的防火墙规则,路由等,并且它不会影响您当前的工作负载。
是的,你需要付出更多。但是,您需要资源来运行共享应用程序,与应用程序相比,Kubernetes基础结构的开销不高。
使用单独的群集,您可以设置真正的HA解决方案,您可能不需要暂存和开发群集,因此您不会多次付费。
从技术上讲,它也没关系。您可以使用Heapster从多个集群中收集数据;几乎所有日志记录解决方案都可以使用多个集群。所有其他应用程序都可以在单独的群集上运行,而且只需要对它们进行操作。
现在,关于你的问题:
在群集中拥有监控数据是否存在问题,因为如果群集处于脱机状态,则无法看到监控数据?
不,这对单独的群集来说不是问题。
通常的做法是为共享服务创建一个不会对应用程序的其他部分产生影响的其他集群吗?
我想,是的。至少我做了几次,我知道其他一些具有类似架构的项目。
是否(很容易)可以将指标和日志从一个kubernetes集群发送到另一个集群(我们在OpenTelekomCloud中运行kubernetes,基本上是OpenStack)?
是的,没有什么复杂的。通常,它不依赖于平台。