文档章节

Kubernetes的DaemonSet(下篇)

o
 osc_w9s1w4o0
发布于 2019/03/29 00:07
字数 904
阅读 12
收藏 0

精选30+云产品,助力企业轻松上云!>>>

用Daemon Pod来进行通信

使用Pod来再DaemonSet中通信的手段有:

  • 推的方式:在DaemonSet中的Pod会被配置成发送更新到如状态数据库这样的服务。这些都没有客户端。

  • IP+端口方式:DaemonSet中的Pod可以使用主机端口。因此通过node的IP就可以访问。客户端知道了node的IP,就可以用实现约定配置好的端口进行通信了。

  • DNS方式:用同样的Pod选择器创建一个headless service,可以通过DNS使用终端资源或者获取数据的方式来探测DaemonSets。

  • 服务方式:用同样的Pod选择器来创建一个服务,使用这个服务来与任意一个node的后台进程通信。

 

更新一个DaemonSet

node标签一旦被改变,DaemonSet会迅速的添加Pod到最新匹配的node上,并且从最新不匹配的node上删除Pod。

修改DaemonSet创建的Pod是可以修改的。但是Pod不允许所有的字段都被更新。而且,DaemonSet控制器会使用原来的模板进行下一次的node创建。

DaemonSet也是可以删除的。如果用kubectl指定了--cascade=false,那Pod就会留在node上。可以用一个不同的模板创建一个新的DaemonSet。当有匹配的标签出现时,可以用不同模板生成的新的DaemonSet来识别出所有已经存在的Pods。如果Pod模板不匹配,则不会修改或者删除Pod。

在Kuberntes版本1.6或以后,可以使用DaemonSet的滚动更新。

 

DaemonSet的可选项

初始化脚本

直接在node上运行守护进程肯定是可以的(比如使用init,upstartd或者systemd方式来启动)。但是如果使用DaemonSet会有很多好处。

  • 像管理应用一样监控和管理守护进程。

  • 与应用使用相同的配置语言和工具(如Pod templates,Kubectl)

  • 在container里使用资源限制运行守护进程增强了守护线程和app容器的隔离性。然而,这个也可以通过在container而不是pod里运行daemon进程完成。

裸Pod

直接指定node来创建Pod是可以实现的。但是DaemonSet可以自动替换由于任何原因被删除的或者停止的Pod,以防止node挂了或者其他类型的node维护,比如kernel升级。

静态Pod

通过在被Kubelet监听的目录下创建文件的方式生成Pod是可以实现的,它们被称为静态Pod。不像DaemonSet,静态Pod不能被kubectl或者其他K9s API客户端管理。静态Pod不依赖apiserver。一般是集群启动时候用到的。在后续的版本中,静态Pod可能被废弃。

Deployment

DaemonSet与Deployment的相同点是他们都用于创建Pod,这些Pod是不期望被意外停止的。

使用Deployment可以管理无状态服务,如前端服务,它需要扩容和缩容指定的副本数,还可以滚动升级。而使用DaemonSet最重要的是产生一个Pod一直运行在指定的或者全部的宿主机上,或者是需要比其他的Pod先启动的场景。

 

相关阅读

 

《两地书》--K8s基础知识

Kubernetes的污点和容忍(上篇)

Kubernetes的污点和容忍(下篇)

Kubernetes的DaemonSet(上篇)

 

 

作者简介

作者是一个有美国硅谷、日本东京工作经验,十二年坚持一线写代码的程序媛。坚持原创文章。欢迎技术交流!


o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

SikuliX简介及安装

一、简单介绍 SikuliIDE和Sikuli Script就是现在的SikuliX,最新版本是SikuliX1.1.0, 部分兼容Sikuli JAVA API,支持Python和Ruby,SikuliX通过定位图像和键盘鼠标来操作GUI(图形化用户界面...

osc_r5t7sskd
52分钟前
6
0
Above the Median

Above the Median 农夫约翰把他的N(1 <= N <= 100,000)奶牛排在一排来衡量他们的高度,牛i有:高度H_I(1 <= H_I <= 1,000, 000,000)纳米 – 因为FJ认为他需要精确测量!他想选择一些连续...

osc_3k29rnjy
54分钟前
6
0
Above the Median

Above the Median 农夫约翰把他的N(1 <= N <= 100,000)奶牛排在一排来衡量他们的高度,牛i有:高度H_I(1 <= H_I <= 1,000, 000,000)纳米 – 因为FJ认为他需要精确测量!他想选择一些连续...

osc_8nnvoyb1
55分钟前
9
0
python3连接mysql 稍微进阶 + 日期处理

1.踩了个操作中文的坑,结果发现之前的文章中有强调了,在连接处加:charset="utf8" conn = pymysql.connect(host = '127.0.0.1', unix_socket = '/tmp/mysql.sock', user = 'root' , passwo......

osc_fipgtxy8
56分钟前
6
0
Above the Median

Above the Median 农夫约翰把他的N(1 <= N <= 100,000)奶牛排在一排来衡量他们的高度,牛i有:高度H_I(1 <= H_I <= 1,000, 000,000)纳米 – 因为FJ认为他需要精确测量!他想选择一些连续...

osc_cj3zzdzw
57分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部