在不同的Kubernetes命名空间中进行部署如何影响Pod到Pod的通信?

时间:2020-07-16 08:01:46

标签: kubernetes namespaces containers gke-networking

我已经在Kubernetes的默认名称空间中进行了部署,并且运行良好。 但是,我现在开始在不同的命名空间中进行部署,即:开发与生产。所以我的问题是:

在不同的kubernetes命名空间中部署是否会影响最初根据配置的防火墙进行通信的Pod之间的通信?

当前,这些是我的命名空间:

trevor@deployment-node:~$ kubectl get namespace
NAME              STATUS   AGE
default           Active   43d
development       Active   13s
kube-node-lease   Active   43d
kube-public       Active   43d
kube-system       Active   43d
test              Active   13d

1 个答案:

答案 0 :(得分:1)

您可以将Pod放在Services之后,它会创建一个相应的DNS条目。此项的格式为<service-name>.<namespace-name>.svc.cluster.local,这意味着如果容器仅使用<service-name>,它将解析为名称空间本地的服务。

如果要跨命名空间访问,则需要使用完全限定的域名(FQDN)。

<service-name>.<service-namespace>.svc.cluster.local

通常,您只需要服务的名称,DNS就会自动解析为完整地址。但是,如果您需要访问另一个命名空间中的服务,则只需使用服务名称加上命名空间名称即可。

例如,如果要连接到database名称空间中的test服务,则可以使用以下地址:

database.test

参考: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/#namespaces-and-dns https://cloud.google.com/blog/products/gcp/kubernetes-best-practices-organizing-with-namespaces