为什么需要在 OpenShift 上部署企业级 Ingress Controller

2024-01-17 11:44

本文主要是介绍为什么需要在 OpenShift 上部署企业级 Ingress Controller,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文作者:Max Mortillaro of GigaOm

原文链接:为什么需要在 OpenShift 上部署企业级 Ingress Controller

转载来源:NGINX 中文官网


NGINX 唯一中文官方社区 ,尽在 nginx.org.cn

Red Hat OpenShift 作为业界备受推崇的 Kubernetes 平台解决方案,凭借其全面的功能集、稳健的架构和企业级支持获得了诸多企业的青睐。毫无疑问,这些企业也在寻求企业级流量控制功能及自动化,以增强其 Kubernetes 平台并加快应用开发和部署速度。

Kubernetes 要求使用 Ingress 接口来处理进入集群的外部流量。在实践中,访问 Kubernetes 应用的外部客户端通过网关进行通信,该网关将四层至七层的流量暴露给集群内的 Kubernetes 服务。

要实现这一点,Ingress 资源中的流量路由规则需要由 Ingress controller 来实施。没有 Ingress controller,Ingress 将一无用处。在下图中,Ingress controller 将所有外部流量发送到单个 Kubernetes 服务。

Ingress controller 将所有流量发送到单个 Kubernetes 服务的示例
(改编自 
Kubernetes 文档

NGINX Ingress Controller

NGINX Ingress Controller 是一个 Ingress controller 实现,用于控制 Kubernetes 应用的出入向流量,并通过自动化软件配置增强 NGINX 负载均衡器的功能。它提供了对 Kubernetes 生产环境部署至关重要的强大的流量管理功能,超越了 OpenShift 的默认 Ingress controller 提供的基本功能。

NGINX Ingress Controller 在两个版本中提供,一个是 NGINX 开源版,另一个是 NGINX Plus。NGINX 开源版 Ingress Controller 是免费的,而 NGINX Plus Ingress Controller 是商业支持的实现,提供先进的企业级功能。

一般来说,Ingress controller 实现只支持 HTTP 和 HTTPS,而 NGINX 实现还支持更广泛的协议,包括 TCP、UDP、gRPC 和 WebSocket,能够将 Ingress 支持扩展到许多新的应用类型。此外,它还支持 TLS Passthrough,这是一个重要的增强功能,使其能够路由 TLS 加密的连接,而无需进行解密或访问 TLS 证书和密钥。

除了这些功能之外,NGINX Ingress Controller 还支持细粒度定制,可以限定到特定的应用或集群以及策略的使用。策略只需定义一次,然后根据需要由不同的团队应用到不同的应用领域。策略可用于限制请求速率、验证 mTLS 身份验证以及基于 IP 地址或子网放行或拒绝流量。NGINX Ingress Controller 还可支持 JWT 验证和 WAF 策略。下面的 示例策略 将来自每个客户端 IP 地址的请求限制为每秒 1 个请求。

apiVersion: k8s.nginx.org/v1
kind: Policy
metadata:name: rate-limit-policy
spec:RateLimit:rate: 1r/skey: ${binary_remote_addr}zoneSize: 10M

NGINX Ingress Controller 的用例

NGINX 至少已确定了三个使用 NGINX Ingress Controller 的原因:

  • 提供生产级功能
  • 保护容器化应用
  • 提供总流量管理

下图详尽展示了潜在用例,其中一些用例(流量路由和 WAF 策略)已在上一节中讨论过。

跨运营团队的 NGINX Ingress Controller 用例

一个有趣的示例用例是实施蓝绿部署,您可以将生产流量从当前的应用版本(蓝色)切换到新版本(绿色)并验证新版本是否正常运行。在下面的配置示例中,您可先将 90% 的流量引导至蓝色应用(当前版本),然后将 10% 流量引导至绿色应用(新版本)。

您可以监控流量,检测绿色用户群是否遇到了任何问题。如果遇到了问题,您可以回滚配置,将所有绿色用户重新路由回蓝色版本。反之,如果新应用运行良好,您可以调整流量分割比例,将更多流量引导至绿色版本,验证绿色应用在负载增加的情况下的表现,并最终将所有流量路由到新的绿色应用,然后停止使用旧的蓝色应用。

apiVersion: k8s.nginx.org/v1
kind: VirtualServer
metadata:name: app
spec:host: app.example.comupstreams:- name: products-v1service: products-v1-svcport: 80- name: products-v2service: products-v2-svcport: 80routes:- path: /productssplits:- weight: 90action:pass: products-v1- weight: 10action:pass: products-v2

相关示例还有很多,我们无法在此一一列举,您可前往 NGINX 的专用 GitHub 仓库查看更多示例。

结语

Ingress controller 不仅仅是负载均衡。对于简单的早期阶段用例而言,默认的 Ingress controller 可能就足以满足需求,但对于寻求充分利用云原生开发模型优势的企业和开发团队来说,生产级能力必不可少。

此外,高级 Ingress controller 不仅必须提供复杂的流量管理,而且还必须提供企业级安全性。这通过实施双向 TLS (mTLS) 身份验证、加密流量直通和 WAF 保护来实现。

最后,NetOps 和 NetSecOps 团队也会受到 Ingress controller 的影响。他们努力追求网络配置和基于策略的流量控制的自动化,不能让新兴的基于 OpenShift 的云原生工作负载成为需要手动配置活动的薄弱环节。他们需要与现有安全解决方案无缝集成的工具,以确保跨设备和平台的配置一致。

NGINX Ingress Controller 能够满足所有这些要求,它为在 OpenShift 上运行 Kubernetes 环境的企业提供了灵捷、安全、可扩展和完全支持的解决方案,可帮助他们实现更高的业务成效,同时创造巨大、即时的价值。

了解有关 NGINX 和 OpenShift 的更多信息:

  • 网络研讨会和演示:借助 NGINX 充分利用 Kubernetes 的强大功能

  • 网络研讨会:借助 Red Hat 和 NGINX 保护、增强、自动化和扩展现代工作负载

  • 博客:NGINX 与 Red Hat 强强联合的价值


NGINX 唯一中文官方社区 ,尽在 nginx.org.cn

更多 NGINX 相关的技术干货、互动问答、系列课程、活动资源: 开源社区官网 | 微信公众号

这篇关于为什么需要在 OpenShift 上部署企业级 Ingress Controller的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/615925

相关文章

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

ubuntu如何部署Dify以及安装Docker? Dify安装部署指南

《ubuntu如何部署Dify以及安装Docker?Dify安装部署指南》Dify是一个开源的大模型应用开发平台,允许用户快速构建和部署基于大语言模型的应用,ubuntu如何部署Dify呢?详细请... Dify是个不错的开源LLM应用开发平台,提供从 Agent 构建到 AI workflow 编排、RA

ubuntu16.04如何部署dify? 在Linux上安装部署Dify的技巧

《ubuntu16.04如何部署dify?在Linux上安装部署Dify的技巧》随着云计算和容器技术的快速发展,Docker已经成为现代软件开发和部署的重要工具之一,Dify作为一款优秀的云原生应用... Dify 是一个基于 docker 的工作流管理工具,旨在简化机器学习和数据科学领域的多步骤工作流。它

Nginx部署React项目时重定向循环问题的解决方案

《Nginx部署React项目时重定向循环问题的解决方案》Nginx在处理React项目请求时出现重定向循环,通常是由于`try_files`配置错误或`root`路径配置不当导致的,本文给大家详细介... 目录问题原因1. try_files 配置错误2. root 路径错误解决方法1. 检查 try_f

Spring Boot Controller处理HTTP请求体的方法

《SpringBootController处理HTTP请求体的方法》SpringBoot提供了强大的机制来处理不同Content-Type​的HTTP请求体,这主要依赖于HttpMessageCo... 目录一、核心机制:HttpMessageConverter​二、按Content-Type​处理详解1.

使用easy connect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题

《使用easyconnect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题》:本文主要介绍使用easyconnect之后,maven无法... 目录使用easGWowCy connect之后,maven无法使用,原来需要配置-DJava.net.pr

Java controller接口出入参时间序列化转换操作方法(两种)

《Javacontroller接口出入参时间序列化转换操作方法(两种)》:本文主要介绍Javacontroller接口出入参时间序列化转换操作方法,本文给大家列举两种简单方法,感兴趣的朋友一起看... 目录方式一、使用注解方式二、统一配置场景:在controller编写的接口,在前后端交互过程中一般都会涉及

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的