当前位置: 首页 > article >正文

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

介绍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.kler.cn/a/452203.html

相关文章:

  • Flink中并行度和slot的关系——任务和任务槽
  • 【ES6复习笔记】模板字符串(3)
  • (带源码)宠物主题商场系统 计算机项目 P10083
  • 直流电源如何输出恒压源和恒流源
  • 畅捷通T+13管理员密码任意重置漏洞
  • idea设置控制台日志输出自动换行
  • 批量识别工作表中二维码信息-Excel易用宝
  • 【UE5 C++课程系列笔记】11——FString、FName、FText的基本使用
  • C 语言基础运算:输入两个整数并计算和、差、积
  • Python:模拟(包含例题:饮料换购 图像模糊 螺旋矩阵)
  • CSS|15 CSS3圆角矩形透明度
  • Java反射学习(4)(“反射“机制获取成员方法及详细信息(Method类))
  • 用于航空发动机故障诊断的深度分层排序网络
  • [项目][boost搜索引擎#4] cpp-httplib使用 log.hpp 前端 测试及总结
  • 宠物行业的出路:在爱与陪伴中寻找增长新机遇
  • PDF在线预览实现:如何使用vue-pdf-embed实现前端PDF在线阅读
  • Jenkins 构建流水线
  • 实训项目-人力资源管理系统-1Company子模块
  • 云手机+YouTube:改变通信世界的划时代技术
  • 前端学习:从零开始做一个前端开源项目
  • Python+OpenCV系列:【打卡系统-需求分析】需求大剖析,考勤革命开启!
  • langchain使用FewShotPromptTemplate出现KeyError的解决方案
  • 12.24周二F34-Day35打卡
  • 【vue】css模拟玻璃球体效果(带高光)
  • Opencv实现图像的腐蚀、膨胀及开、闭运算
  • 舵机原理介绍 简洁讲解面向实战 非阻塞式驱动代码, arduino