一、Ingress-controller基础知识
1、Ingress-controller介绍
Kubernetes Ingress Controller是Kubernetes Ingress资源的实现,它旨在为Kubernetes定义的服务提供外部访问。在Ingress资源的声明下,Ingress-Controller可以使外部流量进入Kubernetes集群,并将其路由到不同的Kubernetes服务上,从而允许服务之间的流量管理。2、Ingress-controller的基本组成
Ingress-controller主要由以下几个部分组成:• Ingress资源:定义了如何将入站请求映射到Kubernetes Service的规则
• Ingress-controller:一种代理,用于路由入站请求
• Backend Service:最终将处理所有传入流量的一组Pods或Service
3、Ingress-controller的实现方式
Ingress-Controller的实现方式有很多,目前比较流行的是Nginx、Traefik等技术。二、Ingress-controller与Istio的关联
1、Istio介绍
Istio是一种开源的分布式服务网格平台,支持微服务架构中的流量管理、策略强制执行、故障恢复和观察度量等方面的需求。Istio将应用程序容器部署为Istio代理,可以在本地数据中心和云环境中构建弹性、安全、可观察的服务网络。2、Ingress-controller与Istio的关联
当使用Istio作为Service Mesh时,Ingress-controller将Istio路由规则下发到服务网格中相应的Envoy Sidecar中,从而将外部内容路由到不同的Kubernetes服务中。3、Ingress-controller使用Istio的优势
使用Istio作为Service Mesh可以拥有以下优势: • 支持复杂的路由规则 • 提供流量控制和路由策略 • 实现熔断功能,保持应用程序的可用性 • 提供统一的跟踪、监控和度量三、Ingress-controller和IngressClass的关联
1、IngressClass介绍
Kubernetes 1.18开始引入了IngressClass API,这个API定义了Ingress Controller的类型、配置方式、合法参数等信息。使用IngressClass可以为Ingress Controller提供更丰富的机制和控制方式,使其可以更好地支持多租户的场景。2、Ingress-controller和IngressClass的关联
Ingress-controller与IngressClass可以通过以下方式关联: • 一个Ingress资源与一个IngressClass关联。这样,Ingress-controller只会处理符合IngressClass中定义的条件的Ingress资源。 • Ingress-controller可以使用