面试题答案
一键面试- 检查资源配额:
- 确认命名空间是否有资源配额限制,例如CPU、内存等资源配额不足,导致Pod无法调度。可通过
kubectl describe namespace <namespace - name>
查看命名空间的资源配额情况。
- 确认命名空间是否有资源配额限制,例如CPU、内存等资源配额不足,导致Pod无法调度。可通过
- 查看节点资源:
- 使用
kubectl get nodes
查看节点的资源使用情况,包括CPU、内存、可调度Pod数量等。若节点资源不足,可能无法调度新的Pod。 - 例如,节点内存使用率过高,新的需要一定内存的Pod可能会处于Pending状态。
- 使用
- 检查Pod调度策略:
- 查看Pod的
nodeSelector
、affinity
和anti - affinity
配置。若配置不合理,可能导致无法找到合适的节点进行调度。例如,nodeSelector
中指定的节点标签与实际节点标签不匹配。 - 例如,Pod设置了只能调度到具有
disktype: ssd
标签的节点,但集群中没有这样标签的节点。
- 查看Pod的
- 查看节点状态:
- 用
kubectl describe node <node - name>
检查节点状态,查看是否有NotReady
、OutOfDisk
、MemoryPressure
等影响Pod调度的条件。 - 如节点处于
NotReady
状态,可能是网络问题、kubelet故障等导致,Pod无法调度到该节点。
- 用
- 检查镜像拉取问题:
- 在
kubectl describe pod <pod - name>
的输出中查看是否有镜像拉取相关的错误信息。例如镜像仓库认证失败、镜像不存在或网络问题导致无法拉取镜像。 - 若镜像仓库需要认证,确认
imagePullSecrets
配置是否正确。
- 在
- 查看Pod依赖:
- 若Pod依赖其他资源(如PVC、ConfigMap、Secret等),检查这些依赖资源是否正确创建和配置。例如PVC没有绑定到合适的PV,可能导致Pod无法启动。
- 查看
kubectl describe pod <pod - name>
中关于依赖资源的事件信息,确认是否存在相关问题。