云原生 | k8s节点打标签

pod可以根据要求让pod调度到想要的节点上运行,或者不在某节点运行。

1、查看现有节点运行环境已有标签

kubectl get nodes --show-labels

2、添加标签

#给节点node1打上标签env=uat
kubectl label node node1 env=uat

#给节点node2打上标签env=prod
kubectl label node node2 env=prod

#查看生成的标签
kubectl get node --show-labels  

3、指定标签分发pod

例子1:

1.创建pod时候指定调度节点

cat nginx.yaml
 增加以下参数

nodeSelector:        #添加此行  
        env: uat      #指定标签
[root@k8s-master-1 k8s]#cat nginx.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-node1
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      nodeSelector:        #添加此行  
        env: uat      #指定标签
      containers:
      - name: nginx-node1
        image: nginx:latest
        ports:
        - containerPort: 80

 2.执行生成pod

kubectl apply -f nginx.yaml

3.查看分发pod在哪个node上

kubectl get pods -o wide

例子2:

修改已经生成的pod,调度到指定节点

1.当前节点pod重启多次无法正常运行,尝试调度到其他节点

kubectl get pod -n drugs-erp -o wide

2.查看当前标签情况

kubectl get node --show-labels

3.通过修改deplyment控制器调度到其他节点

查看控制器

kubectl get deploy -n drugs-erp

 4.修改控制参数

kubectl edit  deploy drugs-erp-store  -n drugs-erp -o yaml

#同样增加以下参数

nodeSelector:        #添加此行  
       mmp: myj      #指定标签

 5.重新调度新的节点,查看pod已经正常服务

kubectl get pod -n drugs-erp -o wide

5、删除标签

#删除节点1标签env=uat
kubectl label node node1 env-


#删除节点2标签env=prod
kubectl label node node2 env-

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值