Kubernetes operator系列:webhook 知识学习【更新中】

news2024/9/23 11:16:10

云原生学习路线导航页(持续更新中)

  • 本文是 Kubernetes operator学习 系列文章,本节会对 kubernetes webhook 知识进行学习
    • 本文的所有代码,都存储于github代码库:https://github.com/graham924/share-code-operator-study/tree/main/cronJob-operator
    • 希望各位大佬们,点点star,大家的鼓励是我更新的动力
  • Kubernetes operator学习系列 快捷链接
    • Kubernetes operator系列:client-go篇
    • Kubernetes operator系列:CRD篇
    • Kubernetes operator系列:code-generator 篇
    • Kubernetes operator系列:controller-tools 篇
    • Kubernetes operator系列:api 和 apimachinery 篇
    • Kubernetes operator系列:CRD控制器 开发实战篇
    • Kubernetes operator系列:kubebuilder 的安装及简单使用 篇
    • Kubernetes operator系列:kubebuilder 实战演练之deploy-image插件的使用
    • Kubernetes operator系列:webhook 知识学习
    • Kubernetes operator系列:kubebuilder 实战演练 之 自定义CronJob
    • Kubernetes operator系列:kubebuilder 实战演练 之 开发多版本CronJob
    • Kubernetes operator系列:零散知识篇

1.kubernetes Admission Control 机制

1.1.Admission Control准入控制是什么

  • kubernetes ApiServer 收到一个请求,在将数据持久化到etcd之前,会依次经过:Authentication认证、Authorization鉴权、Admission Control准入控制
    • Authentication:验证用户或实体的身份,并确保其声称的身份是有效的
    • Authorization:确保当前用户具有对其 访问资源 的访问权限
    • Admission Control:对请求本身进行 验证、转换 和 审查
      在这里插入图片描述

1.2.Admission Control 插件机制

  • Admission Control 是由一系列插件组成的,apiserver的请求,需要通过所有插件,才能最终存储到etcd
  • api server 启动时,使用参数控制插件的开启
    • kubernetes 1.10及以上版本,apiserver使用 参数 --enable-admission-plugins 控制插件启动
    • kubernetes 1.9及以下版本,apiserver使用 参数 --admission-control 控制插件启动
  • 我们今天要学习的webhook,涉及到 Admission Control 的两个插件:MutatingAdmissionWebhook、ValidatingAdmissionWebhook,这两个插件都是默认开启的,我们无需再去更改apiserver启动参数重启

2.Webhook介绍

2.1.webhook是什么

  • 顾名思义,webhook就是 网络钩子,在特殊条件下自动触发执行。
  • 在kubernetes中,通过使用 webhook,用户可以编写自定义的业务逻辑,并将其部署为独立的 HTTP 服务,然后将其注册到 Kubernetes 中。
    • Kubernetes 将根据配置,将到达 apiserver 的请求发送到相应的 webhook 服务,并根据 webhook 返回的结果来决定是否允许请求继续进行,以及是否需要对请求进行修改。

2.2.kubernetes webhook的三种类型

  • 在kubernetes中,webhook共分为三种
    • admission webhook
      • 属于admission control插件,在请求进入admission control插件链时,依次调用
      • admission webhook 包括两种:MutatingAdmissionWebhook、ValidatingAdmissionWebhook
    • authorization webhook
      • 对 API Server 中的请求进行授权判断
    • CRD conversion webhook
      • 用于对 多版本的crd 资源,进行版本间数据转换
  • 其中,controller-runtime 支持 admission webhookCRD conversion webhook 两种
    • 我们进行Operator开发,也只要是涉及到这两种webhook

2.3.为webhook提供证书

  • 为什么需要为webhook提供证书
    • admission webhookCRD conversion webhook,api Server 通过 https post 访问 webhook server, 因此 webhook server 必须要监听在 https 协议上
    • 因此 这三种 webhook 都需要做好证书配置,推荐使用 cert-manager 为Webhook提供证书
  • 安装cert-manager
    kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.14.4/cert-manager.yaml	
    
  • 查看安装结果
    [root@localhost cert-manager]# kubectl get pod -n cert-manager
    NAME                                       READY   STATUS    RESTARTS   AGE
    cert-manager-7fb948f468-r5dj2              1/1     Running   0          142m
    cert-manager-cainjector-75c5fc965c-shtx6   1/1     Running   0          142m
    cert-manager-webhook-757c9d4bb7-vhgt7      1/1     Running   0          142m
    
    [root@localhost cert-manager]# kubectl get ValidatingWebhookConfiguration
    NAME                   WEBHOOKS   AGE
    cert-manager-webhook   1          143m
    
    [root@localhost cert-manager]# kubectl get MutatingWebhookConfiguration
    NAME                   WEBHOOKS   AGE
    cert-manager-webhook   1          143m
    

