首页 > 解决方案 > Kubernetes,自动服务回退到另一个命名空间

问题描述

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

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

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

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

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

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

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

但是如果我有超过 100 个服务并在 yaml 中管理外部端点,我会感到非常困难。

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

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

标签: kuberneteskube-dnskubernetes-servicekubernetes-namespace

解决方案


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

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


推荐阅读