当前位置:硬件测评 > 五分钟搞懂Ingress/IngressController/IngressClass的区别

五分钟搞懂Ingress/IngressController/IngressClass的区别

  • 发布:2023-09-30 17:11

用一句话概括:Ingress由三部分组成:Ingress规则、IngressController、IngressClass。入口资源只是一系列的路由和转发配置。路由规则生效必须使用IngressController,IngressClass是IngressController的具体实现。使用原则:先部署IngressController→再部署Ingress资源。

? IP:nodePort可以访问集群内部。服务 这种形式的公开服务工作在 TCP/IP 层。或者将 Pod 的端口映射到 HostPort。

但是这种方法有很多缺点,比如暴露过多的Node端口、无法转发域名等。

于是引入了Ingress的概念。 Ingress是一个七层路由转发器,类似于Nginx。使用Ingress进行路由转发时,ingressController会根据ingress规则将客户端请求直接转发到Service对应的Pod。这样会跳过kube-proxy设置的路由转发规则,提高网络转发效率。

1.2。 Ingress 的组成

Ingress 资源是虚拟资源和规则定义,需要与 ingressController 配合才能生效。因此,为了使 Ingress 资源正常工作,集群必须有一个正在运行的 ingressController。

Ingress 由三部分组成:Ingress 规则、IngressController 和 IngressClass。 Ingress规则只是一系列配置,必须使用IngressController才能使其生效,而IngressClass是IngressController的具体实现。关系如下图:

api版本:v1 种类: 豆荚 元数据: 名称:网络应用程序 命名空间:演示 标签: 应用程序:网络应用程序 规格: 容器: - 名称:网络应用程序 图片:nginx imagePullPolicy:IfNotPresent 端口: - 集装箱端口:80 --- api版本:v1 种类: 服务 元数据: 名称:网络服务 命名空间:演示 标签: 应用程序:网络服务 规格: 选择器: 应用程序:网络应用程序 # 集群IP |负载均衡器| NodePort,使用Ingress 缺乏必要设置成NortPort 类型:集群IP 集群IP:无 端口: - 名称:Web 服务端口 协议:TCP 端口:80 目标端口:80 --- #创建Ingress策略 api版本:www.sychzs.cn/v1 种类: 入口 元数据: 注释: www.sychzs.cn/rewrite-target:/ 名称:网络入口 命名空间:演示 规格: # 指定ingressClass ingressClassName: nginx 规则:- 主机:www.sychzs.cn http: 路径: - 小路: / 路径类型:前缀 后端: 服务: 名称:网络服务 港口: 数量:80

2.3。部署测试

Yaml编排完成后,使用kubectl apply命令进行部署。部署完成后,在本地/etc/hosts中配置域名与某个K8S-Node节点的映射关系(当然,生产环境的访问链路比这个长,后面的时候会介绍)有机会的话,这篇文章为了快速测试,本地直接配置了DNS),映射关系类似于这一点:

10.20.1.23 www.sychzs.cn

然后浏览器访问http://www.sychzs.cn/,界面如下,说明ingress使用成功。

kubectl 获取 Pod - n 入口-nginx kubectl exec ingress-nginx-controller-nginx-d864d97df-22ljk -it -n ingress-nginx /bin/bash

相关文章

最新资讯

热门推荐