kubernetes 将容器指定到某些节点运行

原创
2020/06/22 13:00
阅读数 354





假定部署的kubernetes集群有5个节点,一个master节点和4个work节点,默认master节点不调度Pod,所有Pod均在4个work节点上调度Pod。简单列表如下:


hostname
role
node1
master
node2
work
node3 work
node4 work
node5 work



现需要部署2个容器应用A和B,其中A属于业务应用(例如springboot web应用),B属于组件(例如redis、zookeeper等),需要将A应用指定到node2和node3节点上,将应用B指定到node4和node5节点上,通过这种方式将组件和业务应用进行隔离,具体实现如下:


1、查看当前集群节点标签信息:


# 查看当前集群节点标签信息kubectl get nodes --show-labels
# 可以看到每个节点默认初始标签大致如下beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=node2,kubernetes.io/os=linux


2、通过部署类型标签将node2、node3节点标记为业务应用,将node4、node5标记为组件应用:


kubectl label nodes node2 deploy.type=biz_appkubectl label nodes node3 deploy.type=biz_appkubectl label nodes node4 deploy.type=assembly_appkubectl label nodes node5 deploy.type=assembly_app# 确认标签是否生效kubectl get nodes --show-labels


3、然后Pod指定配置如下:


apiVersion: apps/v1kind: Podmetadata:  name: nginx-pod  namespace: my-namespace  labels:    app: nginx-podspec:     nodeSelector:       deploy.type: assembly_app     restartPolicy: Always     containers:     - name: nginx       image: "nginx"       ports:        - containerPort: 80



------------------- 正文结束 -------------------


长按扫码关注微信公众号


Java软件编程之家


本文分享自微信公众号 - Java软件编程之家(gh_b3a87885f8f5)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部