使用 Pod 拓扑扩展约束调度 Pod

使用 Pod 拓扑扩展约束调度 Pod #

Pod 拓扑扩展约束调度策略可以在 KWOK 集群中应用。

对于此特定场景,集群有 4 个节点,跨越 2 个区域。将应用 Pod 拓扑扩展约束策略,以便在每个区域均匀地调度 Pod。

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

先决条件 #

  • 必须在计算机上安装 KWOK。请参阅安装
  • 安装 kubectl

创建集群 #

kwokctl create cluster

查看集群 #

这确保了集群已成功创建。

kwokctl get clusters

创建节点 #

kwokctl scale node --replicas 4

标记节点 #

以下是节点资源规范

  • 节点:集群中的 4 个工作节点
    • 节点 1
      • 键 = topology.kubernetes.io/region
      • 值 = us-west-1
    • 节点 2
      • 键 = topology.kubernetes.io/region
      • 值 = us-west-1
    • 节点 3
      • 键 = topology.kubernetes.io/region
      • 值 = us-west-2
    • 节点 4
      • 键 = topology.kubernetes.io/region
      • 值 = us-west-2
kubectl label nodes node-000000 topology.kubernetes.io/region=us-west-1
kubectl label nodes node-000001 topology.kubernetes.io/region=us-west-1
kubectl label nodes node-000002 topology.kubernetes.io/region=us-west-2
kubectl label nodes node-000003 topology.kubernetes.io/region=us-west-2

创建部署 #

kubectl apply -f deployment.yaml

此部署创建 4 个副本,其 maxSkew 设置为 1。

观察拓扑分布 #

kubectl get pod -o wide

NAME                        READY   STATUS    RESTARTS   AGE   IP         NODE          NOMINATED NODE   READINESS GATES
fake-app-685c7b9cc7-2n8lv   1/1     Running   0          5s    10.0.2.2   node-000002   <none>           <none>
fake-app-685c7b9cc7-2s2gf   1/1     Running   0          5s    10.0.1.1   node-000001   <none>           <none>
fake-app-685c7b9cc7-7zvm9   1/1     Running   0          5s    10.0.1.2   node-000001   <none>           <none>
fake-app-685c7b9cc7-fhntg   1/1     Running   0          5s    10.0.2.1   node-000002   <none>           <none>

所有 Pod 在各个区域的每个节点之间均匀分布。

删除集群 #

kwokctl delete cluster

结论 #

此示例演示了如何使用 KWOK 根据设置 Pod 拓扑分布约束 策略来模拟调度方案。