使用污点和容忍度调度 Pod

使用污点和容忍度调度 Pod #

可以在 KWOK 中定义污点和容忍度。它在以下情况下很方便

  1. 你在真实集群(KIND、K3D 等)中安装了 KWOK,并且希望将部分或全部 Pod 调度到 KWOK 节点以测试可扩展性。
  2. 你希望在 KWOK 集群内模拟污点和容忍度用例。

现在让我们看看要点 2

此图片展示了测试此场景时你应该看到的内容。在看到此内容后,你可以按照分步指南进行操作。

先决条件 #

创建集群 #

kwokctl create cluster

查看集群 #

  • 这将确保集群已成功创建。
kwokctl get clusters

创建节点 #

kwokctl scale node --replicas 1

污染节点 #

kubectl taint nodes node-000000 kwok.x-k8s.io/node=fake:NoSchedule

部署没有容忍度的 Pod 并观察 #

kubectl apply -f no-toleration-pod.yaml
kubectl get pod

NAME                READY   STATUS    RESTARTS   AGE
no-toleration-pod   0/1     Pending   0          4s

Pod 处于待定状态。

部署具有容忍度的 Pod 并观察 #

kubectl apply -f with-toleration-pod.yaml

kubectl get pod

NAME                    READY   STATUS    RESTARTS   AGE
no-toleration-pod       0/1     Pending   0          20s
with-toleration-pod     1/1     Running   0          2s

只有具有容忍度的 Pod 处于运行状态。

删除集群 #

kwokctl delete cluster

结论 #

此示例演示了如何使用 KWOK 根据 污点和容忍度 策略模拟调度场景。