为什么需要在 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/s
    key: ${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.com
  upstreams:
  - name: products-v1
    service: products-v1-svc
    port: 80
  - name: products-v2
    service: products-v2-svc
    port: 80
  routes:
  - path: /products
    splits:
    - weight: 90
      action:
        pass: products-v1
    - weight: 10
      action:
        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 相关的技术干货、互动问答、系列课程、活动资源: 开源社区官网 | 微信公众号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/328616.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

支持AUTOSAR Classic以及Adaptive平台的DEXT诊断数据库

一 DEXT、DCM、DEM和FIM的概述 DEXT(Diagnostic Extract Template)是AUTOSAR定义的诊断提取模板,用于DCM(Diagnostics Communication Manager)、DEM(Diagnostics Event Manager)和FIM&#xff…

Camunda入门教程

Camunda7 流程引擎 1.什么是流程引擎 流程引擎是一种软件工具,可以用来自动执行和管理业务流程。它以可视化的流程图作为工作流程的基础,根据可视化流程图中定义的活动、任务和角色来执行和管理活动任务。 2.流程引擎功能 一.可视化:流程…

.Net Core项目在linux部署实战 1.sdk下载 2.环境变量配置/ect/profile 3.运行

1)下载.net core sdk https://download.visualstudio.microsoft.com/download/pr/01292c7c-a1ec-4957-90fc-3f6a2a1e5edc/025e84c4d9bd4aeb003d4f07b42e9159/dotnet-sdk-6.0.418-linux-x64.tar.gz 2)配置下环境变量 step1: // 解压到指定目录 mkdir -p $HOME/dotnet &…

Linux命令之pwd,cd,ls,cat,more,less,head,tail文件目录类命令的使用

一、实验题 1、在桌面打开终端,查看当前目录 2、改变目录位置至当前目录的父目录 3、改变目录位置至用户的家目录 4、利用绝对路径改变目录到/usr/local目录下 5、列出当前目录下的文件及目录 6、列出包括以“.”开始的隐藏文件在内的所有文件 7、列出当前目录下所…

网络原理--http

目录 一、 DNS(应用层协议) 1、域名概念 2、维护ip地址和域名之间的映射(域名解析系统) 3、DNS系统(服务器) 4、如何解决DNS服务器高并发问题 二、HTTP(应用层协议) 1、htt…

postman 简单测试(二)

接着上一节 https://blog.csdn.net/myy2012/article/details/135616719 1.Tests的简单使用(后置处理器) 具体的截图是每一步操作后得来的,记录方便自己以后查阅,也希望能帮助到有缘人。 1.1 把返回值存入到环境变量中&#xff…

Vue:将以往的JQ页面,重构成Vue组件页面(组件化编码大致流程)

一、实现静态组件 组件要按照功能点拆分,命名不要与HTML元素冲突。 1、根据UI提供的原型图,进行结构设计,结构设计的粒度以是否方便给组件起名字为依据。并梳理好对应组件的层级依赖关系。 2、设计好结构后,开始写对应的组件&am…

单片机常用的电子元器件基础

参考自B站该视频 1:电阻 贴片电阻的读取方式 四环电阻 2:电容 其他的电子元器件

竞赛保研 多目标跟踪算法 实时检测 - opencv 深度学习 机器视觉

文章目录 0 前言2 先上成果3 多目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习多目标跟踪 …

[足式机器人]Part2 Dr. CAN学习笔记- Kalman Filter卡尔曼滤波器Ch05-1+2

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记 - Kalman Filter卡尔曼滤波器 Ch05-12 1. Recursive Algirithm 递归算法2. Data Fusion 数据融合Covarince Matrix协方差矩阵State Space状态空间方程 Observation观测器 1. Recursive Algirithm…

【STM32】| 02——常用外设 | I2C

系列文章目录 【STM32】| 01——常用外设 | USART 【STM32】| 02——常用外设 | I2C 失败了也挺可爱,成功了就超帅。 文章目录 前言1. 简介2. I2C协议2.1 I2C物理连接2.2 I2C通信协议2.2.1 起始和停止信号2.2.2 数据有效性2.2.3 数据传输格式2.2.4 从机地址/数据方…

Node.js基础知识点(四)

本节介绍一下最简单的http服务 一.http 可以使用Node 非常轻松的构建一个web服务器,在 Node 中专门提供了一个核心模块:http http 这个模块的就可以帮你创建编写服务器。 1. 加载 http 核心模块 var http require(http) 2. 使用 http.createServe…

C语言——编译和链接

(图片由AI生成) 0.前言 C语言是最受欢迎的编程语言之一,以其接近硬件的能力和高效性而闻名。理解C语言的编译和链接过程对于深入了解其运行原理至关重要。本文将详细介绍C语言的翻译环境和运行环境,重点关注编译和链接的各个阶段…

C语言——小细节和小知识9

一、大小端字节序 1、介绍 在计算机系统中,大小端(Endianness)是指多字节数据的存储和读取顺序。它是数据在内存中如何排列的问题,特别是与字节顺序相关。C语言中的数据存储大小端字节序指的是在内存中存储的多字节数据类型&…

蓝桥杯练习题-穷举模拟

📑前言 本文主要是【穷举模拟】——蓝桥杯练习题-穷举模拟的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄…

人工智能 | ChatGPT 和文心一言哪个更好用?

github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ChatGPT 和文心一言哪个更好用? ChatGPT 和文心一言哪个更好用?方向一:ChatGPT主要优势局限性和挑战如何克服chatGPT的局限性和挑战…

Docker Consul详解与部署示例

目录 Consul构成 Docker Consul 概述 Raft算法 服务注册与发现 健康检查 Key/Value存储 多数据中心 部署模式 consul-template守护进程 registrator容器 consul服务部署(192.168.41.31) 环境准备 搭建Consul服务 查看集群信息 registrato…

P9847 [ICPC2021 Nanjing R] Crystalfly 题解 (SPJ)

[ICPC2021 Nanjing R] Crystalfly 传送门? 题面翻译 给定一个 n ( 1 ≤ n ≤ 1 0 5 ) n(1\le n\le10^5) n(1≤n≤105) 个节点的树,每个节点上有 a i a_i ai​ 只晶蝶。派蒙最初在 1 1 1 号节点,并获得 1 1 1 号节点的所有晶蝶&#xf…

信驰达科技参与《汽车玻璃集成UWB数字钥匙发展研究白皮书》编制工作

为进一步探索汽车数字钥匙技术路线及开发思路,中国智能网联汽车产业创新联盟(CAICV)、福耀玻璃工业集团股份有限公司联合发起了《汽车玻璃集成UWB数字钥匙发展研究白皮书》研究工作。 2023年12月20日,由中国智能网联汽车产业创新…

【链路层】点对点协议 PPP

目录 1、PPP协议的特点 2、PPP协议的组成和帧格式 3、PPP协议的工作状态 目前使用得最广泛的数据链路层协议是点对点协议PPP(Point-to-Point Protocol)。 1、PPP协议的特点 我们知道,互联网用户通常都要连接到某个 ISP 才能接入到互联网。PPP 协议就是用户计算机…