测验:排障与 etcd
Pod 处于 Pending 状态,并且事件中显示“0/3 个节点可用:3 Insufficient cpu”。你首先应该怀疑什么?
- 所有请求的 CPU 在过滤阶段都被淘汰,因为它们大于所有节点的分配容量(首先检查单位符号是否有错误)。
- 图片注册认证失败,无法接收。
- 由于未安装 CNI 插件,该节点尚未准备就绪。
- PVC尚未绑定
RuntimeClass nvidia 已注册,但为什么 Pod 甚至无法以“未配置 nvidia 运行时”的方式启动?
- RuntimeClass只是一个处理程序名称标签,在节点的容器运行时中没有与该名称对应的运行时设置。
- 这是因为 RuntimeClass 名称写错了。
- 这是因为节点上没有安装GPU驱动。
- 因为pod没有请求nvidia.com/gpu资源。
看到which nvidia-ctk输出节点上的路径后关闭工具包安装时发生事故的案例有什么教训?
- 如果有二进制,则可以认为是set。
- helm 总是直接更改节点的系统配置。
- 必须为每个节点单独创建 RuntimeClass。
- 二进制文件的存在和运行时配置为使用它是两个不同的命题。
当排水停止并显示“无法驱逐 pod,因为这会违反 pod 中断预算”时,正确的反应是什么?
- 将 PDB 的 minAvailable / maxUnavailable 调整为实际副本数或增加副本以腾出空间。
- 添加 --force 选项以忽略警告并直接将 pod 推出。
- 删除 PDB 并且不要重新创建它
- 强制重启节点
从 etcd 快照恢复时必须遵循哪些步骤?
- 暂时关闭控制平面,使用新的 --data-dir 恢复它,然后使用 --initial-cluster 和对等 URL 设置再次启动它。
- 避免通过覆盖现有数据目录来更改路径。
- 在保持 apiserver 运行的同时执行恢复,以完全消除停机时间。
- 只需将快照文件复制到 data-dir 即可
对于“etcd 成员有 3 个,因此有法定人数,因此不需要备份”这一说法最准确的反驳是什么?
- 仅当有 5 名或更多成员时,法定人数才有意义。
- etcd 内置自动备份功能,因此无需单独设置。
- kube-apiserver 定期执行备份。
- 仲裁是针对节点故障的,错误删除或逻辑损坏会立即复制到所有成员,因此只能通过快照进行时间点恢复。