博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用 label 控制 Pod 的位置 - 每天5分钟玩转 Docker 容器技术(128)
阅读量:7116 次
发布时间:2019-06-28

本文共 963 字,大约阅读时间需要 3 分钟。

hot3.png

默认配置下,Scheduler 会将 Pod 调度到所有可用的 Node。不过有些情况我们希望将 Pod 部署到指定的 Node,比如将有大量磁盘 I/O 的 Pod 部署到配置了 SSD 的 Node;或者 Pod 需要 GPU,需要运行在配置了 GPU 的节点上。

Kubernetes 是通过 label 来实现这个功能的。

label 是 key-value 对,各种资源都可以设置 label,灵活添加各种自定义属性。比如执行如下命令标注 k8s-node1 是配置了 SSD 的节点。

kubectl label node k8s-node1 disktype=ssd

然后通过 kubectl get node --show-labels 查看节点的 label。

disktype=ssd 已经成功添加到 k8s-node1,除了 disktype,Node 还有几个 Kubernetes 自己维护的 label。

有了 disktype 这个自定义 label,接下来就可以指定将 Pod 部署到 k8s-node1。编辑 nginx.yml:

在 Pod 模板的 spec 里通过 nodeSelector 指定将此 Pod 部署到具有 label disktype=ssd 的 Node 上。

部署 Deployment 并查看 Pod 的运行节点:

全部 6 个副本都运行在 k8s-node1 上,符合我们的预期。

要删除 label disktype,执行如下命令:

kubectl label node k8s-node1 disktype-

 - 即删除。

不过此时 Pod 并不会重新部署,依然在 k8s-node1 上运行。

除非在 nginx.yml 中删除 nodeSelector 设置,然后通过 kubectl apply 重新部署。

Kubernetes 会删除之前的 Pod 并调度和运行新的 Pod。

Deployment 相关操作就讨论到这里,下一节我们学习 DaemonSet。

书籍:

1.《每天5分钟玩转Docker容器技术》

2.《每天5分钟玩转OpenStack》

转载于:https://my.oschina.net/u/2397560/blog/1621450

你可能感兴趣的文章
使用 Sphinx 撰写技术文档并生成 PDF 总结
查看>>
webpack 最简打包结果分析
查看>>
NLPIR:数据挖掘深度决定大数据应用价值
查看>>
一个游戏拨账系统的数据库结算设计
查看>>
Blockchain和Tangle哪一个是未来?
查看>>
github 上有趣又实用的前端项目(持续更新,欢迎补充)
查看>>
【Under-the-hood-ReactJS-Part6】React源码解读
查看>>
matlab绘制peano(皮亚诺)曲线和koch(科赫曲线,雪花曲线)分形曲线
查看>>
Mybatis之设计模式之迭代器模式
查看>>
小程序TAB列表切换内容动态变化,scrollview高度根据内容动态获取
查看>>
swoole_table 实现原理剖析
查看>>
你需要知道面试中的10个JavaScript概念
查看>>
Java源码阅读之HashMap - JDK1.8
查看>>
Dell服务器系统安装后无法正常进入系统
查看>>
Silverlight/Windows8/WPF/WP7/HTML5周学习导读(9月17日-9月23日)
查看>>
Tap-Ahead:让移动搜索更加便捷的解决之道
查看>>
华为vlan划分,单臂路由以及静态路由
查看>>
3.VMware vsphere 5.0新体验-安装VMware Center
查看>>
趣题: 一道面试题的解法
查看>>
Android应用程序启动过程源代码分析(5)
查看>>