Kubernetes(k8s) kubectl taint常用命令

kubectl 在 $HOME/.kube 目录中查找一个名为 config 的配置文件。 可以通过设置 KUBECONFIG 环境变量或设置 --kubeconfig 参数来指定其它 kubeconfig 文件。本文主要介绍Kubernetes(K8s)中kubectl taint常用命令。

1、kubectl taint简介

kubectl taint可以给某个Node节点设置taint,Node被设置上taint之后就和Pod之间存在一种相斥的关系,可以让Node拒绝Pod的调度执行,也能将Node已经存在的Pod驱逐出去。

2、kubectl taint语法

kubectl taint NODE NAME KEY_1=VAL_1:TAINT_EFFECT_1 ... KEY_N=VAL_N:TAINT_EFFECT_N

3、kubectl taint命令

1)使用带有键“dedicated”和值“special user”的污点更新节点“web”,作用于“NoSchedule”

kubectl taint nodes web dedicated=special-user:NoSchedule

2)从节点“web”中删除带有键“dedicated”的污点,如果存在则影响“NoSchedule”

kubectl taint nodes web dedicated:NoSchedule-

3)从节点foo中删除所有键dedicated的污点

kubectl taint nodes foo dedicated-

4)在标签mylabel=cjavapy的节点上添加一个带有' dedicated '键的污染

kubectl taint node -l myLabel=cjavapy  dedicated=foo:PreferNoSchedule

5)向节点web添加一个带有键'cjavapy'但没有值的污点

kubectl taint nodes web cjavapy:NoSchedule

注意:一个taint由键、值和效果组成。作为这里的一个参数,它被表示为key=value:effect。
密钥必须以字母或数字开头,可以包含字母、数字、连字符、点和下划线,最多253个字符。
密钥也可以以一个DNS子域前缀和一个' / '开头,比如example.com/my-app。
是可选参数。如果给出,必须以字母或数字开头,并且可以包含字母、数字、连字符、点和下划线,最多63个字符。
必须为NoSchedulePreferNoScheduleNoExecute。目前taint只能应用于节点。

4、选项说明

名称

简称

默认

用法

all

false

选择集群中的所有节点。

allow-missing-template-keys

true

如果为true,当模板中缺少字段或映射键时,

忽略模板中的任何错误。

只适用于golang和jsonpath输出格式。

dry-run

none

必须为“none”、“server”或“client”。

如果客户端策略,则只打印将要发送的对象,

而不发送它。如果是服务器策略,

则提交服务器端请求而不持久化资源。

field-manager

kubectl-taint

用于跟踪字段所有权的管理人员的名称。

output

o

输出格式。以下其中之一: json|yaml|name|

go-template|go-template-file|template|

templatefile|jsonpath|

jsonpath-as-json|jsonpath-file。

overwrite

false

如果为真,则允许覆盖污染,

否则拒绝覆盖现有污染的污染更新。

selector

l

选择器(标签查询)进行筛选,

支持' = ',' == '和' != '

(例如, -l key1=value1,key2=value2)

show-managed-fields

false

如果为true,则在以JSON或YAML格式打印对象时

保留managedFields。

template

当-o=go-template, -o=go-template-file时

要使用的模板文件的模板字符串或路径。

模板格式为golang templates [

http://golang.org/pkg/text/template/#pkg-overview

].

validate

true

如果为true,则在发送输入之前使用模式验证输入

推荐阅读
cjavapy编程之路首页