【K8s】专题五(5):Kubernetes 配置之热更新工具 Reloader

以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发!欢迎扫码关注个人公众号!

公众号二维码


目录

一、基本介绍

二、工作原理

三、部署方法

四、使用方法


一、基本介绍

Reloader 是一个用于 Kubernetes 的工具,能够监听 Kubernetes 中 ConfigMap 和 Secret 的变化,并通过自动触发 Deployment、StatefulSet、Daemonset 等对象重启,实现应用程序配置的热更新(重新加载)。


二、工作原理
  • 监听配置:Reloader 会监听指定 ConfigMap 或 Secret 的配置文件
  • 触发事件:当检测到配置文件内容发生变化时,Reloader 会触发一个事件
  • 重新加载:Reloader 向控制器发送信号,请求重启 Deployment、StatefulSet、Daemonset 等对象


三、部署方法

1、资源清单

# reloader.yaml
## 定义 RBAC 对象
apiVersion: v1
kind: ServiceAccount
metadata:
  name: reloader

---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: reloader-role
rules:
  - apiGroups:
      - ""
    resources:
      - secrets
      - configmaps
    verbs:
      - list
      - get
      - watch
  - apiGroups:
      - "apps"
    resources:
      - deployments
      - daemonsets
      - statefulsets
    verbs:
      - list
      - get
      - update
      - patch
  - apiGroups:
      - "extensions"
    resources:
      - deployments
      - daemonsets
    verbs:
      - list
      - get
      - update
      - patch
  - apiGroups:
      - ""
    resources:
      - events
    verbs:
      - create
      - patch

---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: reloader-rolebinding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: reloader-role
subjects:
  - kind: ServiceAccount
    name: reloader

## 定义 Deployment 对象
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: reloader
spec:
  replicas: 1
  revisionHistoryLimit: 10
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
  selector:
    matchLabels:
      app: reloader
  template:
    metadata:
      labels:
        app: reloader
    spec:
      containers:
      - name: reloader
        image: stakater/reloader:v1.0.12
        imagePullPolicy: IfNotPresent
        ports:
        - name: http
          containerPort: 9090
        env:
        - name: KUBERNETES_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        startupProbe:
          httpGet:
            path: /metrics
            port: http
          initialDelaySeconds: 5
          periodSeconds: 5
          timeoutSeconds: 5
          successThreshold: 1
          failureThreshold: 10
        readinessProbe:
          httpGet:
            path: /metrics
            port: http
          initialDelaySeconds: 5
          periodSeconds: 5
          timeoutSeconds: 5
          successThreshold: 1
          failureThreshold: 5
        livenessProbe:
          httpGet:
            path: /live
            port: http
          initialDelaySeconds: 5
          periodSeconds: 5
          timeoutSeconds: 5
          successThreshold: 1
          failureThreshold: 5
        resources:
          limits:
            cpu: 200m
            memory: 200Mi
          requests:
            cpu: 20m
            memory: 20Mi
      restartPolicy: Always
      securityContext: 
        runAsNonRoot: true
        runAsUser: 65534
      serviceAccountName: reloader

2、部署命令

kubectl apply -f reloader.yaml


四、使用方法

在 Deployment、StatefulSet、DaemonSet 等对象的资源清单中,添加相应的 Annotation 注解即可,示例如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  nanme: demo-deployment
  annotations:
    reloader.stakater.com/auto: "true"
...


🔔 reloader.stakater.com/auto: "true":对所有 ConfigMap 和 Secret 对象生效
🔔 configmap.reloader.stakater.com/reload: "demo1,demo2,...":对指定的 ConfigMap 对象生效
🔔 secret.reloader.stakater.com/reload: "demo1,demo2,...":对指定的 Secret 对象生效

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于STM32和人工智能的智能农业监测系统

目录 引言环境准备智能农业监测系统基础代码实现:实现智能农业监测系统 4.1 数据采集模块4.2 数据处理与分析4.3 控制系统4.4 用户界面与数据可视化应用场景:智能农业管理与优化问题解决方案与优化收尾与总结 1. 引言 智能农业监测系统通过结合STM32嵌…

手机照片同步到群辉NAS

手机中最宝贵的数据莫过于“照片”,这些包含美好回忆的数字信息是不能丢失的。NAS的作用就是存储,其中最重要的一项功能就是手机照片的同步。 在群辉NAS丰富的套件中,“Synology Photos”就是解决这个功能,今天我们来看看如何操作。 一、安装套件 打开群晖套件中心→所有…

【拉曼光谱数据处理2024】拉曼数据处理的主要问题和常见方法

一、主要问题分类与解决方法比较 二、常见问题在光谱图上的显示 1、从上到下依次是 理想光谱 理想光谱宇宙尖峰 理想光谱高斯噪声 理想光谱S型背景噪声 理想光谱尖峰高斯噪声S型背景噪声

OS复习笔记ch11-1

外围设备的管理和磁盘调度 外围设备 从CPU的角度来看,外设有几个比较重要的I/O接口(interfaces) 状态reg:向CPU报告设备的状态(忙碌/空闲)命令reg:接收CPU命令,存储 CPU 需要执行的…

低温环氧胶在指纹模组封装中的应用有哪些?

低温环氧胶在指纹模组封装中的应用有哪些? 低温环氧胶在指纹模组封装中的应用点主要包括以下几点: 金属环/框与FPC基板固定:低温固化环氧胶被推荐用于固定金属环或框到柔性印刷电路板(FPC)基板上,确保它们之间有稳固的连接。 传感…

RTX5全家桶源码综合模板发布,含FreeRTOS内核版本,将其打造成直接面向实际项目应用的综合框架(2024-06-19)

