-1

我一直在 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
4

1 回答 1

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-实践组织与命名空间

于 2020-07-16T08:08:10.837 回答