Ingress-Nginx 是 Kubernetes 中一个基于 Nginx 的 Ingress 控制器,用于管理对集群内服务的 HTTP/HTTPS 访问。它是 Kubernetes Ingress 资源的实现之一,通过配置 Nginx 反向代理和负载均衡器,提供路由规则、SSL/TLS 终止、路径重写等高级功能。


核心功能

  1. 路由规则

    • 根据域名、路径将请求路由到不同的后端服务(Service)。

    • 支持基于路径(path)或主机名(host)的路由。

  2. 负载均衡

    • 自动将流量分发到多个 Pod,支持轮询、加权轮询等算法。

  3. SSL/TLS 终止

    • 支持 HTTPS 加密,可通过 Kubernetes Secret 配置证书。

    • 支持自动证书续签(与 cert-manager 集成)。

  4. 高级特性

    • 路径重写:修改请求路径(如 /api/ 重写到后端服务的 /)。

    • 流量控制:限速、黑白名单、连接数限制。

    • 自定义注解:通过注解(Annotations)配置 Nginx 行为(如缓存、CORS)。

  5. 监控与日志

    • 集成 Prometheus 指标导出。

    • 支持访问日志和错误日志配置。


架构组成

  • Ingress 资源:Kubernetes 定义的规则(YAML 文件),描述路由和后端服务的映射。

  • Ingress-Nginx Controller

    • 监听 Ingress 资源变化,动态生成 Nginx 配置。

    • 以 Pod 形式运行在集群内或作为外部负载均衡器(如云厂商的 LoadBalancer)。


配置

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: inner.test.comnamespace: monitoringresourceVersion: '30006506'uid: f07bc210-2aa9-43f2-b905-b17af9d2c054
spec:defaultBackend:service:name: nginx-testport:number: 80ingressClassName: nginxrules:- host: inner.test.comhttp:paths:- backend:service:name: grafanaport:number: 3000path: /grafanapathType: Prefix- backend:service:name: prometheus-serverport:number: 9090path: /prometheuspathType: Prefix- backend:service:name: alertmanagerport:number: 9093path: /alertmanagerpathType: Prefix- backend:service:name: prometheus-prometheus-pushgatewayport:number: 9091path: /pushgatewaypathType: Prefixtls:- hosts:- inner.test.comsecretName: test.com

grafana需要修改的配置文件

grafana.ini

[analytics]
check_for_updates = true[grafana_net]
url = https://inner.test.com[log]
mode = console[paths]
data = /var/lib/grafana/
logs = /var/log/grafana
plugins = /var/lib/grafana/plugins
provisioning = /etc/grafana/provisioning[server]
domain = "inner.baiwutong.com"  # 双引号包裹更规范
serve_from_sub_path = true      # 新增:启用子路径模式
root_url = https://inner.test.com/grafana

prometheus需要修改的配置文件

--storage.tsdb.retention.time=15d --config.file=/etc/config/prometheus.yml --storage.tsdb.path=/data --web.console.libraries=/etc/prometheus/console_libraries --web.console.templates=/etc/prometheus/consoles --web.enable-lifecycle --web.external-url=/prometheus --web.route-prefix=/prometheus

alertmanager需要修改的配置文件

#baseURL: ""
baseURL: "https://inner.test.com/alertmanager"  # 完整外部访问 URL

pushgateway需要修改的配置文件

/bin/pushgateway --web.external-url=/pushgateway

优势

  • 高性能:基于 Nginx,处理高并发流量。

  • 灵活性:通过注解支持大量自定义配置。

  • 社区支持:Kubernetes 官方维护,文档和生态完善。


适用场景

  • 需要对外暴露多个服务的 Kubernetes 集群。

  • 统一管理 HTTPS 证书和路由规则。

  • 实现蓝绿部署、A/B 测试等流量分发策略。


