官方文档
https://kubernetes.io/zh/docs/concepts/workloads/controllers/daemonset/

创建daemonSet文件

确保所有node运行同一个pod,守护进程集。
确保集群中每个node中运行一份pod副本,当node加入集群时,创建pod,当node离开集群时,回收pod,如果删除daemonset,其创建的所有pod也被删除,daemonset的pod覆盖整个集群。
应用场景:集群存储守护进程,集群日志收集守护进程,节点监控守护进程。

vi ds.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: ds-test
  namespace: test
  labels:
    app: filebeat
spec:
  selector:
    matchLabels:
      app: filebeat
  template:
    metadata:
      labels:
        app: filebeat
    spec:
      containers:
      - name: logs
        image: nginx
        ports:
        - containerPort: 80
        volumeMounts:
        - name: varlog
          mountPath: /tmp/log
      volumes:
      - name: varlog
        hostPath:
          path: /var/log

使用filebeat工具,部署到每一个node上采集宿主机的日志目录。
可以在创建完成后,查看日志目录

kubectl apply -f ds.yaml
kubectl get pods -n test

在这里插入图片描述
进入查看日志目录:

kubectl exec -it ds-test-gxh75 -n test bash

在这里插入图片描述

Job 普通任务

一次性执行,适合临时跑一个任务,跑完就停止了。
应用场景:离线数据处理,视频解码等业务。


apiVersion: batch/v1
kind: Job
metadata:
  name: pi
  namespace: test
spec:
  template:
    spec:
      containers:
      - name: pi
        image: perl
        command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
      restartPolicy: Never
  backoffLimit: 4

在这里插入图片描述

# 查看job
kubectl get jobs -n test

在这里插入图片描述

CronJob 定时任务

应用场景:通知、备份

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: hello
  namespace: test
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: hello
            image: busybox
            args:
            - /bin/sh
            - -c
            - date; echo Hello from the Kubernetes cluster
          restartPolicy: OnFailure

每一分钟处理一次
在这里插入图片描述
在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