概念
DaemonSet能够让所有(或者特定)的节点运行同一个pod。
当节点加入到K8S集群中,pod会被(DaemonSet)调度到该节点上运行,当节点从K8S集群中被移除,被DaemonSet调度的pod会被移除,如果删除DaemonSet,所有跟这个DaemonSet相关的pods都会被删除。
在某种程度上,DaemonSet承担了RC的部分功能,它也能保证相关pods持续运行,如果一个DaemonSet的Pod被杀死、停止、或者崩溃,那么DaemonSet将会重新创建一个新的副本在这台计算节点上。
一般应用于日志收集、监控采集、分布式存储守护进程、ingress等
例子
cat<< EOF > lykops-daemonset.yaml
apiVersion:extensions/v1beta1
kind:DaemonSet
metadata:
name: lykops-daemonset
labels:
software: apache
project: lykops
app: lykops-daemonset
version: v1
spec:
template:
metadata:
labels:
name: lykops-daemonset
software: apache
project: lykops
app: lykops-daemonset
version: v1
spec:
containers:
- name: hostname
image:docker.io/kubernetes/serve_hostname:1.1
EOF
kubectlcreate -f lykops-daemonset.yaml
选择运行节点:当指定.spec.template.spec.nodeSelector,DaemonSet将会在匹配的节点上创建pod。如果都没有指定,DaemonSet在所有node节点上创建pod.
分享到:
相关推荐
此外,Controller如Deployment、StatefulSet、DaemonSet、ReplicationController和ReplicaSet负责应用的自动部署和扩展。Job和CronJob用于后台任务的调度,Horizontal Pod Autoscaling(HPA)则提供了动态调整Pod...
Kubernetes支持多种资源类型,如工作负载类(Pod、ReplicaSet、ReplicationController、Deployment、StatefulSet、DaemonSet)、服务发现和负载均衡(Service、Ingress)、配置和存储(Volume、Persistent Volume、...
2. **工作负载管理**:掌握如何创建和管理Deployment、StatefulSet、DaemonSet等,以确保应用的高可用性和可扩展性。 3. **网络与服务发现**:了解Kubernetes的网络模型,包括Service的类型(ClusterIP、NodePort、...
- **DaemonSet**:确保所有(或某些)节点上运行一个Pod的副本。 - **Deployment**:用于定义应用的部署方式,支持滚动更新和回滚。 - **Ingress**:提供外部访问应用的方式,通常通过HTTP负载均衡器。 - **Job**:...
2. **kind**:定义资源类型,这里是`DaemonSet`,指示我们要创建一个DaemonSet实例。 3. **metadata**:包含资源的元数据,如名称、命名空间和标签。命名空间允许在同一集群内隔离不同的应用或服务。 4. **spec**...
- **Custom Resource Definition (CRD)**: 允许用户自定义资源类型,扩展Kubernetes API。 - **Operators**: 通过自定义控制器实现复杂的自动化操作,如数据库、缓存的管理。 6. **源码分析** - **代码结构**: ...
这里,我们看到一个新的Pod`nginx-daemonset-9s6dd`被创建并运行,证明了DaemonSet的自动恢复能力。 这个实验展示了DaemonSet如何在Kubernetes中确保服务在每个节点上的高可用性,特别是对于需要在每个节点上运行的...
- **DaemonSet**:确保所有(或某些)节点上都运行一个Pod的副本。 - **ServiceAccount**:每个Pod都有一个默认的服务账户,用于控制Pod对Kubernetes API的访问权限。 - **ReplicationController和ReplicaSet**:...
自定义资源定义允许用户定义自己的资源类型。资源配额用于限制资源的使用。安全上下文用于定义Pod的安全相关设置。网络策略用于控制Pod间的访问。持久化存储用于使Pod的状态持久化。 Kubernetes的附加组件包括Addon...
这个版本支持多种工作负载,如Deployment、StatefulSet和DaemonSet,同时提供了服务发现、存储编排、网络策略等功能,使得在大规模集群中管理容器化应用变得更加便捷。 在Kubernetes集群中,主要有两种类型的节点:...
- **自定义资源定义**: 如何使用 CRD 扩展 Kubernetes API,并创建自定义资源类型。 #### 1.4 Kubernetes 集群 这一部分讲解如何管理和维护 Kubernetes 集群: - **集群架构**: 了解 Kubernetes 集群的架构,包括...
- **DaemonSet**:确保集群中的所有节点或某些节点运行一个Pod的拷贝。 - **Deployment**:用于定义应用程序的部署状态。 - **Ingress**:管理进入集群的HTTP/S请求的规则。 - **Job**:创建一次性的任务。 - *...
1. 同样,`kind: DaemonSet`指明这是DaemonSet类型,确保在每个节点上运行一个`kube-proxy`的副本。 2. `containers`部分定义了`kube-proxy`的容器,该容器负责维护节点上服务端点的网络规则,实现内部负载均衡和...
Kubernetes 中常见资源类型及其区别 - **Pod**: Kubernetes 中的基本调度单位,一个 Pod 内可以包含一个或多个容器,但通常建议每个 Pod 包含一个容器。Pod 提供了一个共享的网络命名空间和文件系统,使得容器间...
首先,创建了一个名为`deployment-clusterrole`的ClusterRole,允许创建Deployment、StatefulSet和DaemonSet。ClusterRole的作用范围是整个集群,而不仅仅是特定的namespace。接着,在`app-team1`命名空间内创建了...
在K8s中,每个控制器负责特定的对象,如 Deployment 控制器管理 Deployment 对象,ReplicaSet 控制器确保指定数量的副本运行,而 DaemonSet 控制器则保证每个节点上至少有一个Pod在运行。这些控制器通过...