资讯动态

控制器管理

发布时间:2026/8/26 15:19:49 来源:尧图企业网站定制
控制器作用管理 Pod 生命周期实现副本维持、升级、任务调度常见控制器ReplicaSet、Deployment、DaemonSet、Job、CronJob。1、ReplicaSetRS作用维持指定数量 Pod 副本通过selector.matchLabels匹配 Pod 标签不建议直接使用由 Deployment 管理 RSapiVersion: apps/v1 kind: ReplicaSet metadata: labels: app: webcluster name: webcluster spec: replicas: 2 #期望副本数 selector: matchLabels: app: webcluster #标签选择器匹配pod标签 template: metadata: labels: app: webcluster #pod模板标签必须匹配selector spec: containers: - image: myapp:v1 name: myappkubectl apply -f repset.yml #扩缩容 kubectl scale replicaset webcluster --replicas 4 kubectl scale replicaset webcluster --replicas 02、Deployment最常用无状态应用控制器Deployment 管理 ReplicaSet支持滚动更新、版本回退、暂停恢复更新。apiVersion: apps/v1 kind: Deployment metadata: labels: app: webcluster name: webcluster spec: minReadySeconds: 5 #pod就绪后等待多久视为可用 replicas: 2 selector: matchLabels: app: webcluster #滚动更新策略 strategy: rollingUpdate: maxSurge: 1 #最多可以比期望副本多几个pod maxUnavailable: 0 #最多允许多少pod不可用 template: metadata: labels: app: webcluster spec: containers: - image: myapp:v1 name: myappkubectl apply -f dep.yml #暴露服务 kubectl expose deployment webcluster --port 80 --target-port 80 #查看更新策略 kubectl describe deployments.apps webcluster3、DaemonSetDaemonSet每一个或者匹配标签的节点运行一个 Pod适合日志收集、监控 agent。新增节点自动部署 Pod。apiVersion: apps/v1 kind: DaemonSet metadata: labels: app: daemonset name: daemonset spec: selector: matchLabels: app: daemonset template: metadata: labels: app: daemonset spec: containers: - image: myapp:v1 name: myapp4、Job 控制器一次性任务Job执行一次性任务保证任务最终成功完成completions总成功任务数parallelism并发执行数量restartPolicy 只能为 Never / OnFailure。apiVersion: batch/v1 kind: Job metadata: name: testjob spec: completions: 6 #一共要成功完成6个pod parallelism: 2 #最多并发2个pod运行 backoffLimit: 4 #失败重试最大次数 template: spec: containers: - image: busybox name: testjob command: [/bin/sh, -c] args: - | echo this is testjob message sleep 10 restartPolicy: Neverkubectl apply -f job.yml #查看任务输出日志 kubectl logs pods/testjob-4cdlr5、CronJob 定时任务控制器CronJob基于 cron 表达式定时创建 Job 对象周期性执行任务。apiVersion: batch/v1 kind: CronJob metadata: name: cronjob spec: schedule: * * * * * #cron表达式每分钟执行 jobTemplate: metadata: name: cronjob spec: template: spec: containers: - image: busybox name: cronjob command: - /bin/sh - -c - echo hello timinglee restartPolicy: OnFailurekubectl apply -f cronjob.yml kubectl get cronjobs.batch kubectl logs cronjob-29598241-pxggh

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价