首页 > 其他分享 >Kubernetes应用访问层扩展CRD接入Prometheus原理

Kubernetes应用访问层扩展CRD接入Prometheus原理

时间:2023-03-19 15:31:43浏览次数:41  
标签:容器 插件 自定义 Kubernetes 扩展 Prometheus CRD kubernetes K8s

1、kubernetes扩展点

kubernetes应用访问层扩展点:webhook、operator、aggregator、容器探针、启停回调、kubectl插件。

kubernetes基础设施层扩展点:调度器扩展、存储插件、网络插件、设备插件。

应用访问层扩展

扩展点

说明

webhook

WebHook可以独立存在于K8s之外,只要有一个监听端口、能处理http请求的进程即可作为WebHook的回调处理。

operator

狭义上来说,operator = CRD + 自定义Controller,通过自定义的Controller监听CRD对象实例的增删改事件,然后执行相应的业务逻辑。

广义上来说,operator = CRD + 自定义Controller + WebHook,在前者的基础上,可以在CRD对象的生命周期里设置相关的事件回调(WebHook),回调程序一般为外部自定义的一个HTTP URL。

aggregator

被称为"Aggregation Layer"(聚合层)或“apiserver-aggregation”(API Server聚合)。

容器探针

容器探针就是指kubelet对容器执行的定期诊断,k8s只是定义了探针的规范,并未给出具体的实现,具体的诊断实现逻辑是开放给开发者的,由开发者自定义。

K8s提供3种探针:存活探针、就绪探针、启动探针。

启停回调

指K8s对容器的启停事件回调 (postStart和preStop事件)。当一个容器启动后,K8s 将立即发送 postStart 事件;在容器被终结之前, Kubernetes 将发送一个 preStop 事件。容器可以为每个事件指定一个自定义的处理程序。在设置具体的回调处理程序时,除了可以使用bash命令,也可以指定一个http url。

kubectl插件

kubectl的插件机制允许开发者以独立的二进制形式发布自定义的kubectl子命令。

基础设施层扩展

扩展方案

说明

调度器扩展

K8s自带有一个默认调度器(即kube-scheduler),主要负责整个集群资源的调度功能,根据特定的调度算法和策略,将Pod调度到最优的工作节点上面去,从而更加合理、更加充分的利用集群的资源。

如果默认调度器不满足项目需求,用户可以实现自己的调度器。

存储插件

K8s 已经提供丰富的 Volume 和 Persistent Volume 插件,可以根据需要使用这些插件给容器提供持久化存储。如果内置的这些 Volume 还不满足要求,K8s支持使用 FlexVolume 或者容器存储接口CSI 来扩展实现自己的存储插件。

网络插件

K8s通过CNI(Container Network Interface),即容器网络接口来调用不同的网络插件以实现不同的网络配置方式,实现这个接口的就是CNI插件,常见的 CNI 插件包括 Calico、flannel、Terway、Weave Net 以及 Contiv。

设备插件

K8s从v1.8开始引入了Device插件(即设备插件),用来支持GPU、FPGA、高性能 NIC、InfiniBand等各种设备。这样设备厂商只需要根据Device Plugin 的接口实现一个特定设备的插件,而不需要修改K8s核心代码,就可以将厂商自己生产的设备资源让kubelet使用。


2、kubernetes应用访问层扩展架构

Kubernetes应用访问层扩展CRD接入Prometheus原理_kubernetes

《k8s应用访问层扩展架构图》

kubernetes应用访问层扩展主要方案:

1、Mutating和Validating的webhook应用开发;

2、使用operator工具通过CRD(CustomResourceDefinitions)做扩展开发;

3、Aggregator API Server;

4、直接修改k8s apiserver源码。


3、kubernetes应用访问层扩展CRD接入prometheus步骤

1、创建自定义资源类型:kubectl get crd -A

Kubernetes应用访问层扩展CRD接入Prometheus原理_kubernetes_02

2、创建自定义资源的对象:kubectl api-resources

Kubernetes应用访问层扩展CRD接入Prometheus原理_docker_03


4、更多k8s学习资料

 ​​ 1、kubernetes原理精讲【基础原理+实践篇】​

 ​​ 2、kubernetes原理精讲【自签证书原理+实践篇】​

 ​​ 3、kubernetes原理精讲【监控体系原理+实践篇】​


标签:容器,插件,自定义,Kubernetes,扩展,Prometheus,CRD,kubernetes,K8s
From: https://blog.51cto.com/u_15104320/6131249

相关文章

  • prometheus安装部署
    prometheus安装部署方式一二进制文件安装Prometheus是一个开源的监视,查询和警报工具。该功能丰富的工具最初由Soundcloud于2012年构建,已被多家公司采用,以监控其IT基础......
  • Kubernetes学习之基础知识
    Kubernetes是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它提供了许多功能,例如服务发现、负载均衡、自动伸缩、滚动更新等,使得运维人员可以轻松地......
  • Kubernetes 1.24 Ubuntu18.04安装
    集群清单角色系统配置IP系统Master最低双核2G内存30G硬盘192.168.56.130Ubuntu18.04Node最低双核2G内存30G硬盘192.168.56.129Ubuntu18.04一、......
  • 带自定义Kubernetes资源验证器的开发人员护栏
    如果你的组织开始采用云原生技术,那么可能仍在研究如何将Kubernetes知识内部化并分发给团队的其他成员。这是一个非常普遍的问题。需求是明确的:为了高效工作并产生高质量的部......
  • 基于kubernetes构建jenkins+gitlab持续集成
    @目录安装jenkins安装gitlabjenkins连接gitlab配置Jenkins连接maven配置cicd本案例使用docker-compose来安装部署Jenkins和gitlab节点IPmaster192.168.200.44......
  • 玩prometheus过程中遇到的一些问题
    一、pgw的无默认值监控项1、prometheus的配置文件global:scrape_interval:15s#Setthescrapeintervaltoevery15seconds.Defaultisevery1minute.ev......
  • Kubernetes 集群介绍(一)
    部署方式变迁在服务部署上主要经历了三个历程:传统部署:互联网早期,会将服务直接部署到物理机上优点:简单,不需要其他技术的参与缺点:不能灵活定义资源使用边界,很难合理分配计算机......
  • K8S部署Prometheus
    前言:zabbix与prometheus的区别和Zabbix类似,Prometheus也是一个近年比较火的开源监控框架,和Zabbix不同之处在于Prometheus相对更灵活点,模块间比较解耦,比如告警模块、代理......
  • gpu-exporter+prometheus实现gpu监控
    目录gpu-exporter+prometheus实现gpu监控一、在gpu服务器上部署nvidia_gpu_exporter1、获取nvidia_gpu_exporter2、运行nvidia_gpu_exporter3、检测监控数据二、接入promet......
  • k8s(Kubernetes)中yaml文件的各种 kind 类型
    k8syaml中文件内容一般有kind类型之分,每种类型有不同的功能(一般用---符号隔开)常见的kind类型1、EndpointsEndpoints可以把外部的链接到k8s系统中(可以理解为引用外部资......