用 label 控制 Pod 的位置 - 每天5分钟玩转 Docker 容器技术(128)
2018-02-12 05:39
525 查看
默认配置下,Scheduler 会将 Pod 调度到所有可用的 Node。不过有些情况我们希望将 Pod 部署到指定的 Node,比如将有大量磁盘 I/O 的 Pod 部署到配置了 SSD 的 Node;或者 Pod 需要 GPU,需要运行在配置了 GPU 的节点上。Kubernetes 是通过 label 来实现这个功能的。label 是 key-value 对,各种资源都可以设置 label,灵活添加各种自定义属性。比如执行如下命令标注 k8s-node1 是配置了 SSD 的节点。
在 Pod 模板的
全部 6 个副本都运行在 k8s-node1 上,符合我们的预期。要删除 label
不过此时 Pod 并不会重新部署,依然在 k8s-node1 上运行。
除非在 nginx.yml 中删除
Kubernetes 会删除之前的 Pod 并调度和运行新的 Pod。Deployment 相关操作就讨论到这里,下一节我们学习 DaemonSet。
[b]书籍:[/b]1.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html
2.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html
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。
[b]书籍:[/b]1.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html
2.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html
相关文章推荐
- 用 label 控制 Pod 的位置 - 每天5分钟玩转 Docker 容器技术(128)
- 用 label 控制 Pod 的位置 - 每天5分钟玩转 Docker 容器技术(128)
- 用 label 控制 Pod 的位置 - 每天5分钟玩转 Docker 容器技术(128)
- 用 Label 控制 Service 的位置 - 每天5分钟玩转 Docker 容器技术(106)
- 用 Label 控制 Service 的位置 - 每天5分钟玩转 Docker 容器技术(106)
- 用 Label 控制 Service 的位置 - 每天5分钟玩转 Docker 容器技术(106)
- 用 Label 控制 Service 的位置 - 每天5分钟玩转 Docker 容器技术(106)
- 通过 Service 访问 Pod - 每天5分钟玩转 Docker 容器技术(136)
- 通过 Service 访问 Pod - 每天5分钟玩转 Docker 容器技术(136)
- 通过 Service 访问 Pod - 每天5分钟玩转 Docker 容器技术(136)
- 通过 Service 访问 Pod - 每天5分钟玩转 Docker 容器技术(136)
- Docker 如何支持多种日志方案?- 每天5分钟玩转 Docker 容器技术(88)
- 在 overlay 中运行容器 - 每天5分钟玩转 Docker 容器技术(51)
- 如何访问 Service?- 每天5分钟玩转 Docker 容器技术(99)
- 在 overlay 中运行容器 - 每天5分钟玩转 Docker 容器技术(51)
- 容器常用操作 - 每天5分钟玩转 Docker 容器技术(25)
- 用 volume container 共享数据 - 每天5分钟玩转 Docker 容器技术(42)
- docker managed volume - 每天5分钟玩转 Docker 容器技术(40)
- 创建 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(76)
- 定时执行 Job - 每天5分钟玩转 Docker 容器技术(135)