【k8s】在ingress-controlller中Admission Webhook 的作用

ops/2025/1/2 1:36:32/

介绍1

在 NGINX Ingress Controller 中,Admission Webhook 是一种用于增强 Kubernetes API 请求的机制,它允许你在资源(如 Ingress)被创建或更新之前对这些请求进行验证或修改。具体来说,Admission Webhook 在 NGINX Ingress Controller 中扮演了两个主要角色:

  1. Validating Admission Webhook

    • 作用:验证传入的 API 请求是否符合预定义的规则和条件。
    • 工作原理:当用户尝试创建或更新一个 Ingress 资源时,API Server 会将请求发送给 Validating Admission Webhook 进行验证。如果请求不符合预期(例如配置错误或违反了某些策略),Webhook 可以拒绝该请求并返回错误信息给用户。
    • 目的:确保只有正确配置且合法的 Ingress 资源才能被创建或更新,从而防止不正确的配置进入系统。
  2. Mutating Admission Webhook

    • 作用:在资源创建或更新前自动修改 API 请求的内容。
    • 工作原理:与 Validating Admission Webhook 类似,但在验证之后,Mutating Admission Webhook 可以修改传入的请求,添加默认值、修正配置项等,然后再将修改后的请求提交给 API Server。
    • 目的:简化用户的配置过程,自动应用最佳实践或集群特定的设置,确保所有资源都遵循一致的标准。
在 NGINX Ingress Controller 中的具体实现

对于 NGINX Ingress Controller 来说,Admission Webhook 主要用于以下场景:

  • Ingress 资源验证:确保所有的 Ingress 配置都是有效的,并且不会导致 NGINX 配置文件生成失败或其他问题。

  • 自动注入注解:为 Ingress 资源添加必要的注解或默认值,比如 SSL 证书管理、负载均衡策略等。

  • TLS 终止配置:处理 TLS 相关的配置,如自动生成和管理 SSL 证书,确保 HTTPS 流量能够正确终止于 Ingress Controller。

  • CRD 支持:一些高级功能可能依赖于自定义资源定义(Custom Resource Definitions, CRDs),此时 Mutating 和 Validating Admission Webhooks 可以帮助管理这些自定义资源。

Admission Webhook 的组成部分
  1. Webhook 服务:一个运行中的 Pod 或 Deployment,负责处理来自 API Server 的 HTTP(S) 请求。这个服务通常由 NGINX Ingress Controller 的控制器组件提供。

  2. Service 资源:为 Webhook 服务提供稳定的网络端点,API Server 使用此 Service 的 DNS 名称和端口来调用 Webhook。

  3. Webhook Configuration 资源ValidatingWebhookConfigurationMutatingWebhookConfiguration 定义了何时以及如何调用 Webhook。它们包含 Webhook 的 URL 或 Service 引用、规则、选择器以及其他配置信息。

  4. TLS 证书:用于加密 API Server 和 Webhook 服务之间的通信,确保数据传输的安全性和完整性。

总结

Admission Webhook 在 NGINX Ingress Controller 中是一个重要的特性,它通过在资源创建或更新前执行额外的验证和修改步骤,增强了系统的安全性和稳定性。这不仅有助于防止错误配置,还能自动化一些常见的配置任务,提高用户体验

介绍2

在 NGINX Ingress Controller 中,Admission Webhook 是一种用于增强 Kubernetes API 请求处理的机制,它允许你在资源(如 Ingress)被创建或更新之前对这些请求进行验证或修改。具体来说,Admission Webhook 在 NGINX Ingress Controller 中主要指的是两个方面的工作:验证和变更请求。

Validating Admission Webhook
  • 作用:验证传入的 API 请求是否符合预定义的规则和条件。
  • 工作原理:当用户尝试创建或更新一个 Ingress 资源时,API Server 会将请求发送给 Validating Admission Webhook 进行验证。如果请求不符合预期(例如配置错误或违反了某些策略),Webhook 可以拒绝该请求并返回错误信息给用户。
  • 目的:确保只有正确配置且合法的 Ingress 资源才能被创建或更新,从而防止不正确的配置进入系统
Mutating Admission Webhook
  • 作用:在资源创建或更新前自动修改 API 请求的内容。
  • 工作原理:与 Validating Admission Webhook 类似,但在验证之后,Mutating Admission Webhook 可以修改传入的请求,添加默认值、修正配置项等,然后再将修改后的请求提交给 API Server。
  • 目的:简化用户的配置过程,自动应用最佳实践或集群特定的设置,确保所有资源都遵循一致的标准
在 NGINX Ingress Controller 中的具体实现

