Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
kubernetes:名称空间的服务名称解析_Kubernetes - Fatal编程技术网

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,如果你不介意告诉我,为什么这个答案不全面,应该被否决?这可能有助于我评估自己,以便在将来写出更全面的答案。谢谢