kubernetes:名称空间的服务名称解析
使用kubernetes:名称空间的服务名称解析,kubernetes,Kubernetes,使用kops 我的应用程序公开了几个服务。正如预期的那样,服务之间使用其名称进行通信,即下面的name字段: kind: Service metadata: name: myservice namespace: staging_namespace 问题是: 假设我将在不同的命名空间中部署2版本的应用程序(例如测试和暂存),这会防止服务名称冲突吗 命名空间分离允许吗 service1在我的staging部署中的staging\u命名空间中找到正确的myservice service1在
kops
我的应用程序公开了几个服务。正如预期的那样,服务之间使用其名称进行通信,即下面的name
字段:
kind: Service
metadata:
name: myservice
namespace: staging_namespace
问题是:
假设我将在不同的命名空间中部署2版本的应用程序(例如测试
和暂存
),这会防止服务名称冲突吗
命名空间分离允许吗
在我的service1
部署中的staging
staging\u命名空间中找到正确的
myservice
在我的service1
部署中的testing
testing\u命名空间中找到正确的
myservice
kops version
Version 1.8.0 (git-5099bc5)
及
据我所知,命名空间是k8s集群中的一个虚拟集群,因此它提供了关注点的隔离和分离。如果在不同的名称空间中有相同的服务或POD,则不会发生冲突 所有服务都分配了一个唯一的DNS记录,因此没有冲突。比如说,
my-svc.my-namespace.svc.cluster.local.
在您的情况下,它将是这样的
my-svc.staging_namespace.svc.cluster.local.
my-svc.testing_namespace.svc.cluster.local.
我附上了进一步研究的链接。
编辑:1
名称空间的目的和动机
名称空间的功能是提供环境的逻辑分离,这为k8s资源提供了唯一性,即使是相同的pod或服务
Kubernetes支持由同一物理群集支持的多个虚拟群集。这些虚拟集群称为名称空间
据我所知,命名空间是k8s集群中的一个虚拟集群,因此它提供了关注点的隔离和分离。如果在不同的名称空间中有相同的服务或POD,则不会发生冲突 所有服务都分配了一个唯一的DNS记录,因此没有冲突。比如说,
my-svc.my-namespace.svc.cluster.local.
在您的情况下,它将是这样的
my-svc.staging_namespace.svc.cluster.local.
my-svc.testing_namespace.svc.cluster.local.
我附上了进一步研究的链接。
编辑:1
名称空间的目的和动机
名称空间的功能是提供环境的逻辑分离,这为k8s资源提供了唯一性,即使是相同的pod或服务
Kubernetes支持由同一物理群集支持的多个虚拟群集。这些虚拟集群称为名称空间
简单的答案是肯定的,你可以将同名资源放在不同的名称空间中,不会发生冲突。简单的答案是肯定的,你可以将同名资源放在不同的名称空间中,不会发生冲突。这绝不是一个“虚拟集群”,只是一种组织内部内容的方式,这可以,但不必用于不同的隔离方式,如ie。网络策略据我所知,名称空间的功能是提供环境的逻辑隔离,这为k8s资源提供了唯一性,即使是相同的pod或服务。网络策略在集群中有不同的目的和动机。>>Kubernetes支持由同一物理集群支持的多个虚拟集群。这些虚拟集群被称为namespace.HI@Radek,正如我从k8s官方网站了解到的,它是用相同的术语解释的。我猜你对两件事有误解。在我的回答中,我试图用合理的内容解释。@Radek,如果你不介意告诉我,为什么这个答案不全面,应该被否决?这可能有助于我评估自己,以便在将来写出更全面的答案。Thanksit决不是一个“虚拟集群”,只是一种组织内部事物的方式,它可以,但不必用于不同的隔离方式,如ie。据我所知,网络策略,名称空间的功能是提供环境的逻辑分离,这为k8s资源提供了唯一性,即使是相同的pod或服务。网络策略在集群中有不同的目的和动机。>>Kubernetes支持由同一物理集群支持的多个虚拟集群。这些虚拟集群被称为namespace.HI@Radek,正如我从k8s官方网站了解到的,它是用相同的术语解释的。我猜你对两件事有误解。在我的回答中,我试图用合理的内容解释。@Radek,如果你不介意告诉我,为什么这个答案不全面,应该被否决?这可能有助于我评估自己,以便在将来写出更全面的答案。谢谢