假定部署的kubernetes集群有5个节点,一个master节点和4个work节点,默认master节点不调度Pod,全部Pod均在4个work节点上调度Pod。简单列表以下:node
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节点上,经过这种方式将组件和业务应用进行隔离,具体实现以下:linux
一、查看当前集群节点标签信息:nginx
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
二、经过部署类型标签将node二、node3节点标记为业务应用,将node四、node5标记为组件应用:
web
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
三、而后Pod指定配置以下:redis
apiVersion: apps/v1kind: Podmetadata: name: nginx-pod namespace: my-namespace labels: app: nginx-podspec: nodeSelector: assembly_app : restartPolicy: Always containers: name: nginx image: "nginx" ports: containerPort: 80
------------------- 正文结束 -------------------spring
长按扫码关注微信公众号编程
Java软件编程之家api
本文分享自微信公众号 - Java软件编程之家(gh_b3a87885f8f5)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。springboot