从服务和Pod的主机名(fqdn)中删除名称空间

时间:2018-10-22 12:48:38

标签: dns kubernetes coredns

我正在为每个生命周期部署单独的Kubernetes集群,即用于开发的一个集群和用于生产的单独的集群,并且将仅使用名称空间将基于此处任务的应用程序进行逻辑隔离,例如数据名称空间中的所有数据库,网络名称空间中的UI应用程序等。

由于这种设计,服务或pod的FQDN中不需要名称空间,因为每个服务和部署都是唯一的。任何人都可以建议我如何从主机名中删除名称空间。如果默认名称空间中有一个名为my-service的服务,我想使用“ my-service.svc.cluster.local”而不是“ my-service.default.svc.cluster.local”从其他名称空间解析该服务< / p>

我正在运行kubernetes 1.10并使用coreDNS。

3 个答案:

答案 0 :(得分:1)

您不能,这不是kubernetes的设计方式。只要您在同一个命名空间中,就可以只用my-service来调用它

答案 1 :(得分:1)

如果您将标准DNS配置与CoreDNS或KubeDNS一起使用,则无法按照其他答案中的描述进行更改。

但是,您可以使用StubDomain和服务发现工具来更改DNS。最受欢迎的一种是Consulhere's how to configure a stub domain with it

请注意,如果不是服务器,您可能必须运行Consul cluster in Kubernetes,当然,您的吊舱将需要领事代理边车。

答案 2 :(得分:0)

pod和服务资源已命名。因此,您不能使它们没有命名空间。

metric_a{some_label=metric_b}