策略
Kubernetes 策略是管理其他配置或运行时行为的配置。Kubernetes 提供了各种形式的策略,如下所述:
使用 API 对象应用策略
一些 API 对象充当策略。以下是一些示例:
- NetworkPolicies 可用于限制工作负载的入口和出口流量。
- LimitRanges 管理不同对象种类之间的资源分配约束。
- ResourceQuotas 限制了 namespace 的资源消耗。
使用准入控制器应用策略
准入控制器 在 API 服务器中运行,可以验证或修改 API 请求。一些准入控制器用于应用策略。例如,AlwaysPullImages 准入控制器会修改新的 Pod 以将镜像拉取策略设置为 Always
。
Kubernetes 有几个内置的准入控制器,可以通过 API 服务器的 --enable-admission-plugins
标志进行配置。
有关准入控制器的详细信息,以及可用准入控制器的完整列表,请参阅专门章节。
使用 ValidatingAdmissionPolicy 应用策略
Validating admission policies 允许在 API 服务器中使用通用表达式语言 (CEL) 执行可配置的验证检查。例如,ValidatingAdmissionPolicy
可用于禁止使用 latest
镜像标签。
ValidatingAdmissionPolicy
对 API 请求进行操作,可用于阻止、审计和警告用户不合规的配置。
有关 ValidatingAdmissionPolicy
API 的详细信息和示例,请参阅专门章节。
使用动态准入控制应用策略
动态准入控制器(或准入 Webhook)作为独立应用程序在 API 服务器外部运行,它们注册以接收 Webhook 请求,从而对 API 请求执行验证或修改。
动态准入控制器可用于对 API 请求应用策略并触发其他基于策略的工作流。动态准入控制器可以执行复杂的检查,包括那些需要检索其他集群资源和外部数据的检查。例如,镜像验证检查可以从 OCI 注册表中查找数据以验证容器镜像签名和证明。
有关动态准入控制的详细信息,请参阅专门章节。
实现
Kubernetes 生态系统中正在开发作为灵活策略引擎的动态准入控制器,例如:
使用 Kubelet 配置应用策略
Kubernetes 允许配置每个工作节点上的 Kubelet。一些 Kubelet 配置充当策略:
- 进程 ID 限制和预留 用于限制和预留可分配的 PID。
- 节点资源管理器 可以管理延迟敏感型和高吞吐量工作负载的计算、内存和设备资源。
本页面上的项目提及了提供 Kubernetes 所需功能的第三方产品或项目。Kubernetes 项目作者对这些第三方产品或项目不负责。有关更多详细信息,请参阅 CNCF 网站指南。
在提议添加额外第三方链接的更改之前,你应该阅读内容指南。