我已经在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
答案 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