【Kubernetes】(七) 控制器2

一、DaemonSet:节点级守护进程控制器

  1. 核心定义DaemonSet 是确保集群中全部(或指定)节点上,各运行一个 Pod 副本的控制器。当新节点加入集群时,自动为其创建 Pod;节点移除时,自动回收 Pod,是节点级守护进程的标准部署方案。2. 典型使用场景集群监控:在每个节点部署监控 Agent(如 Prometheus Node Exporter)日志采集:部署日志收集器(如 Fluentd),采集节点容器日志集群守护:部署节点安全、网络插件(如 Calico、Flannel)存储管理:部署分布式存储节点 Agent3. 核心特性节点生命周期绑定:Pod 随节点创建 / 销毁自动同步支持节点亲和性,仅在指定节点运行 Pod删除 DaemonSet 会自动清理其创建的所有 Pod
    二、StatefulSet:有状态应用的专属控制器
  2. 核心定义StatefulSet 是管理有状态应用负载的控制器,与 Deployment 最大的区别是:为每个 Pod 维护永久不变的粘性 ID,Pod 不可相互替换,即使重新调度,Pod 名称、网络标识、存储绑定关系始终稳定。2. 核心适用场景稳定的唯一网络标识(如域名、主机名)稳定的持久化存储(如 MySQL、Redis 集群)有序的部署、扩缩容与滚动更新有状态中间件(如 Kafka、Elasticsearch、ZooKeeper)
  3. 实战示例创建 3 副本的有状态 nginx 应用:apiVersion: apps/v1kind: StatefulSetmetadata: name: webspec: selector: matchLabels: app: nginx serviceName: "nginx" replicas: 3 template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx imagePullPolicy: IfNotPresent ports: - containerPort: 80 name: web volumeMounts: - name: www mountPath: /usr/share/nginx/html volumes: - name: www emptyDir: {}4. 核心特性有序启动:Pod 按 web-0 → web-1 → web-2 顺序创建,前一个 Pod 就绪后才启动下一个稳定标识:Pod 名称、DNS 域名永久不变存储绑定:PersistentVolume 与 Pod 一一绑定,Pod 重建后自动挂载原存储
    三、Job 与 CronJob:批处理任务控制器1. Job:一次性批处理任务核心定义Job 负责执行一次性、短期的批处理任务,保证任务 Pod 成功执行完成,支持失败重试,适用于数据计算、批量处理等场景。实战示例apiVersion: batch/v1kind: Jobmetadata: name: pispec: template: spec: containers: - name: pi image: busybox imagePullPolicy: IfNotPresent command: "sh", "-c", "while true; do echo CKA JOB!; done" restartPolicy: Never backoffLimit: 4kubectl create -f job.ymlkubectl logs <Pod名>kubectl delete -f job.yml2. CronJob:定时周期性任务核心定义CronJob 是基于 Cron 语法的定时任务控制器,用于周期性执行任务,如定时备份、日志清理、报表生成等。实战示例apiVersion: batch/v1kind: CronJobmetadata: name: cronjobtestspec: schedule: "*/1 * * * *" jobTemplate: spec: template: spec: containers: - name: hello image: busybox imagePullPolicy: IfNotPresent command: - /bin/sh - -c - date; echo Hello from the Kubernetes cluster. restartPolicy: OnFailurekubectl create -f cronjob.ymlkubectl get cronjobs,podkubectl logs <Pod名>kubectl delete -f cronjob.yml3. 核心区别控制器 执行方式 适用场景Job 一次性执行 数据计算、批量迁移、一次性任务CronJob 周期性定时执行 定时备份、日志清理、定时报表
    四、控制器选型总结控制器类型 核心定位 适用场景ReplicaSet 副本保活 仅保证 Pod 数量,不直接用于生产Deployment 无状态应用管理 微服务、API 服务、无状态 Web 服务DaemonSet 节点级守护进程 监控 Agent、日志采集、网络插件StatefulSet 有状态应用管理 数据库、中间件、分布式存储Job 一次性批处理 数据计算、批量任务CronJob 定时任务 定时备份、周期性运维任务
    五、高频问答Q:什么是 DaemonSet?有哪些使用场景?A:DaemonSet 能够保证在集群全部或部分节点上,只运行一个 Pod 副本。新节点加入时自动创建 Pod,节点移除时自动回收 Pod。常见场景包括运行集群监控、日志采集、网络插件等守护进程。Q:什么是 StatefulSet?作用是什么?A:StatefulSet 用于管理有状态应用,为每个 Pod 提供固定且不变的标识、网络名称和存储绑定,保证有序部署、有序扩缩容和稳定持久化,适合数据库、分布式中间件等场景。Q: 什么是 Job 和 CronJob?有什么作用?A:Job 用于处理一次性的批处理任务,确保任务成功执行完成。CronJob 则基于 Cron 表达式实现定时任务,用于周期性执行备份、清理、报表等工作。
相关推荐
subin9922 分钟前
圣阳蓄电池企业口碑优势与核心运营策略FAQ解析
大数据·运维·人工智能·电源·ups
执行x42 分钟前
wsl2安装+桥接模式+固定IP
linux·windows·ubuntu
Zhu75844 分钟前
在k8s环境部署Apache Kafka 集群架构,combined模式,无SSL配置
kafka·kubernetes·apache
AC赳赳老秦1 小时前
GTD 工作法落地:用 OpenClaw 搭建收集-整理-执行-复盘全流程自动化工作流
大数据·运维·人工智能·信息可视化·自动化·deepseek·openclaw
DataX_ruby821 小时前
DCMM 2.0 贯标评估全解读:数据中台如何支撑九大能力域(2026版)
大数据·运维·人工智能·数据治理·数据中台
小手智联老徐2 小时前
Ubuntu 下 CuteCom 串口调试工具指南:安装、权限配置与数据记录
linux·运维·ubuntu
C137的本贾尼2 小时前
第十篇:Docker & K8s——标准化应用的“集装箱“和“码头调度中心“
docker·容器·kubernetes
Felven2 小时前
麒麟信安操作系统掉电保护方案
linux·运维·麒麟信安·硬盘保护
云栖梦泽2 小时前
将RAW打包成MIPI CSI2
linux·人工智能·嵌入式硬件
泰和英杰2 小时前
2026 华为数字能源实操考点迭代:数据中心与光伏储能标准化故障排查方法论
运维·服务器·网络