我的 kubernetes 中有多个由多个命名空间表示的环境。

所有应用程序都在每个命名空间中定义了其服务端点。
我们有三个环境,dev、alpha 和 beta。 (这相当于开发、测试和阶段)。这些环境是永久性的,这意味着所有应用程序都在那里运行。

现在在我的团队中,很少有并行开发发生,我们计划为此版本创建多个环境,并且只有少数应用程序是该版本的一部分。

让我们想想这个例子:我正在构建 feature1 并对 app1 和 app2 产生影响

还有其他 10 个应用程序没有任何影响。

因此,对于我的开发和并行测试,大多数服务必须指向现有的 alpha 或 beta 环境,并且只指向命名空间中的 app1 和 app2。

我可以通过为所有其他服务创建一个 ExternalName 映射来实现这一点。

但是如果我有 100 多个服务并且在一个 yaml 中管理外部端点,我会觉得非常困难。

有什么方法可以将所有流量路由到另一个命名空间(如果不存在具有该名称的服务。)

有没有办法为命名空间设置全局 ExternalName?

最佳答案

据我所知,不可能根据当前命名空间中的现有 pod 或服务将流量重定向到不同的命名空间。您只能通过更改其 YAML 配置来选择 Service 的目的地,并且只能选择同一命名空间中的 Pod。

您可以使用 Helm charts 简化部署过程。它允许您将变量放入部署、服务等的 YAML 配置中,并在安装到集群期间使用单独的值文件来替换它们。这是 Using Helm to deploy to Kubernetes 上博客文章的链接

关于Kubernetes,自动服务回退到另一个命名空间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52924799/

10-16 22:32