ingress简介

我们知道service的表现形式为IP:PORT,即工作在第四层传输层(TCP/IP层),那么对于不同的URL地址经常对应用不同的后端服务或者虚拟服务器,这些应用层的转发机制仅通过kubernetes的service机制是无法实现的,这种情况我们可以使用ingress策略定义和一个具体的ingress Controller,两者结合实现一个完整的Ingress 负载均衡,这个负载均衡是基于nginx七层反向代理来实现

在这里插入图片描述
下图即为Ingress Controller这种独特的控制器资源的工作流程图.
需要注意: Ingress Controller 和 Ingress是两个不同的资源

Ingress它是通过headless service的集群内FQDN获取到它后端所有的Pod资源的IP,因为headless Service没有ClusterIP,它的域名对应的IP为PodIP。

Ingress获取PodIP后,在立刻将其写入到ingress-nginx的配置文件中,
并触发nginx重读配置文件。实现动态更新upstream。

另外,外部LB可以直接跳过Service,直接访问到nginx,这需要将nginx这个Pod作为共享宿主机的网络名称空间才能实现,这时就需要借助于daemonSet控制器来控制着nginx这种七层反代Pod仅允许在指定节点上,并且每个节点上仅运行一个nginx Pod。

在这里插入图片描述在这里插入图片描述

具体实验

实验环境和之前的博客是一样的。

在这里插入图片描述
在这里插入图片描述
1.
在这里插入图片描述在这里插入图片描述2.我是把ingress-controller镜像下载在本地的harbor仓库中,让集群中的节点去harbor仓库中去拿。
在这里插入图片描述

在这里插入图片描述
拿到yaml文件
在这里插入图片描述编辑此文件,把镜像的位置换成本地仓库中镜像的位置
在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述查看日志,发现service缺少
在这里插入图片描述在这里插入图片描述
应用刚才wget的service文件
在这里插入图片描述在这里插入图片描述在这里插入图片描述
查看信息
在这里插入图片描述在这里插入图片描述在这里插入图片描述

直接指定后端的服务名称

在这里插入图片描述创建ingress服务
在这里插入图片描述在这里插入图片描述service.yaml文件
在这里插入图片描述在这里插入图片描述
3.在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

通过域名的形式来访问后端

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在真机中添加ser4的解析

在这里插入图片描述发现实现负载均衡
在这里插入图片描述在这里插入图片描述

通过不同的域名定义到不同的后端

1.在这里插入图片描述2.在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述访问www2.westos.org时访问到v1
在这里插入图片描述访问www1.westos.org时访问到v2
在这里插入图片描述在这里插入图片描述在这里插入图片描述

测试访问同一域名,不同的path时,调度到不同的后端

在这里插入图片描述
1.
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