kubernetes(五)------taint(排斥)和toleration(亲和)

kubernetes集群中,master机器,分配任务给worker node机器时,会根据任务的不同要求,比如对内存的要求等,分配给不同符合需求的worker node。所以就有了toleration和taint的这种偏好设置。

1. Toleration 和 Taint 概念

Toleration是 pod 的一种属性(偏好或硬性要求),它使 pod 被吸引到一类特定的节点。比如一个节点内存比较大,会吸引需要大内存的pod。

Taint 则相反,它使 节点 能够 排斥 一类特定的 pod。

Taint 和 toleration 相互配合,可以用来避免 pod 被分配到不合适的节点上。每个节点上都可以应用一个或多个 taint ,这表示对于那些不能容忍这些 taint 的 pod,是不会被该节点接受的。如果将 toleration 应用于 pod 上,则表示这些 pod 可以(但不要求)被调度到具有匹配 taint 的节点上

2. taint一个worker node

kubectl taint node node1 node-type=prod:NoSchedule  (这里的node1根据你真实的node名字来写)

3.schedule一个pod到指定环境

(1)新建一个devpod.yaml的文件,内容如下:

apiVersion: v1

kind: Pod

metadata:

    name: devpod

    labels:

        app: busybox

spec:

   containers:

   - name: dev

         image: busybox

         command: ['sh', '-c', 'echo Hello Kubernetes! && sleep 3600']

(2)根据步骤(1)中的yaml文件,创建pod

kubectl create -f devpod.yaml

4. 允许一个pod被schedule到一个pod环境

(1)创建一个deploypod.yaml文件

apiVersion: apps/v1

kind: Deployment

metadata:

    name: prod

spec:

   replicas: 1

   selector:

     matchLabels:

       app: prod

   template:

       metadata:

            labels:

                app: prod

       spec:

          containers:

          - args:

              - sleep

              - "3600"

              image: busybox

              name: main

          tolerations:

          - key: node-type

               operator: Equal

               value: prod

               effect: NoSchedule

(2)以下命令,新建一个deployment(yaml文件里面的kind是pod,那么以下命令创建的就是pod;kind如果是deployment,那么以下命令新建的就是deployment)

kubectl create -f deploypod.yaml

5. 检查每个pod是否被schedule了

kubectl get pods -o wide

6. 检查production pod的toleraion属性

kubectl get pods <pod_name> -o yaml

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值