K8S 之使用DaemonSet在每个节点上运行一个POD

一、DaemonSet作用

Relicationcontroller和ReplicaSet都用于在Kubernetes集群上运行部署特定数量的pod。但是,当你希望pod在集群中的每个节点上运行时,就可使用DaemonSet。

apiVersion: apps/v1beta2
kind: DaemonSet
metadata:
  name: ssd-monitor
  namespace: test
spec:
  selector:
    matchLabels:
      app: ssd-monitor
  template:
    metadata:
      labels:
        app: ssd-monitor
    spec:
      nodeSelector:            #指定节点标签disk带有ssd的主机上运行
        disk: ssd                  #如没有nodeSelector,即会在所有节点上运行一个POD
      containers:
        - name: main
          image: luksa/ssd-monitor
[[email protected] k8s-yaml-file]# kubectl get nodes -l disk=ssd
#查看带有disk=ssd的标签
NAME                      STATUS   ROLES         AGE   VERSION
test-nodes1.cedarhd.com   Ready    master,node   66d   v1.15.2
test-nodes2.cedarhd.com   Ready    master,node   66d   v1.15.2
[[email protected] k8s-yaml-file]# kubectl label node test-nodes1.cedarhd.com disk=hhd --overwrite
#修改其中一个节点的标签不带disk=ssd
node/test-nodes1.cedarhd.com labeled
[[email protected] k8s-yaml-file]# kubectl get nodes -l disk=ssd
NAME                      STATUS   ROLES         AGE   VERSION
test-nodes2.cedarhd.com   Ready    master,node   66d   v1.15.2
[[email protected] k8s-yaml-file]# kubectl create -f kubia-daemonset.yaml
#创建DaemonSet
daemonset.apps/ssd-monitor created
[[email protected] k8s-yaml-file]# kubectl get pod -o wide -n test
NAME                READY   STATUS    RESTARTS   AGE   IP           NODE                      NOMINATED NODE   READINESS GATES
ssd-monitor-q7kbz   1/1     Running   0          16s   172.7.22.6   test-nodes2.cedarhd.com   <none>           <none>
[[email protected] k8s-yaml-file]# kubectl get ds -n test
#查看DaemonSet
NAME          DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
ssd-monitor   1         1         1       1            1           disk=ssd        5m7s

原文地址:https://blog.51cto.com/12965094/2485526

时间: 2024-10-25 15:40:24

K8S 之使用DaemonSet在每个节点上运行一个POD的相关文章

k8s集群启动了上万个容器(一个pod里放上百个容器,起百个pod就模拟出上万个容器)服务器超时,无法操作的解决办法

问题说明: 一个POD里放了百个容器,然后让K8S集群部署上百个POD,得到可运行上万个容器的实验目的. 实验环境:3台DELL裸机服务器,16核+64G,硬盘容量忽略吧,上T了,肯定够. 1.一开始运行5000多个容器的时候(也就50个POD),集群部署后,10几分钟就起来了,感觉还不错. 2.增加压力,把50个POD增加到100个POD,感觉也不会很长时间,都等到下班后又过了半个小时,还是没有起来,集群链接缓慢,使用kubect里面的命令,好久都出不来信息,UI界面显示服务器超时. 心想,完

在 Docker 上运行一个 RESTful 风格的微服务

tags: Microservice Restful Docker Author: Andy Ai Weibo:NinetyH GitHub: https://github.com/aiyanbo/docker-restful-demo 实现构思 1. 使用 Maven 进行项目构建 2. 使用 Jersey 实现一个 RESTful 风格的微服务 3. 在 Docker 里面执行 mvn package 对项目打包 4. 在 Docker 容器里运行这个微服务 实现一个微服务 场景 & 需求

K8S 之概念DaemonSet 对象

