背景
扩展资源是 kubernetes.io 域名之外的标准资源名称。它们使得集群管理员能够颁布非Kubernetes 内置资源,而用户可以使用他们。
自定义扩展资源无法使用 kubernetes.io 作为资源域名。
管理扩展资源
- 节点级扩展资源
节点级扩展资源绑定到节点. - 设备插件管理的资源
发布在各节点上由设备插件所管理的资源,如 GPU(GPUmanager),智能网卡等。
为节点配置资源
- 集群管理员可以向apierver提交 PATCH的HTTP 请求,然后在节点的 status.capacity 中为其配置资源。
- kubelet 会异步地对 status.allocatable 字段执行自动更新操作,使之包含新资源。
- 调度器在评估 Pod 是否适合在某节点上执行时会使用节点的 status.allocatable 值,在更新节点容量使之包含新资源之后和请求该资源的第一个 Pod 被调度到该节点之间,可能会有短暂的延迟。
集群层面的扩展资源
- 可选择由默认调度器管理资源,默认调度器像管理其他资源一样管理扩展资源。
- Request 与 Limit 必须一致,因为 Kubernetes无法确保扩展资源的超售。
- 更常见的场景是,由调度器扩展程序(Scheduler Extenders)管理,这些程序处理资源消耗和资源配额。
- 修改调度器策略配置 ignored ByScheduler 字段
可配置调度器不要检查自定义资源。
- 修改调度器策略配置 ignored ByScheduler 字段
实践
- 查看当前环境的kubeconfig
cat ~/.kube/config
- 解码并生成证书