3.admission webhook

4.CRD conversion webhook

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【大厂AI课学习笔记NO.80】深度学习行业人才能力图谱

深度学习领域的就业岗位及所需关键技术、工具、能力分析 深度学习作为人工智能领域的一个重要分支,近年来得到了飞速的发展。随着技术的不断进步和应用场景的不断拓展,深度学习领域的就业岗位也日益增多。本文将从领军人才、产业研发人才、应用开发人才…

Lombok原理及实例(Java) - 简化JavaBean开发

Lombok 1.作用:简化javabean开发 2.使用:a.下插件 -> 如果是idea2022不用下载了,自带b.导lombok的jar包c.修改设置 1.lombok介绍 Lombok通过增加一些“处理程序”,可以让javabean变得简洁、快速。 Lombok能以注解形式来简化java代码,提高开发效…

HttpServer整合模块设计与实现(http模块五)

目录 类功能 类定义 类实现 编译测试 源码路标 类功能 类定义 // HttpServer模块功能设计 class HttpServer { private:using Handler std::function<void(const HttpRequest &, HttpResponse &)>;std::unordered_map<std::string, Handler> _get_r…

JS实现漂浮广告案例

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>漂浮广告</title><style>#link {…

每日一练:LeeCode-209、长度最小的子数组【滑动窗口+双指针】

每日一练&#xff1a;LeeCode-209、长度最小的子数组【滑动窗口双指针】 思路暴⼒解法滑动窗口 本文是力扣 每日一练&#xff1a;LeeCode-209、长度最小的子数组【滑动窗口双指针】 学习与理解过程&#xff0c;本文仅做学习之用&#xff0c;对本题感兴趣的小伙伴可以出门左拐 L…

css超出部分显示省略号

目录 前言 一、CSS单行实现 二、CSS多行实现&#xff08;CSS3出的&#xff0c;兼容性需要注意&#xff09; 三、微信小程序超过2行出现省略号实现 四、JavaScript脚本实现 前言 CSS文本溢出就显示省略号&#xff0c;就是在样式中指定了盒子的宽度与高度,有可能出现某些内…

BUGKU-WEB shell

题目描述 题目截图如下&#xff1a; 描述&#xff1a; $poc "a#s#s#e#r#t";$poc_1 explode("#", $poc);$poc_2 $poc_1[0].$poc_1[1].$poc_1[2].$poc_1[3].$poc_1[4].$poc_1[5];$poc_2($_GET[s])进入场景看看&#xff1a;是一个空白的界面 解题思路 …

基于51单片机的智能浇花系统的设计与实现

项目介绍 本设计是基于51系列单片机而设计的智能浇花系统&#xff0c;本系统结合单片机编程技术、传感器技术以及GSM通信技术实现系统基本功能&#xff0c;使系统根据不一样的土壤湿度&#xff0c;能够相应的改变浇水要求。本系统主要由湿度显示模块、湿度设置模块、湿度采集模…

第六届上海国际垃圾焚烧发电展将于12月11-13日上海举办

第六届上海国际垃圾焚烧发电暨固废处理技术展览会 2024年12月11-13日 上海新国际博览中心 主办单位&#xff1a;中华环保联合会 废弃物发电专委会 支持单位&#xff1a;垃圾焚烧技术与装备国家工程实验室 承办单位&#xff1a;上海怡涵展览服务有限公司 展会介绍&#xff1a…

男人圣经 7

男人圣经 7 高逼格长期目标的行动飞轮1. 品牌价值和声誉2. 人脉网络和关系3. 企业文化和价值观4. 专有技术和知识产权5. 管理经验和专业知识 为什么只追求高经济、高科技&#xff1f;为什么说道德仁义是表面&#xff0c;而利益才是一切背后的真相&#xff1f; 高逼格长期目标的…

