联想公司网站建设现状,无限成都成都市广播电视台官方网站,惠州建设网站,龙岩网络三剑客user.default.svc.cluster.local是集群内部service的dns地址#xff0c;集群外部想访问集群里面的service#xff0c;可以通过LoadBalaner和NodePort。LoadBalaner可以获得一个公网ip#xff1b;NodePort在宿主机上开一个端口#xff0c;访问这个端口会把报文实际的转发到集…user.default.svc.cluster.local是集群内部service的dns地址集群外部想访问集群里面的service可以通过LoadBalaner和NodePort。LoadBalaner可以获得一个公网ipNodePort在宿主机上开一个端口访问这个端口会把报文实际的转发到集群内的service里。但不是所有的k8s集群都可以获得公网ip这个要看供应商是否支持比如microk8s就拿不到公网ip如果使用的阿里云或AWS 公网ip资源是需要付费的。如果通过LoadBalaner的方式对外提供user和order服务需要2个LoadBalaner对应2个外网IP在DNS做域名解析的时候一个域名只能对应一个ip但这里有2个公网ip所以这种情况怎么解决呢ingress本身也是k8s的一个service根据subpath路由到user或order service启动order和user pod对应着2个service通过selector找到对应的pod在u1 pod中访问user service,user是service名称default是默认的命名空间。创建一个ingress-nginx这个service没有外网ip因为是在本机启动的如果在云服务商的k8s集群上会有一个公网ip。好在有一个port可以访问这个ingress让ingress service和user service和order service建立一个关联。可以按照path进行服务的转发host是www.l6p.io这个是外部http请求在header中的host内容其实就是网站的域名这个是nginx ingress的一个注释接受到外部的请求比如是api/user/v1但是转发给user service或order service按照根目录进行转发去掉请求中的子目录比如在pod中curl http://user.default这里其实访问的是根目录路径中并没有api/user/v1这个注解就是要求nginx在进行转发的时候把路径后面的去掉。在使用之前先把假定的域名指向ingress service没有外网ip但有一个宿主机上的port在hosts文件中配置查看LoadBalancer端口是32680通过浏览器进行访问其实ingress nginx pod中启动了一个nginx服务通过yaml文件创建ingress资源的时候其实就是在ingress的pod里面的nginx里面配置了路由关系动态的加入了 order和user这样的配置再通过nginx反向代理的方式进行请求的转发。