k8s上如何调度pod到其他节点上?
1.驱逐节点上全部pod
驱逐节点上pod,新的pod根据调度被调度到其他节点
kubectl drain <node-name> --delete-local-data
or(保留daemonset pod)
kubectl drain <node-name> --ignore-daemonsets --delete-local-data
2.驱逐节点上特定pod
2.1标记节点不可调度(新的pod不会被分配过来)
kubectl cordon <node-name>
2.2删除特定pod,重新调度到其他节点上
kubectl delete pod <pod-name> -n <namespace>
3.定义pod的nodeSelector及affinity调度策略
3.1 nodeSelector(pod被调度到特定标签node上)
1 | apiVersion: v1 |
3.2 affinity亲和性
1 | apiVersion: v1 |
精确地指定 Pod 要调度到特定节点上
4.nodeName
kubectl edit pod <pod-name> -n <namespace>
spec.nodeName //pod重新绑定到特定node上
5.修改pod请求资源requests
kubectl set resources pod <pod-name> -n <namespace> --limits=cpu=500m,memory=512Mi --requests=cpu=300m,memory=256Mi
6.重启pod(重新调度到其他节点上)
kubectl rollout restart deployment <deployment-name> -n <namespace>