污染kubernetes live群集中的节点

污染kubernetes live群集中的节点,kubernetes,kubectl,Kubernetes,Kubectl,如何使用YAML文件实现相同的命令,以便执行kubectl apply-f?下面的命令工作正常,但我不知道如何通过清单文件使用它 $ kubectl taint nodes \ 172.4.5.2-3a1d4eeb \ kops.k8s.io/instancegroup=loadbalancer \ NoSchedule 使用-o yaml选项并保存生成的yaml文件,确保删除状态和一些额外的内容,这将应用污染,但为您提供yaml,您

如何使用YAML文件实现相同的命令,以便执行
kubectl apply-f
?下面的命令工作正常,但我不知道如何通过清单文件使用它

$ kubectl taint nodes \
          172.4.5.2-3a1d4eeb \
          kops.k8s.io/instancegroup=loadbalancer \
          NoSchedule

使用
-o yaml
选项并保存生成的yaml文件,确保删除状态和一些额外的内容,这将应用污染,但为您提供yaml,您可以稍后使用它来执行
kubectl apply-f
,并将其保存到版本控制(即使您从命令行创建资源,然后获取yaml并应用它,它也不会重新创建资源,因此这是完全正确的)

注意:大多数命令支持
--dry run
,这将只生成yaml而不创建资源,但在这种情况下,我无法使其与
--dry run
一起工作,可能是此命令不支持该标志

C02W84XMHTD5:~ iahmad$ kubectl taint node minikube dedicated=foo:PreferNoSchedule -o yaml
apiVersion: v1
kind: Node
metadata:
  annotations:
    node.alpha.kubernetes.io/ttl: "0"
    volumes.kubernetes.io/controller-managed-attach-detach: "true"
  creationTimestamp: 2018-10-16T21:44:03Z
  labels:
    beta.kubernetes.io/arch: amd64
    beta.kubernetes.io/os: linux
    kubernetes.io/hostname: minikube
    node-role.kubernetes.io/master: ""
  name: minikube
  resourceVersion: "291136"
  selfLink: /api/v1/nodes/minikube
  uid: 99a1a304-d18c-11e8-9334-f2cf3c1f0864
spec:
  externalID: minikube
  taints:
  - effect: PreferNoSchedule
    key: dedicated
    value: foo
然后将yaml与kubectl一起使用:

apiVersion: v1
kind: Node
metadata:
  name: minikube
spec:
  taints:
  - effect: PreferNoSchedule
    key: dedicated
    value: foo

使用
-o yaml
选项并保存生成的yaml文件,确保删除状态和一些额外的内容,这将应用污染,但为您提供yaml,您可以稍后使用它来执行
kubectl apply-f
,并将其保存到版本控制(即使您从命令行创建资源,然后获取yaml并应用它,它也不会重新创建资源,因此这是完全正确的)

注意:大多数命令支持
--dry run
,这将只生成yaml而不创建资源,但在这种情况下,我无法使其与
--dry run
一起工作,可能是此命令不支持该标志

C02W84XMHTD5:~ iahmad$ kubectl taint node minikube dedicated=foo:PreferNoSchedule -o yaml
apiVersion: v1
kind: Node
metadata:
  annotations:
    node.alpha.kubernetes.io/ttl: "0"
    volumes.kubernetes.io/controller-managed-attach-detach: "true"
  creationTimestamp: 2018-10-16T21:44:03Z
  labels:
    beta.kubernetes.io/arch: amd64
    beta.kubernetes.io/os: linux
    kubernetes.io/hostname: minikube
    node-role.kubernetes.io/master: ""
  name: minikube
  resourceVersion: "291136"
  selfLink: /api/v1/nodes/minikube
  uid: 99a1a304-d18c-11e8-9334-f2cf3c1f0864
spec:
  externalID: minikube
  taints:
  - effect: PreferNoSchedule
    key: dedicated
    value: foo
然后将yaml与kubectl一起使用:

apiVersion: v1
kind: Node
metadata:
  name: minikube
spec:
  taints:
  - effect: PreferNoSchedule
    key: dedicated
    value: foo

我的集群中有两个节点,请看标签

kubectl get nodes --show-labels
NAME          STATUS   ROLES   AGE    VERSION   LABELS
172.16.2.53   Ready    node    7d4h   v1.19.7   type=primary
172.16.2.89   Ready    node    33m    v1.19.7   type=secondary
假设我想用“172.16.2.89”污染节点名称

范例-

kubectl taint node <node-name>  <label-key>=<value>:NoSchedule
kubectl污染节点=:NoSchedule

我的集群中有两个节点,请看标签

kubectl get nodes --show-labels
NAME          STATUS   ROLES   AGE    VERSION   LABELS
172.16.2.53   Ready    node    7d4h   v1.19.7   type=primary
172.16.2.89   Ready    node    33m    v1.19.7   type=secondary
NoExecute表示pod将从节点中逐出

NoSchedule表示调度程序不会将pod放置到节点上


我的集群中有两个节点,请看标签

kubectl get nodes --show-labels
NAME          STATUS   ROLES   AGE    VERSION   LABELS
172.16.2.53   Ready    node    7d4h   v1.19.7   type=primary
172.16.2.89   Ready    node    33m    v1.19.7   type=secondary
假设我想用“172.16.2.89”污染节点名称

范例-

kubectl taint node <node-name>  <label-key>=<value>:NoSchedule
kubectl污染节点=:NoSchedule

我的集群中有两个节点,请看标签

kubectl get nodes --show-labels
NAME          STATUS   ROLES   AGE    VERSION   LABELS
172.16.2.53   Ready    node    7d4h   v1.19.7   type=primary
172.16.2.89   Ready    node    33m    v1.19.7   type=secondary
NoExecute表示pod将从节点中逐出

NoSchedule表示调度程序不会将pod放置到节点上


由于一些syntx错误,我无法写出我的整个问题:所以真正的问题是,我如何使用yaml文件实现上述相同的命令,以便执行“kubectl apply-f taint lbNode.yaml”我发布的命令工作正常并且有污染,但我不知道如何将其转换为yaml格式。由于一些syntx错误,我无法编写我的整个问题:所以真正的问题是如何使用yaml文件实现上述相同的命令,以便我可以执行“kubectl apply-f taint lbNode.yaml”我发布的命令工作正常,但它会受到污染,但我不知道如何将其转换为yaml格式。从技术上讲,第一次调用已经造成了污染。因此,虽然您建议使用
-o yaml
生成yaml是正确的,但您还应该附加
--dry run
,这样您只会得到结果yaml,而不会得到命令自身未执行。请更新您的答案。我尝试了干式运行,但未使用此命令,未知标志:-干式-run@MichaelHausenblasfalg没有使用该命令,尽管它正在使用run命令kubectl run nginx--image=nginx--dry run-o yamlokay,我现在就要运行了:但还有一个澄清:我需要应用整个yaml或只是污染部分?因为my-o yaml很大。@fNameName-o yaml只是为了提供信息,您只需要取出相关部分。从技术上讲,第一次调用已经进行了污染。因此,虽然您建议使用
-o yaml
生成yaml是正确的,但您还应该附加
--干运行
,以便至少,您只获得结果YAML,但命令本身未执行。请更新您的答案。我尝试了干式运行,但未使用此命令,未知标志:-干式-run@MichaelHausenblasfalg没有使用该命令,尽管它正在使用run命令kubectl run nginx--image=nginx--dry run-o yamlokay,我现在就要运行了:但还有一点需要澄清:我需要应用整个yaml还是只应用污染部分?因为my-o yaml很大。@fNameName-o yaml只是为了提供信息,您只需要取出相关部分