注意事项

  • 性能调优:需根据流量调整 Nginx 参数(如 worker_processes)。

  • 安全:限制敏感注解的使用,避免配置错误导致的安全风险。

  • 版本兼容性:确保 Ingress-Nginx 版本与 Kubernetes 版本匹配。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/86516.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/86516.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/86516.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java+LangChain实战入门:深度剖析开发大语言模型应用!

在人工智能飞速发展的今天,大语言模型(如GPT系列)正改变着我们构建应用的方式。但如何将这些先进模型无缝集成到企业级Java应用中?这正是LangChain框架的强项——它简化了语言模型的调用、链式处理和上下文管理,让开发…

论文笔记:Large language model augmented narrative driven recommendations

RecSys 2023 代码:iesl/narrative-driven-rec-mint: Mint: A data augmentation method for narrative driven recommendation. 1 intro 尽管基于历史交互的数据能够有效地提供推荐,但用户在请求推荐时,往往只是对目标物品有一个模糊的概念…

兴达易控Modbus TCP转Profibus DP网关与安科瑞多功能电表的快速通讯

兴达易控Modbus TCP转Profibus DP网关与安科瑞多功能电表的快速通讯 在工业自动化领域,不同设备之间的通信连接至关重要。兴达易控Modbus TCP转Profibus DP网关接APM810/MCE安科瑞多功能电表与300plc通讯,这一过程涉及到多个关键技术和环节,…

epoll实现理解

根据前文高性能网络设计推演中,epoll作为一个“大杀器”为网络开发提供强大的支持。Linux系统上IO多路复用方案有select、poll、epoll。其中epoll的性能表现最优,且支持的并发量最大。本文大概介绍epoll的底层实现。 一、示例引入 了解epoll开发&#…

协议转换赋能光伏制造:DeviceNET转PROFINET网关的通信质检实践

协议转换赋能光伏制造:DeviceNET转PROFINET网关的通信质检实践 某光伏电池片生产线创新性地将网关作为计算节点,通过搭载DeviceNET-PROFINET智能网关-稳联技术WL-PN-DVNM,在协议转换层直接运行AI质检模型。DeviceNET端采集的高清图像数据经网…

学习永无止境

