Kubernetes-Ingress、Ingress Controller、Ingress Class

概念

1.Ingress 是对K8S集群中服务的外部访问进行管理的 API 对象。Ingress 公开从集群外部到集群内服务的 HTTP 和 HTTPS 路由。 流量路由由 Ingress 资源上定义的规则控制。
2.Ingress Controller 通常负责通过负载均衡器来实现 Ingress。
3.必须拥有一个 Ingress Controller 才能满足 Ingress 的要求。 仅创建 Ingress 资源本身没有任何效果。

Ingress

Ingress和Ingress Controller是两回事

  • ingress定义路由规则;
  • ingress用于监听pod的变化,注入ingress controller。

当一个负载均衡器Pod要代理多个服务的时候:

后端服务Pod要通过Service分类(Service此时只起到分类的作用),ingress基于service的分类识别出有几个Pod和Pod IP地址,并且把Pod的IP地址返回注入到7层负载均衡器的配置文件内,负载均衡器重载配置文件。(Treafik、Envory会自动重载配置文件)

注意:

  1. Ingress 资源应该跟转发到的后端资源放在同一个namespace里;
  2. 1.19以下版本和1.19及以上版本的ingress配置有所不同。

Ingress Controller

为了让 Ingress 资源工作,集群必须有一个正在运行的 Ingress 控制器。
与作为 kube-controller-manager 可执行文件的一部分运行的其他类型的控制器不同, Ingress Controller不是随集群自动启动的。Ingress Controller通常是一组拥有7层代理能力服务的Pod。

Ingress Class

在 Kubernetes 1.18 版本引入 IngressClass 资源和 ingressClassName 字段。此前Ingress配置中是通过 Ingress 中的一个 kubernetes.io/ingress.class 注解来指定Ingress Class的。

Ingress、Ingress Class、Ingress Controller三者的关系

我们通过yaml文件的内容,观察三者的关联关系。

  • Ingress Controller,会指定要关联的ingress class,和在k8s中注册自己controller的信息;
  • Ingress Class,会指定要关联的controller的信息;
  • Ingress,会指定要关联的Ingress Class的信息;
  • 最终,Ingress Class作为“桥梁”,将Ingress和Ingress Controller关联起来。

参考文档

Ingress | Kubernetes

Ingress 控制器 | Kubernetes

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值