面试题答案
一键面试- 资源请求与限制:
- 检查部署应用的Pod资源请求(
requests
)和限制(limits
)设置。确认requests
总和未超出集群节点实际可分配资源。 - 比如,如果节点有8GB内存,而所有Pod
requests
总和为10GB,就会导致资源不足。
- 检查部署应用的Pod资源请求(
- 节点资源状态:
- 查看Kubernetes集群节点的资源使用情况,使用
kubectl describe nodes
命令。 - 确认节点是否因为某些原因(如硬件故障、其他进程占用等)导致实际可分配资源减少。
- 查看Kubernetes集群节点的资源使用情况,使用
- 调度器配置:
- 检查Kubernetes调度器的配置,确保调度策略没有异常。
- 例如,是否存在特定的节点亲和性、反亲和性规则,导致Pod只能调度到资源不足的节点上。
- 命名空间资源配额:
- 再次确认命名空间的资源配额设置,确保配额对象(如
ResourceQuota
)没有错误配置。 - 查看是否有其他资源对象(如PersistentVolumeClaims等)也在占用配额。
- 再次确认命名空间的资源配额设置,确保配额对象(如
- 镜像拉取问题:
- 虽然日志提示资源配额不足,但也需检查镜像拉取是否正常。如果镜像拉取消耗过多资源或失败,可能会表现为类似资源不足的情况。
- 确认镜像仓库的连接性、权限等问题。
- 临时资源使用:
- 排查是否存在临时的资源使用高峰,例如某些初始化脚本、一次性任务等在部署时占用大量资源。
- 查看相关Pod的启动日志,确认是否有此类情况。