当前位置: 首页 > news >正文

ingress服务

user.default.svc.cluster.local是集群内部service的dns地址,集群外部想访问集群里面的service,可以通过LoadBalaner和NodePort。

LoadBalaner可以获得一个公网ip;NodePort在宿主机上开一个端口,访问这个端口会把报文实际的转发到集群内的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反向代理的方式进行请求的转发。

http://www.lryc.cn/news/17483.html

相关文章:

  • java 抽象类 详解
  • MySQL的安装(详解)
  • 界面控件DevExpress WinForm——轻松构建类Visual Studio UI(二)
  • BabylonJS之放烟花
  • vue3 布局样式的原理
  • Qt程序使用路径方式和注意事项
  • 和日期相关的代码和bug——一道力扣题中的小发现
  • 如何在2023年学习编程并获得开发者工作
  • Python实战之小说下载神器(三)排行榜所有小说:最全热门小说合集,总有一款适合你,好多好多好多超赞的小说...(源码分享学习)
  • 前端监控之用户行为监控实践1(数据收集)
  • 【网络原理7】认识HTTP
  • SPI实验
  • 去基线处理
  • 模拟信号4-20mA /0-5V/0-75mV/0-100mV转RS-485/232,数据采集A/D转换模块 YL21
  • [USB]键盘数据格式以及按键键值
  • web客户端-websocket
  • mysql间隙锁
  • 华为OD机试 - 计算面积(Java) | 机试题+算法思路+考点+代码解析 【2023】
  • Python 之 Pandas 时间戳、通过时间间隔实现 datetime 加减、时间转化、时期频率转换和 shift() 时间频率进行移位)
  • 一篇文章搞定linux网络模型
  • 惠普庆祝在中国40年,强化中国发展战略
  • C++小作业
  • Python基础 — lambda匿名函数
  • MongoDB安装和使用过程常见问题
  • AWS攻略——使用中转网关(Transit Gateway)连接同区域(Region)VPC
  • Rouge | 自动文摘及机器翻译评价指标
  • 【Python入门第十五天】Python字典
  • java学习思路
  • MySQL操作数据库-------创建数据库
  • 【十】深入理解redolog,undolog和binlog的底层原理