请列举K8S常用命令整理-调度类命令 ?
参考答案:
在Kubernetes(K8s)中,调度类命令主要用于管理和控制Pod的调度行为。以下是一些常用的调度类命令:
-
设置节点不可调度:
kubectl cordon <node-name>
:该命令将指定的节点标记为不可调度状态,即Kubernetes将不会在该节点上调度新的Pod。
-
取消节点不可调度状态:
kubectl uncordon <node-name>
:该命令将之前被标记为不可调度的节点重新设置为可调度状态,允许Kubernetes在该节点上调度新的Pod。
-
驱逐节点上的Pod:
kubectl drain <node-name> --ignore-daemonsets --force --delete-local-data
:这个命令会驱逐指定节点上的所有Pod,包括DaemonSets管理的Pod(由--ignore-daemonsets
指定)。--force
参数表示强制执行驱逐,而--delete-local-data
参数则表示在驱逐Pod时删除其存储在节点上的本地数据。
-
查看Pod调度在哪个节点:
kubectl get pod <pod-name> -o jsonpath='{.spec.nodeName}'
:通过该命令,你可以查看特定Pod被调度到了哪个节点上。
-
给节点打污点(Taint):
kubectl taint nodes <node-name> key=value:NoSchedule
:通过给节点打污点,你可以阻止Pod被调度到该节点上,除非Pod能够容忍(Tolerate)这些污点。
-
移除节点的污点:
kubectl taint nodes <node-name> key:NoSchedule-
:该命令用于移除节点上的污点,使节点重新变为可调度状态。
-
查看节点的污点和容忍度:
kubectl describe node <node-name>
:通过查看节点的详细信息,你可以了解节点的污点设置以及Pod需要哪些容忍度才能被调度到该节点上。
-
查看集群组件健康状态:
kubectl get cs
:此命令用于检查Kubernetes集群组件的健康状态,包括API服务器、调度器、控制器管理器等。
请注意,使用这些命令时需要谨慎,特别是在执行驱逐或设置污点等操作时,因为它们可能会影响到正在运行的Pod和服务的稳定性。在生产环境中执行这些操作之前,最好先在测试环境中进行验证,并确保你了解每个命令的具体含义和潜在影响。