强制将 Pod 从一个工作节点移动到另一个

Car*_*rla 1 openshift kubernetes


我需要强制将 Pod 从一个 Openshift 节点移动到另一个节点,以便进行一些性能测试。从文档看来,在部署配置中设置 nodeSelector 是可行的方法,但根据我的测试,它不起作用。这是我尝试过的测试:

创建 Nginx Pod

oc new-app -f https://raw.githubusercontent.com/sclorg/nginx-ex/master/openshift/templates/nginx.json
Run Code Online (Sandbox Code Playgroud)

Pod 在“ip-10-0-121-229.us-east-2.compute.internal”节点上运行。现在我修补节点选择器,设置一个目标节点:

oc patch dc nginx-example  -p '{"spec":{"template":{"spec":{"nodeSelector":{"kubernetes.io/hostname": "ip-10-0-169-74.us-east-2.compute.internal"}}}}}'
Run Code Online (Sandbox Code Playgroud)

但是 Pod 仍然在同一个节点上运行。即使通过杀死 Pod,它也会重新连接到那里。有什么建议吗?坦尼斯

Tus*_*jan 5

你可以试试这个——

kubectl get pod -o  wide
Run Code Online (Sandbox Code Playgroud)

这将为您提供运行 pod 的 VM

然后执行

kubectl cordon {name_of_that_node_in_which_POD_is_running}
Run Code Online (Sandbox Code Playgroud)

然后删除那些你想与其他节点对齐的豆荚

然后运行

kubectl uncordon {the_node_that_was_cordoned_above}
Run Code Online (Sandbox Code Playgroud)