对于 NGINX Ingress Controller 来说,Admission Webhook 主要用于以下场景:

  • Ingress 资源验证:确保所有的 Ingress 配置都是有效的,并且不会导致 NGINX 配置文件生成失败或其他问题

  • 自动注入注解:为 Ingress 资源添加必要的注解或默认值,比如 SSL 证书管理、负载均衡策略等

  • TLS 终止配置:处理 TLS 相关的配置,如自动生成和管理 SSL 证书,确保 HTTPS 流量能够正确终止于 Ingress Controller

  • CRD 支持:一些高级功能可能依赖于自定义资源定义(Custom Resource Definitions, CRDs),此时 Mutating 和 Validating Admission Webhooks 可以帮助管理这些自定义资源

Admission Webhook 的组成部分
  1. Webhook 服务:一个运行中的 Pod 或 Deployment,负责处理来自 API Server 的 HTTP(S) 请求。这个服务通常由 NGINX Ingress Controller 的控制器组件提供。

  2. Service 资源:为 Webhook 服务提供稳定的网络端点,API Server 使用此 Service 的 DNS 名称和端口来调用 Webhook

  3. Webhook Configuration 资源ValidatingWebhookConfigurationMutatingWebhookConfiguration 定义了何时以及如何调用 Webhook。它们包含 Webhook 的 URL 或 Service 引用、规则、选择器以及其他配置信息

  4. TLS 证书:用于加密 API Server 和 Webhook 服务之间的通信,确保数据传输的安全性和完整性。这些证书通常是通过 Helm Chart 自动生成,或者手动创建并通过 Kubernetes Secret 管理

总结

Admission Webhook 在 NGINX Ingress Controller 中是一个重要的特性,它通过在资源创建或更新前执行额外的验证和修改步骤,增强了系统的安全性和稳定性。这不仅有助于防止错误配置,还能自动化一些常见的配置任务。此外,Admission Webhook 的存在也意味着 NGINX Ingress Controller 不仅仅是简单的反向代理,而是具有更深层次集成能力的 Kubernetes 组件,它可以参与到 Kubernetes API 请求的生命周期中,确保集群内资源的一致性和安全性


http://www.ppmy.cn/ops/146077.html

相关文章

无人机搭载rtk技术详解!

一、技术原理 RTK定位定向技术的工作原理基于载波相位差分原理。地面基准站接收来自多颗卫星的信号,并计算其精确位置及载波相位观测值,随后将这些数据通过无线电或移动通信网络实时发送给无人机上的流动站。流动站同时接收来自卫星的信号,并…

Cadence学习笔记 14-15 按模块同步抓取器件_宏观布局

基于Cadence 17.4,四层板4路HDMI电路 更多Cadence学习笔记:Cadence学习笔记 1 原理图库绘制Cadence学习笔记 2 PCB封装绘制Cadence学习笔记 3 MCU主控原理图绘制Cadence学习笔记 4 单片机原理图绘制Cadence学习笔记 5 四路HDMI原理图绘制Cadence学习笔记…

C 语言中 strlen 函数的深入剖析

目录 一、strlen 函数的基本介绍 二、strlen 函数的工作原理 三、strlen 函数的使用注意事项 四、strlen 与其他字符串处理函数的结合使用 五、strlen 在实际编程中的应用场景 六、总结 在 C 语言的编程世界里,strlen函数是一个经常被使用但又容易被误解的重要…

python的OS模块和shutil模块使用

一. OS模块 os 模块提供了一个与操作系统交互的接口,可以用来处理文件和目录的路径、创建和删除目录、执行系统命令、获取和修改环境变量等操作。 1.文件和目录操作 1.1 获取当前工作目录 import oscurrent_dir os.getcwd() print(current_dir) # 输出当前工作…

Mooncake:kimi后端推理服务的架构设计

前言 本文依托论文《Mooncake: A KVCache-centric Disaggregated Architecture for LLM Serving》来讲解kimi的后端服务架构Mooncake,并按照自己的思路来梳理论文中的一些关键信息。 背景 服务端面临的问题 随着大模型技术越来越强,很多应用都是以Maas(Model as a Service…

Windows系统提示synsoacc.dll文件报错要怎么解决?

一、文件丢失问题:深度剖析与应对策略 文件丢失是电脑运行时常见的问题之一。它可能由多种原因引起,如硬盘故障、病毒攻击、不当的文件操作等。当Windows系统提示synsoacc.dll丢失时,通常意味着该文件对于当前正在运行的程序或系统服务至关重…

最新高性能多目标优化算法:融合高斯扰动与竞争学习的多目标加权平均算法(MOWAA)求解TP1-TP10及工程应用---盘式制动器设计,提供完整MATLAB代码

一、加权平均算法 加权平均算法(Weighted Average Algorithm, WAA)是2024年提出的一种新型元启发式优化算法,其灵感来源于加权平均位置概念。WAA算法通过优化种群的加权平均位置来平衡全局搜索(Exploration)与局部开发…

Linux-Ubuntu之串口通信

Linux-Ubuntu之串口通信 一,串口通信1.串口通信寄存器配置2.串口通信软件实现①手动波特率②自动波特率③主函数 二,printf和scanf实现串口的输入显示 一,串口通信 1.串口通信寄存器配置 串口通信利用接口是这个TTL,下载程序用的…