一、DaemonSet控制器
1、概述
DaemonSet 通常用于在集群的每个节点上运行一些特殊的系统级别任务,例如日志收集、监控代理或网络插件。它们还可用于确保集群中的每个节点都具有相同的配置或运行特定的系统服务。
2、DaemonSet 工作原理:如何管理 Pod?
3、DaemonSet典型应用场景
1、日志收集:你可以使用 DaemonSet 在每个节点上运行日志收集代理,例如 Fluentd 或Filebeat。这样可以确保每个节点的日志都被收集并发送到集中式日志存储或分析系统中。
2、监控和指标收集:DaemonSet 可用于在每个节点上运行监控代理,例如 Prometheus Node Exporter,以收集节点级别的指标数据,如 CPU、内存、磁盘和网络使用情况。这有助于进行集群性能监控和故障排查。
3、网络插件和代理:DaemonSet 可用于在每个节点上部署网络插件,例如 Calico、Flannel 或Weave,以提供集群内部和集群外部的网络功能,如网络隔离、负载均衡和服务发现。
4、DaemonSet和Deployment的区别
5、yaml编写
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: logs
namespace: kube-system
labels:
name: kube-logs
spec:
selector:
matchLabels:
name: logs #标签选择器:选择相同标签的Pod
template:
metadata:
labels:
name: logs
spec:
tolerations:
effect: NoSchedule
containers:
image: quay.io/fluentd_elasticsearch/fluentd:v2.5.2
imagePullPolicy: IfNotPresent
检查:
kubectl get ds -n=kube-system -owide
配置滚动更新
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: logs
namespace: kube-system
labels:
name: kube-logs
spec:
updateStrategy:
rollingUpdate:
selector:
matchLabels:
name: logs
template:
metadata:
labels:
name: logs
spec:
tolerations:
effect: NoSchedule
containers:
image: quay.io/fluentd_elasticsearch/fluentd:v2.5.2
imagePullPolicy: IfNotPresent
二、Job
1、概述
在 Kubernetes 中,Job 是一种用于执行短暂任务的资源对象。它用于在集群中创建一个或多个Pod 来完成任务,确保任务成功完成后自动终止
2、yaml编写
apiVersion: batch/v1
kind: Job
metadata:
name: new-job
labels:
name: jobs
spec:
backoffLimit: 6 #总共6个失败才算失败
template:
metadata:
labels:
app: test
spec:
restartPolicy: Never
containers:
image: busybox
imagePullPolicy: IfNotPresent
command: ['/bin/sh','-c']
args: ['echo 1234']
查看
kubectl get job