策略
通过策略管理安全性和最佳实践。
Kubernetes 策略是管理其他配置或运行时行为的一些配置。 Kubernetes 提供了各种形式的策略,具体如下所述:
使用 API 对象应用策略
一些 API 对象可用作策略。以下是一些示例:
- NetworkPolicy 用于限制工作负载的出入站流量。
- LimitRange 管理多个不同对象类别的资源分配约束。
- ResourceQuota 限制名字空间的资源消耗。
使用准入控制器应用策略
准入控制器运行在 API 服务器上, 可以验证或变更 API 请求。某些准入控制器用于应用策略。 例如,AlwaysPullImages 准入控制器会修改新 Pod,将镜像拉取策略设置为 Always
。
Kubernetes 具有多个内置的准入控制器,可通过 API 服务器的 --enable-admission-plugins
标志进行配置。
关于准入控制器的详细信息(包括可用准入控制器的完整列表),请查阅专门的章节:
使用 ValidatingAdmissionPolicy 应用策略
验证性的准入策略允许使用通用表达式语言 (CEL) 在 API 服务器中执行可配置的验证检查。 例如,ValidatingAdmissionPolicy
可用于禁止使用 latest
镜像标签。
ValidatingAdmissionPolicy
对请求 API 进行操作,可就不合规的配置执行阻止、审计和警告用户等操作。 有关 ValidatingAdmissionPolicy
API 的详细信息及示例,请查阅专门的章节:
使用动态准入控制应用策略
动态准入控制器(或准入 Webhook)作为单独的应用在 API 服务器之外运行, 这些应用注册自身后可以接收 Webhook 请求以便对 API 请求进行验证或变更。
动态准入控制器可用于在 API 请求上应用策略并触发其他基于策略的工作流。 动态准入控制器可以执行一些复杂的检查,包括需要读取其他集群资源和外部数据的复杂检查。 例如,镜像验证检查可以从 OCI 镜像仓库中查找数据,以验证容器镜像签名和证明信息。
有关动态准入控制的详细信息,请查阅专门的章节:
实现
说明: 本部分链接到提供 Kubernetes 所需功能的第三方项目。Kubernetes 项目作者不负责这些项目。此页面遵循CNCF 网站指南,按字母顺序列出项目。要将项目添加到此列表中,请在提交更改之前阅读内容指南。
Kubernetes 生态系统中正在开发作为灵活策略引擎的动态准入控制器,例如:
使用 Kubelet 配置应用策略
Kubernetes 允许在每个工作节点上配置 Kubelet。一些 Kubelet 配置可以视为策略:
- 进程 ID 限制和保留用于限制和保留可分配的 PID。
- 节点资源管理器可以为低延迟和高吞吐量工作负载管理计算、内存和设备资源。