【说明】 1、RTX5全家桶的优势就是简单易用,初学的话,上手很快,稳定性也是杠杠的,且容易做稳定。 2、同时RTX5也是有汽车级,工业级,医疗和铁路安全认证,只是安全级别比ThreadX要稍微低些。 3…

Easyui Datagrid 解决页面加载重复请求2次后端问题

现象 在页面刚刚打开时,页面加载完毕,显示查询数据,连续请求网络2次, 第一次是只携带了 分页参数; 第二次携带分页和查询参数 问题出现原因 html代码中利用class声明了datagrid,导致easyUI解析class代…

安泰电子:功率放大器的要求是什么

功率放大器是一种用于增强电信号功率的重要设备,在各种应用领域发挥着关键作用。对于功率放大器来说,有一些基本的要求需要满足,以确保其正常工作和提供稳定可靠的功率放大功能。下面将介绍功率放大器的几个主要要求。 高效率:功率…

electron下载失败(electron如何切换镜像源)

打开: 或者: C:\Users\用户名\.npmrc 添加: electron_mirrorhttps://npmmirror.com/mirrors/electron/ 到文件中,保存 方法二: npm config set ELECTRON_MIRROR https://npmmirror.com/mirrors/electron/ ELECTR…

如何低成本试错渠道?Xinstall App来源统计,让您的推广更高效!

随着互联网流量的不断变化,App推广与运营面临着前所未有的挑战。如何在多变的市场环境下迅速搭建起满足用户需求的运营体系,成为众多企业关注的焦点。今天,我们将为您介绍一款强大的工具——Xinstall,它能帮助您精准统计App来源&a…

面试专区|【62道Redis高频题整理(附答案背诵版)】

什么是Redis? Redis是一个高性能的开源内存数据库系统,它使用键值对存储数据,并支持多种数据结构,如字符串、哈希、列表、集合和有序集合。与传统关系型数据库不同,Redis将数据存储在内存中,以实现快速读写操作。同时…

CPU核心是如何影响VPS性能的?

为什么VPS对于各种类型和规模的网站和应用程序来说都是非常出色的解决方案? 首先,它比其他类型的托管具有许多优势,但也许它最大的优势是它可以以合适的价格为您提供合适的性能。 然而,只有当您满足所需的规格时它才会这样做。 …

JAVA小知识27:异常与异常处理全解

一、异常 异常就是代表程序出现了问题,像我们之前学数组的时候碰到的数组越界异常,以及空指针异常等等都属于开发中经常能碰到的异常。 我们学习异常不是为了在以后中避免异常,而是学习碰到了异常以后该如何的处理。 1.1、异常的分类 Java…

【Python科研】如何使用Python计算年度和季节的平均降水栅格数据并进行批量裁剪

目录 1.环境准备 2.设置文件路径 3.读取矢量数据 4.定义年份和季节 5.创建输出文件夹 6.裁剪栅格数据的函数 7.计算和保存年度平均降水数据 8.计算和保存季节平均降水数据 9.结论 10.完整代码 本次分享内容中,我们将介绍如何使用Python计算和裁剪年度和季…

复合构件之消息对话框

代码; #include <gtk-2.0/gtk/gtk.h> static void font_dialog_response(GtkFontSelectionDialog *dialog,gint response,gpointer data)// 处理字体选择对话框按钮按下事件 {gchar *font;GtkWidget *message;switch (response) {case (GTK_RESPONSE_APPLY):case (GTK_R…

ClipArt ETC - 典雅的剪贴画网站

文章目录 ClipArt ETCClippix佛罗里达教学技术中心课堂数字内容 ClipArt ETC 网站地址&#xff1a; https://etc.usf.edu/clipart/ ClipArt ETC为学生和教师提供了超过71,500件高质量的教育剪贴画。 每个插图都有图像大小的选择以及学校项目中正确引用的完整源信息。 所有图像…

UniApp 开发微信小程序教程(一):准备工作和环境搭建,项目结构和配置

文章目录 一、准备工作和环境搭建1. 安装 HBuilderX步骤&#xff1a; 2. 注册微信开发者账号步骤&#xff1a; 3. 创建 UniApp 项目步骤&#xff1a; 二、项目结构和配置1. UniApp 项目结构2. 配置微信小程序修改 manifest.json修改 pages.json 3. 添加首页文件index.vue 示例&…

【查缺补漏】python

python查缺补漏 底板除 还有一种除法是//&#xff0c;称为地板除&#xff0c;两个整数的除法仍然是整数&#xff1a; >>> 10 // 3 3你没有看错&#xff0c;整数的地板除//永远是整数&#xff0c;即使除不尽。要做精确的除法&#xff0c;使用/就可以。 因为//除法只…

一文讲清楚分销裂变是什么?怎么做好分销裂变?【附案例】

在数字化营销日益盛行的今天&#xff0c;分销裂变作为一种高效的推广手段&#xff0c;受到了越来越多企业的青睐。那么&#xff0c;分销裂变究竟是什么&#xff1f;我们又该如何做好分销裂变呢&#xff1f;林叔将从定义、方法以及案例分析三个方面进行阐述。 一、分销裂变是什…

MySQL的数据存储一定是基于硬盘吗?

一、典型回答 不是的&#xff0c;MySQL也可以基于内存的&#xff0c;即MySQL的内存表技术。它允许将数据和索引存储在内存中&#xff0c;从而提高了检验速度和修改数据的效率。优点包括具有快速响应的查询性能和节约硬盘存储空间。此外&#xff0c;使用内存表还可以实现更高的复…