【微服务学习笔记(一)】Nacos、Feign、Gateway基础使用

【微服务学习笔记&#xff08;一&#xff09;】Nacos、Feign、Gateway基础使用 总览Nacos安装配置Nacos注册中心服务多级存储模型负载均衡规则环境隔离 配置管理配置拉取配置热更新多服务共享配置 Feign远程调用配置性能优化Fegin使用 统一网关Gateway搭建网关路由断言工厂&…

部署快捷、使用简单、推理高效!大模型部署和推理框架 Xinference 来了!

今天为大家介绍一款大语言模型&#xff08;LLM&#xff09;部署和推理工具——Xinference[1]&#xff0c;其特点是部署快捷、使用简单、推理高效&#xff0c;并且支持多种形式的开源模型&#xff0c;还提供了 WebGUI 界面和 API 接口&#xff0c;方便用户进行模型部署和推理。 …

LORA_ LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS

paper: https://arxiv.org/pdf/2106.09685.pdf code: https://github.com/microsoft/LoRA 摘要 作者提出了低秩自适应&#xff0c;或称LoRA&#xff0c;它冻结了预先训练的模型权值&#xff0c;并将可训练的秩分解矩阵注入变压器架构的每一层&#xff0c;大大减少了下游任务的…

金山办公内推

作为金山办公刚刚校招等待入职的一员&#xff0c;我诚挚地邀请您加入我的内推计划&#xff0c;与我一起共同打造卓越的工作环境和未来。 我能帮你 &#xff08;与直接填我的内推码不同&#xff0c;我直接通过内部问卷帮你投&#xff09; 1&#xff0c;直接通过校招群里的连接…

提交数据加快百度搜索引擎收录

百度站长工具做了更新&#xff0c;百度收录的地址分享如下&#xff0c;新站点提交后&#xff0c;可以加快百度收录。 普通收录_加快网站内容抓取&#xff0c;快速提交数据工具_站长工具_网站支持_百度搜索资源平台普通收录工具可实时向百度推送数据&#xff0c;创建并提交site…

Android应用Java开发规范

常规编程 魔法值与魔法数字 1.【强制】不允许任何魔法值&#xff08;即未经预先定义的常量&#xff09;直接出现在代码中。 反例&#xff1a; // 开发者 A 定义了缓存的 key。 String key "Id#taobao_" tradeId; cache.put(key, value); // 开发者 B 使用缓…

香港优才计划子女读书内地高考政策解读,3个黄金年龄段不要错过!

香港优才计划子女读书内地高考政策解读&#xff0c;3个黄金年龄段不要错过&#xff01; 孩子年龄多大&#xff0c;适合办理香港身份&#xff1f; 关注子女教育的家长们&#xff0c;应该对于“孩子有了香港身份&#xff0c;400分轻松上名校”的说法都有耳闻&#xff0c;但很少有…

altgraph的安装和用途说明

前言 altgraph 是 graphlib 的一个分支&#xff1a;一个图&#xff08;网络&#xff09;包&#xff0c;用于构建图、BFS 和 DFS 遍历、拓扑排序、最短路径等&#xff0c;带有 graphviz 输出。 安装 pip install altgraph 函数和用例 生物链 from altgraph import Graph# 定…

Python爬虫实战入门:豆瓣电影Top250(保你会,不会来打我)

文章目录 需求所需第三方库requests模块lxml模块了解 lxml模块和xpath语法xpath语法-基础节点选择语法 实战教程完整代码 需求 目标网站: https://movie.douban.com/top250 需求: 爬取电影中文名、英文名、电影详情页链接、导演、主演、上映年份、国籍、类型、评分、评分人数, …

伪装目标检测论文BGNet:Boundary-Guided Camouflaged Object Detection

论文地址:link 代码地址&#xff1a;link 这篇论文是22年的CVPR收录的一篇关于伪装目标检测的文章&#xff0c;作者主要是用了一些通道注意力和Atrous卷积来实现边缘引导的伪装目标检测&#xff0c;模型并不复杂&#xff0c;看了两天的论文和代码&#xff0c;为了加深印象在这里…