本文介绍: 通常情况下,Ingress部署在所有的Node节点上,可以配置提供服务外部访问的URL、负载均衡、终止SSL,并提供基于域名的虚拟主机,但它不会暴露任意端口或协议。需要注意的是,Nginx类型的Ingress实现可以通过扩展Nginx Ingress Controller来实现更多的功能,比如认证、限流、重定向等。需要注意的是,Ingress的实现方案可能会因所选的Ingress控制器而有所不同。需要注意的是,Istio类型的Ingress实现具有强大的流量管理和安全功能,但也需要更多的配置和维护工作。
引言
Ingress
是Kubernetes集群中的一种资源类型,用于实现用域名的方式访问Kubernetes内部应用。它为Kubernetes集群中的服务提供了入口,可以提供负载均衡、SSL终止和基于名称的虚拟主机。在生产环境中常用的Ingress有Treafik
、Nginx
、HAProxy
、Istio
等。基本概念是在Kubernetes v 1.1版中添加的Ingress用于从集群外部到集群内部Service的HTTP和HTTPS路由,流量从Internet到Ingress再到Services最后到Pod上。通常情况下,Ingress部署在所有的Node节点上,可以配置提供服务外部访问的URL、负载均衡、终止SSL,并提供基于域名的虚拟主机,但它不会暴露任意端口或协议。
配置示例
Ingress 需要指定 apiVersion、kind、 metadata和 spec 字段。 Ingress 对象的命名必须是合法的 DNS 子域名名称。 关于如何使用配置文件的一般性信息,请参见部署应用、 配置容器、 管理资源。 Ingress 经常使用注解(Annotations)来配置一些选项,具体取决于 Ingress 控制器, 例如 rewrite-target 注解。 不同的 Ingress 控制器支持不同的注解。 查看你所选的 Ingress 控制器的文档,以了解其所支持的注解。
Ingress 规约 提供了配置负载均衡器或者代理服务器所需要的所有信息。 最重要的是,其中包含对所有入站请求进行匹配的规则列表。 Ingress 资源仅支持用于转发 HTTP(S) 流量的规则。
如果 ingressClassName 被省略,那么你应该定义一个默认的 Ingress 类。
负载均衡的实现
负载均衡策略
实现模式
实现方案
Nginx类型Ingress实现
Treafik类型Ingress实现
HAProxy类型ingress实现
Istio类型ingress实现
APISIX类型ingress实现
更多
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。