在kubernetes中,准入控制机制(Admission Control)是一个关键的安全和策略执行层。
- 它位于API Server层级,在接收到集群资源的创建、更新或删除请求后。但实际操作存储在etcd中数据之前的一个环节(打分)。
- 准入控制是一系列插件式的组件,它们会对发送到API Server的每个请求进行拦截和检查。这些控制器可以修改请求内容,或根据预定义的策略决定是否允许请求继续执行。
通过准入控制,集群管理员能够实施集群范围内的强制策略,例如:
- 验证:确保提交到资源配置符合特定的标准或格式。
- 默认设置:自动填充或修改资源对象以满足集群级的默认配置要求。
- 安全约束:限制Pod可以使用的资源量、禁止使用特权模式运行容器等安全相关的配置。
- 命名空间隔离:通过NameSpace级别的策略管理资源配额、限制范围等。
- 防止意外破坏:比如阻止对系统重要组件的无意识删除。
一些内置的准入控制器包括:
- NameSpaceLifecycle
- LimitRanger
- ServiceAccount
- DefaultStorageClass
- MutatingAdmissionWebhook 和 ValidatingAdmissionWebhook
综上所述:
还可以通过编写自定义准入控制器或利用Webhook准入控制器与外部服务集成来扩展准入控制功能,实现更为复杂的场景和业务逻辑。这种灵活性使得Kubernetes能够适应各种组织的安全需求和合规要求。