请教:不同命名空间或不同项目的应用,怎么互相访问?

Rancher V2.0.2 

请教一下rancher,不同命名空间或不同项目的应用,怎么互相访问?(相同命名空间下可直接通过服务名称访问)

当前集群中只有一个管理员用户

附件是集群中的服务、工作负载以及从pod命令行中去ping其他服务的结果:



已邀请:

添发

赞同来自: 王伟军

太感谢王伟军的指点了,根据指点,在default中的registry要访问basetools中的nginx,就只需要用nginx.basetools就能访问到。


我这个问题的出发点:

想按架构不同层或不同的团队分在不同namespace中,但部署起来的应用能互相访问。

比如mysql、rabbitmq等外部工具,部署在basetools中。而应用部署在其他namespace中,能访问到外部工具和所依赖的服务。


王伟军 - 分享技术,分享快乐

赞同来自: 添发

https://www.cnblogs.com/allcloud/p/7614123.html


引用一下:

kubernetes 对外提供的 DNS 服务是一致的。每个 service 都会有对应的 DNS 记录,kubernetes 保存 DNS 记录的格式如下:

<service_name>.<namespace>.svc.<domain>  

每个部分的字段意思:

  • service_name: 服务名称,就是定义 service 的时候取的名字

  • namespace:service 所在 namespace 的名字

  • domain:提供的域名后缀,比如默认的 cluster.local

在 pod 中可以通过 service_name.namespace.svc.domain 来访问任何的服务,也可以使用缩写 service_name.namespace,如果 pod 和 service 在同一个 namespace,甚至可以直接使用 service_name

NOTE:正常的 service 域名会被解析成 service vip,而 headless service 域名会被直接解析成背后的 pods ip。

虽然不会经常用到,但是 pod 也会有对应的 DNS 记录,格式是 pod-ip-address.<namespace>.pod.<domain>,其中 pod-ip-address 为 pod ip 地址的用 - 符号隔开的格式,比如 pod ip 地址是 1.2.3.4 ,那么对应的域名就是 1-2-3-4.default.pod.cluster.local


王伟军 - 分享技术,分享快乐

赞同来自: 添发


01-在命名空间namespace111中创建一个nginx工作负载-端口映射的运行模式为集群IP

02-再在命名空间namespace222中创建一个工作负载Ubuntu

03-系统会在服务发现中自动在2个命名空间内创建2条记录nginx和Ubuntu

04-不同namespace可以互相访问-注意,集群IP不可以ping,但可以访问

要回复问题请先登录注册