我正在为每个生命周期部署单独的Kubernetes集群,即用于开发的一个集群和用于生产的单独的集群,并且将仅使用名称空间将基于此处任务的应用程序进行逻辑隔离,例如数据名称空间中的所有数据库,网络名称空间中的UI应用程序等。
由于这种设计,服务或pod的FQDN中不需要名称空间,因为每个服务和部署都是唯一的。任何人都可以建议我如何从主机名中删除名称空间。如果默认名称空间中有一个名为my-service的服务,我想使用“ my-service.svc.cluster.local”而不是“ my-service.default.svc.cluster.local”从其他名称空间解析该服务< / p>
我正在运行kubernetes 1.10并使用coreDNS。
答案 0 :(得分:1)
您不能,这不是kubernetes的设计方式。只要您在同一个命名空间中,就可以只用my-service
来调用它
答案 1 :(得分:1)
如果您将标准DNS配置与CoreDNS或KubeDNS一起使用,则无法按照其他答案中的描述进行更改。
但是,您可以使用StubDomain
和服务发现工具来更改DNS。最受欢迎的一种是Consul和here's how to configure a stub domain with it。
请注意,如果不是服务器,您可能必须运行Consul cluster in Kubernetes,当然,您的吊舱将需要领事代理边车。
答案 2 :(得分:0)
pod和服务资源已命名。因此,您不能使它们没有命名空间。
metric_a{some_label=metric_b}