什么是 DaemonSet? 编写 DaemonSet 规约 必需字段 Pod 模板 Pod Selector 仅在某些节点上运行 Pod 如何调度 Daemon Pod 与 Daemon Pod 通信 更新 DaemonSet DaemonSet 的可替代选择 init 脚本 裸 Pod 静态 Pod Replication Controller 什么是 DaemonSet? DaemonSet 确保全部(或者某些)节点上运行一个 Pod 的副本.当有节点加入集群时,也会为他们新增一个 Pod

如何用Rancher在AWS上运行Kubernetes

众所周知,亚马逊有EC2容器服务,它是亚马逊用于运行Docker容器的解决方案.不过我觉得EC2容器服务不怎么好用,所以现在我要在AWS上测试Rancher和Kubernetes. Kubernetes是一个用以自动化部署.弹性伸缩以及管理容器化应用程序的开源系统.Rancher是一个可用于企业内部的完整的容器管理和运行平台,它提供企业级的访问控制和容器编排. Rancher环境部署 第一步,我会按默认的向导创建一个新的虚拟私有云,这个虚拟私有云是为Rancher准备的.接下来的事情就是创建一个

[MapReduce]MapReduce调试:在TaskTracker节点上查看打印信息

业务背景 MapReduce编程模型的线上调试并不方便,它不像本地Java程序那样可以很方便地及时看到输出结果,本文将提供一种比较简捷的方式对MapReduce Job进行调试. 分析 完全并行模式下的MapReduce Job,使用 System.out.println("xxx"); 并不会打印到控制台上,因为完全并行模式下的MR Job是分布在集群上各个TaskTracker节点上运行的,因此,使用System.out.println的结果,是将打印信息打印到实际运行的Slave

从认证到调度,K8s 集群上运行的小程序到底经历了什么?

作者 | 声东? 阿里云售后技术专家 导读:不知道大家有没有意识到一个现实:大部分时候,我们已经不像以前一样,通过命令行,或者可视窗口来使用一个系统了. 前言 现在我们上微博.或者网购,操作的其实不是眼前这台设备,而是一个又一个集群.通常,这样的集群拥有成百上千个节点,每个节点是一台物理机或虚拟机.集群一般远离用户,坐落在数据中心.为了让这些节点互相协作,对外提供一致且高效的服务,集群需要操作系统.Kubernetes 就是这样的操作系统. 比较 Kubernetes 和单机操作系统,Kuber

如何确定Hadoop守护进程分别会在哪台机器上运行

经过一段时间的配置,Hadoop环境总算运行起来了,但是呢,为何主节点就没有跑tasktracker和datanode进程,slave节点也没有跑secondary进程,Hadoop是如何控制的呢? 经过看权威指南(267页)和跟群里同学讨论,还有自己测试,最终确定: tasktracker和datanode这两个守护进程 —— 只会在conf/slaves文件里指定的那些节点上运行 secondarynamenode 这个守护进程 —— 只会在conf/masters文件里指定的那个节点上运行

在集群上运行caffe程序时如何避免Out of Memory

不少同学抱怨,在集群的GPU节点上运行caffe程序时,经常出现"Out of Memory"的情况.实际上,如果我们在提交caffe程序到某个GPU节点的同时,指定该节点某个比较空闲的gpu id,便可以避免"Out of Memory"的情况.步骤如下: 1. 在提交任务前,制作一个带有“nvidia-smi”命令的run_gpu.sh文件 #!/bin/bash #$ -V #$ -cwd #$ -j y #$ -S /bin/bash nvidia-smi

Spark 在yarn上运行模式详解:cluster模式和client模式

1.    官方文档 http://spark.apache.org/docs/latest/running-on-yarn.html 2.    配置安装 2.1.安装hadoop:需要安装HDFS模块和YARN模块,HDFS必须安装,spark运行时要把jar包存放到HDFS上. 2.2.安装Spark:解压Spark安装程序到一台服务器上,修改spark-env.sh配置文件,spark程序将作为YARN的客户端用于提交任务 export JAVA_HOME=/usr/local/jdk1