kubernets之DaemonSet
一 k8s资源之DaemonSet
1.1 介绍认识DaemonSet
DaemonSet可以理解为一种比较特殊的RS,DaemonSet的作用是永远保持被指定的节点只运行一个pod的副本,可用作集群的监控和日志收集等作用
另外一点的是,可能有些节点被设置为不可调度pod的时候,仍然可以使用DaemonSet来调度到该节点,因为DS可以绕过调度器进行调度到响应的节点上
二 创建一个DaemonSet
2.1 实现一个DaemonSet的yml的文件来通过该文件来创建一个DaemonSet
apiVersion: apps/v1beta2
kind: DaemonSet
metadata:
name: ex-daemonset
spec:
selector:
matchLabels:
app: k8s
template:
metadata:
labels:
app: k8s
spec:
# nodeSelector:
# machine: centos
containers:
- name: main
image: luksa/ssd-monitor
2.2 查看创建出来的DaemonSet
[root@node01 Chapter04]# k get po --show-labels -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES LABELS
ex-daemonset-dv4p5 1/1 Running 0 7m32s 10.244.1.11 node02 <none> <none> app=k8s,controller-revision-hash=697679dd9c,pod-template-generation=1
ex-daemonset-dzfjh 1/1 Running 0 7m32s 10.244.2.10 node01 <none> <none> app=k8s,controller-revision-hash=697679dd9c,pod-template-generation=1
可以看到即使没指定副本数量,仍然在每个node上面创建出来了一个pod
2.3 指定DaemonSet到指定的node而非所有的node节点的配置
apiVersion: apps/v1beta2
kind: DaemonSet
metadata:
name: ex-daemonset
spec:
selector:
matchLabels:
app: k8s
template:
metadata:
labels:
app: k8s
spec:
nodeSelector:
machine: centos
containers:
- name: main
image: luksa/ssd-monitor
2.4 当设置了nodeSelector的时候只有node节点带有machine的centos机器才会被调度上去
[root@node01 Chapter04]# k get ds
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
ex-daemonset 0 0 0 0 0 machine=centos 31s [root@node01 Chapter04]# k get po
No resources found in default namespace.
可以看到当在创建的daemonset里面添加nodeselector的时候,pod只会被调度到带有标签machine=centos的上面,而现在的节点都没有该标签,所以不会调度到任何节点上
2.5 修改其中一个node的标签,观察是否能够调度到该节点上
[root@node01 Chapter04]# k label node node02 machine=centos
node/node02 labeled
[root@node01 Chapter04]# k get po
NAME READY STATUS RESTARTS AGE
ex-daemonset-xbvhh 0/1 ContainerCreating 0 5s
当向node添加标签之后,马上就可以调度到该node节点了
2.6 删除该node节点上面的标签,观察该pod是否也会被删除
[root@node01 Chapter04]# k label node node02 machine=debian --overwrite
node/node02 labeled
[root@node01 Chapter04]# k get po -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
ex-daemonset-xbvhh 1/1 Terminating 0 2m38s 10.244.1.13 node02 <none> <none>
可以看到当修改了标签之后,由于node 的标签已经不和DS匹配,响应的pod也被删除
kubernets之DaemonSet的更多相关文章
- 【07】Kubernets:资源清单(控制器 - DaemonSet)
写在前面的话 前面讲解了 Pod / ReplicaSet / Deployment 的资源清单,我们这里谈一下 DaemonSet 的资源清单. 之前说过,DaemonSet 控制器能够保证资源在每 ...
- 010.kubernets的调度系统之daemonset
daemonset简单操作使用 Deployment 是 Kubernetes 中用于处理无状态服务的资源,而 StatefulSet 是用于支持有状态服务的资源,这两种不同的资源从状态的角度对服务进 ...
- Kubernets 资源类型简介
# Node 代表 Kubernets 集群运行的宿主物理机或者虚拟服务器, 为容器提供必要的计算资源: 内存 与 CPU 等. # Pod 最底层的抽象. 一个 Pod 中可以包含一个或者多个运行的 ...
- ASP.NET Core on K8S深入学习(3-2)DaemonSet与Job
本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 上一篇<3-1 Deployment>中介绍了Deployment ...
- kubernets之Deployment资源
一 声明式的升级应用 1.1 回顾一下kubernets集群里面部署一个应用的形态应该是什么样子的,通过一副简单的图来描述一下 通过RC或者RS里面的模板创建了三个pod,之后通过一个servci ...
- kubernets之卷
一 卷的由来以及种类和常用的卷的类型 前面介绍了大部分都是pod的管理以及在集群内部和集群外部如何访问pod,但是我们也了解到,pod是有生命周期的,当pod所在节点下线,或者等其他原因原因导致pod ...
- Kubernets搭建Kubernetes-dashboard
接上篇文章,在已经部署好Kubernetes的基础上部署kubernetes-dashboard,它是官方提供的用户管理Kubernets集群可视化工具:部署dashboard其实和在kubernet ...
- 【云计算】K8S DaemonSet 每个node上都运行一个pod
Kubernetes容器集群中的日志系统集成实践 Kubernetes是原生的容器编排管理系统,对于负载均衡.服务发现.高可用.滚动升级.自动伸缩等容器云平台的功能要求有原生支持.今天我分享一下我们在 ...
- 单机部署 kubernets 方法汇总
#minikube : 可以方便的在本机用虚拟机创建一个开箱即用的Kubernetes集群 #kubeadm : 可以自动化的将多台Ubuntu或者CentOS主机组建成集群 #nanokube,ki ...
随机推荐
- 【Django admin 中文配置】
打开settings.py文件,找到语言编码.时区的设置项,将内容改为如下: [其中 zh-Hans是简体中文 zh-Hant是繁体中文] LANGUAGE_CODE = 'zh-Hans' # LA ...
- centos7下安装iostat命令
[root@node01 yum.repos.d]# yum intall -y sysstat Loaded plugins: fastestmirror No such command: inta ...
- 微信小程序 rich-text 修改照片
<view> <rich-text nodes="{{delcon}}" /> </view> data: { delcon:'' }, var ...
- DRF使用超链接API实现真正RESTful
很多API并不是真正的实现了RESTful,而应该叫做RPC (Remote Procedure Call 远程过程调用),Roy Fielding曾经提到了它们的区别,原文如下: I am gett ...
- iOS崩溃治理--开篇
去年我开始负责iOS崩溃治理的工作,从原来的万分之五崩溃率,一直到现在的万分之一左右的崩溃率,期间踩了很多坑,因此想和大家分享一下,希望能对大家有所帮助,也欢迎大家私信交流. 如果你打算开始治理崩溃的 ...
- 本地TOMCAT启动打包项目(WAR)
首先打个包,右击项目-->Export... 选择WEB-->WAR file-->Next 选个放置地址,勾选红框处-->finish 找到自己的tomcat目录 ...
- Kubernetes官方java客户端之一:准备
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- ProceedingJoinPoint 某些方法记录一下
转载与百度知道,记录一下.遇到在去看API 官方文档//拦截的实体类 Object target = point.getTarget(); //拦截的方法名称 String methodName = ...
- 重温Java JDK安装,希望帮助更多的学习在路上的小白
JDK卸载和安装 现在JDK已经升级到JDK11版本了,但是JDK1.8(JDK8)仍然有很多小伙伴在使用,这里也记录一下jdk1.8的下载及安装过程,对于刚学习java的小伙伴可以参考,熟手可忽略, ...
- spring boot 部署到tomcat
网上很多文章描述过,当我按步骤做时会抛各种错误,最后记录下我的做法(成功发布到本地 Tomcat9 ): 1.将项目的启动类Application.java继承SpringBootServletIni ...