已掌握以下每个,有属于自己的一套架构方式: vue.element-ui:后台管理 vue.uni-app:H5,小程序,Android,IOS php:​​RESTful,服务,业务逻辑(如电商…

永磁无刷电机旋转原理

目录 1. 磁场的基本知识 2. 角速度,线速度,工程转速 3.力和力矩 4. 惯量,转动惯量 5. 电机的四种状态 5.1 空载 5.2 带载 5.3 满载 5.4 堵转 6. 功和功率 1. 磁场的基本知识 无头无尾,转了一圈,就叫有旋…

Ubuntu 物理桌面远程访问教程(基于 RealVNC / mstsc)

Ubuntu 物理桌面远程访问教程(基于 RealVNC / mstsc) 适用对象:任意安装了 GNOME GDM 的 Ubuntu 系统 目标:远程连接系统默认物理桌面 :0,无虚拟桌面、无 Xfce,真实 GNOME 桌面环境 1. 准备条件 Ubuntu 系…

Vue3 工程化实战

Vue3 工程化实战 引言:构建工具的演进与选择 在前端工程化领域,构建工具的选择直接影响开发效率与项目性能。随着Vue3的普及,构建工具生态也发生了显著变化:传统vue-cli逐渐进入维护模式,而新一代构建工具Vite凭借其…

调用phantomjs(前端)插件生成ECharts图片

package com.demo.common.utils; //json格式化工具,可以其他工具类 import cn.hutool.json.JSONUtil; import lombok.extern. public class FileUtil { /** * 调用phantomjs(前端)插件生成ECharts图片 * @param path 根路径 * @param option ECharts配置J…

React Hooks详解

React Hooks 常考内容 React Hooks 是 React 16.8 引入的重要特性,用于在函数组件中使用状态和其他 React 特性。以下是面试中常考的核心内容: 基础 Hook useState: 用于管理组件内部状态,返回状态变量和更新状态的函数。useEffect: 处理副…

c++17标准std::filesystem常用函数

std::filesystem 是 C17 引入的标准库&#xff0c;用于处理文件系统操作&#xff0c;提供了跨平台的文件和目录操作能力。以下是一些常用的函数和类&#xff1a; 一、路径操作&#xff08;std::filesystem::path&#xff09; cpp 运行 #include <filesystem> namespa…

非结构化文档的自动化敏感标识方法技术解析

在数字化时代&#xff0c;企业与组织面临的数据形态正发生深刻变革。据统计&#xff0c;非结构化数据占企业数据总量的 80% 以上&#xff0c;涵盖文本、邮件、PDF、日志、社交媒体内容等多种形式。这些数据中往往蕴含着大量敏感信息&#xff0c;如个人身份信息、商业机密、医疗…

c语言中的字符类型

字符类型 char char是一种整数&#xff0c;也是一种特殊的类型&#xff1a;字符。 #include <stdio.h> int main(){char c,d;c 1; //把整数1赋值给变量cd 1; //把字符‘1’赋值给变量dif (c d){printf("相等");}else{printf("不相等\n");…

Cribl stream 管道对时间的改变时区

先说一下时区的重要性&#xff0c;要是cribl 时区是UTC&#xff0c;但是过来数据是GTM8 就是中国时区&#xff0c;那么数据过来&#xff0c;就可能在后端的Splunk 没有显示&#xff0c;那么解决这个问题&#xff0c;cribl 管道引入了auto timestamp 的功能&#xff1a; 注意到&…

深度学习:PyTorch卷积神经网络(1)

本文目录&#xff1a; 一、CNN概述二、CNN日常应用三、CNN的卷积层&#xff08;一 &#xff09;基本介绍&#xff08;二&#xff09;卷积层计算1.对输入数据的要求2.卷积核核心参数3.计算过程4.特征图尺寸计算5.1、多通道卷积计算5.2、多卷积核计算6.PyTorch卷积层API 前言&…

linux网络编程socket套接字

套接字概念 Socket本身有“插座”的意思&#xff0c;在Linux环境下&#xff0c;用于表示进程间网络通信的特殊文件类型。本质为内核借助缓冲区形成的伪文件。 既然是文件&#xff0c;那么理所当然的&#xff0c;我们可以使用文件描述符引用套接字。与管道类似的&#xff0c;L…

Python 数据分析与可视化 Day 5 - 数据可视化入门(Matplotlib Seaborn)

&#x1f3af; 今日目标 掌握 Matplotlib 的基本绘图方法&#xff08;折线图、柱状图、饼图&#xff09;掌握 Seaborn 的高级绘图方法&#xff08;分类图、分布图、箱线图&#xff09;熟悉图像美化&#xff08;标题、标签、颜色、风格&#xff09;完成一组学生成绩数据的可视化…

CephFS “Client Failing to Respond to Cache Pressure“ 告警分析

告警含义 当出现 Client failing to respond to cache pressure 警告时,表明: 元数据服务器 (MDS) 要求客户端释放缓存的元数据(如 inode Capabilities)客户端未能及时响应 释放请求核心触发机制 MDS 通过以下周期性流程管理缓存 阶段操作触发条件Cache Trim 周期每隔 mds…

生成式人工智能实战 | 生成对抗网络(Generative Adversarial Network, GAN)

生成式人工智能实战 | 生成对抗网络 0. 前言1. 生成对抗网络2. 模型构建2.1 生成器2.2 判别器 3. 模型训练3.1 数据加载3.2 训练流程 0. 前言 生成对抗网络 (Generative Adversarial Networks, GAN) 是一种由两个相互竞争的神经网络组成的深度学习模型&#xff0c;它由一个生成…