Gatekeeper
插件简介
Gatekeeper是一个基于开放策略(OPA)的可定制的云原生策略控制器,有助于策略的执行和治理能力的加强,在集群中提供了更多符合Kubernetes应用场景的安全策略规则。
开源社区地址:https://github.com/open-policy-agent/gatekeeper
使用方式:https://open-policy-agent.github.io/gatekeeper/website/docs/
约束与限制
如果您已经在集群中部署了社区的Gatekeeper,请您先将其卸载后再安装CCE提供的Gatekeeper插件,否则可能会出现插件安装失败的情况。
注意事项
Gatekeeper提供的webhook的能力可能会影响Kubernetes基本资源的使用,请确保业务必须使用webhook能力,并慎重评估使用该插件引入的风险。
Gatekeeper是CCE基于开源软件进行适配并集成的精选开源插件,CCE将提供全面的技术支持服务。然而,CCE不承担因开源软件缺陷导致的业务损失责任,也不承担赔偿或额外的服务,强烈建议用户定期升级软件以修复潜在问题。
安装步骤
- 登录CCE控制台,单击集群名称进入集群,单击左侧导航栏的“插件中心”,在右侧找到opa-gatekeeper插件,单击“安装”。
- 在安装插件页面,设置“规格配置”。
表1 插件规格配置 参数
参数说明
插件规格
该插件可配置“高可用”、“单实例”或“自定义”规格。
实例数
选择上方插件规格后,显示插件中的实例数。
选择“自定义”规格时,您可根据需求调整插件实例数。
实例数为1时插件不具备高可用能力,当插件实例所在节点异常时可能导致插件功能无法正常使用,请谨慎选择。
容器
选择“自定义”规格时,您可根据需求调整插件实例的容器规格。
- 选择需要修改的配置,修改参数值。详情请参见社区参数说明。
- 设置插件实例的部署策略。
- 调度策略对于DaemonSet类型的插件实例不会生效。
- 设置多可用区部署或节点亲和策略时,需保证集群中存在满足调度策略的节点且拥有足够的资源,否则插件实例将无法运行。
表2 插件调度配置 参数
参数说明
多可用区部署
- 优先模式:优先将插件的Deployment实例调度到不同可用区的节点上,如集群下节点不满足多可用区,插件实例将调度到单可用区下的不同节点。
- 均分模式:插件Deployment实例均匀调度到当前集群下各可用区,增加新的可用区后建议扩容插件实例以实现跨可用区高可用部署;均分模式限制不同可用区间插件实例数相差不超过1,单个可用区资源不足会导致后续其他实例无法调度。
- 强制模式:插件Deployment实例强制调度到不同可用区的节点上,每个可用区下最多运行一个实例。如集群下节点不满足多可用区,插件实例将无法全部运行。节点故障后,插件实例存在无法迁移风险。
节点亲和
容忍策略
容忍策略与节点的污点能力配合使用,允许(不强制)插件的 Deployment 实例调度到带有与之匹配的污点的节点上,也可用于控制插件的 Deployment 实例所在的节点被标记污点后插件的 Deployment 实例的驱逐策略。
插件会对实例添加针对node.kubernetes.io/not-ready和node.kubernetes.io/unreachable污点的默认容忍策略,容忍时间窗为60s。
详情请参见设置容忍策略。
- 单击“安装”。
组件说明
容器组件 |
说明 |
资源类型 |
---|---|---|
gatekeeper-audit |
提供audit相关信息。 |
Deployment |
gatekeeper-controller-manager |
提供Gatekeeper的webhook能力,按照用户自定义的策略对k8s资源进行控制。 |
Deployment |