3.2. 管理 Gatekeeper operator 策略


使用 Gatekeeper operator 策略在受管集群上安装 Gatekeeper operator 和 Gatekeeper。在以下部分中了解如何创建、查看和更新 Gatekeeper Operator 策略。

需要的访问权限: 集群管理员

3.2.1. 使用 Gatekeeper operator 策略安装 Gatekeeper

使用监管框架来安装 Gatekeeper Operator。OpenShift Container Platform 目录中提供了 gatekeeper operator。如需更多信息 ,请参阅 OpenShift Container Platform 文档中的 将 Operator 添加到集群部分。

使用配置策略控制器来安装 Gatekeeper operator 策略。在安装过程中,Operator 组和订阅会拉取 gatekeeper operator 将其安装到受管集群中。然后,Gatekeeper operator 会创建一个 Gatekeeper 自定义资源来配置 Gatekeeper。查看 Gatekeeper operator 自定义资源示例。

在支持 enforce(强制) 补救操作的情况下,gatekeeper operator 策略由 Red Hat Advanced Cluster Management 配置策略控制器监控。当设置为 enforce 时,控制器会自动创建 Gatekeeper Operator 策略。

3.2.2. 从控制台创建 Gatekeeper 策略

请参阅以下流程来从控制台创建策略:

  1. 通过从控制台创建策略来安装 Gatekeeper 策略。另外,您可以进入 Additional resources 部分,以引用示例 YAML 以部署 policy-gatekeeper-operator.yaml
  2. 登录到集群后,进入 Governance 页面。
  3. 选择 Create policy
  4. 在完成表单时,从 Specifications 字段中选择 Gatekeeper Operator。策略的参数值会自动填充,策略默认设置为 inform
  5. 将补救操作设置为 enforce 来安装 gatekeeper。

注: 默认值由 Operator 生成。

3.2.2.1. Gatekeeper operator 自定义资源

apiVersion: operator.gatekeeper.sh/v1alpha1
kind: Gatekeeper
metadata:
  name: gatekeeper
spec:
  audit:
    replicas: 1
      auditEventsInvolvedNamespace: Enabled 
1

    logLevel: DEBUG
    auditInterval: 10s
    constraintViolationLimit: 55
    auditFromCache: Enabled
    auditChunkSize: 66
    emitAuditEvents: Enabled
    resources:
      limits:
        cpu: 500m
        memory: 150Mi
      requests:
        cpu: 500m
        memory: 130Mi
  validatingWebhook: Enabled
  mutatingWebhook: Enabled
  webhook:
    replicas: 3
    emitAdmissionEvents: Enabled
    admissionEventsInvolvedNamespace: Enabled 
2

    disabledBuiltins: - http.send
    operations: 
3

     - "CREATE"
     - "UPDATE"
     - "CONNECT"
    failurePolicy: Fail
    resources:
      limits:
        cpu: 480m
        memory: 140Mi
      requests:
        cpu: 400m
        memory: 120Mi
  nodeSelector:
    region: "EMEA"
  affinity:
    podAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        - labelSelector:
            matchLabels:
              auditKey: "auditValue"
          topologyKey: topology.kubernetes.io/zone
  tolerations:
    - key: "Example"
      operator: "Exists"
      effect: "NoSchedule"
  podAnnotations:
    some-annotation: "this is a test"
    other-annotation: "another test"
Copy to Clipboard Toggle word wrap
1
启用 auditEventsInvolvedNamespace 参数来管理要创建的命名空间审计事件。因此,以下参数被添加到 Gatekeeper 控制器部署中,--audit-events-involved-namespace: true
2
启用 admissionEventsInvolvedNamespace 参数来管理要创建的命名空间准入事件。因此,以下参数被添加到 Gatekeeper 控制器部署中,--admission-events-involved-namespace: true
3
您可以使用以下值来管理 webhook 操作。对 operations 参数使用以下值: "CREATE""UPDATE""CONNECT""DELETE "。

3.2.2.2. 为同步详情配置 auditFromCache

Gatekeeper operator 在 auditFromCache 审计中的自定义资源定义中公开设置,该设置默认为禁用。如果启用了 auditFromCache,则需要为同步详情设置 config.gatekeeper.sh。请参阅 Gatekeeper 文档中的配置审计 部分。

Gatekeeper operator 从用户安装的限制中收集资源,然后将这些资源插入到配置中。如果资源不存在,Operator 会创建配置资源。

  1. Gatekeeper 资源中将 auditFromCache 设置为 Automatic,如下例所示:

    apiVersion: operator.gatekeeper.sh/v1alpha1
    kind: Gatekeeper
    metadata:
      name: gatekeeper
    spec:
      audit: replicas: 2
        logLevel: DEBUG
        auditFromCache: Automatic
    Copy to Clipboard Toggle word wrap

    请参阅 Gatekeeper operator 在以下示例的配置文件中添加 syncOnlys 参数部分:

    apiVersion: config.gatekeeper.sh/v1alpha1
    kind: Config
    metadata:
     name: config
     namespace: "openshift-gatekeeper-system"
    spec:
     sync:
       syncOnly:
       - group: ""
         version: "v1"
         kind: "Namespace"
       - group: ""
         version: "v1"
         kind: "Pod"
    Copy to Clipboard Toggle word wrap
  2. 在终端中运行以下命令,获取 同步 设置的说明:

    oc explain gatekeeper.spec.audit.auditFromCache
    Copy to Clipboard Toggle word wrap

3.2.3. 升级 Gatekeeper 和 Gatekeeper operator

您可以升级 Gatekeeper 和 Gatekeeper operator 的版本。当使用 Gatekeeper operator 策略安装 Gatekeeper operator 时,请注意 installPlanApproval 的值。当 installPlanApproval 设置为 Automatic 时,Operator 会自动升级。

installPlanApproval 设置为 Manual 时,您必须手动批准每个集群的 Gatekeeper Operator 升级。

3.2.4. 更新 Gatekeeper operator 策略

查看以下部分以了解如何更新 Gatekeeper operator 策略。

3.2.4.1. 从控制台查看 Gatekeeper operator 策略

在控制台中查看您的 Gatekeeper operator 策略及其状态。

从控制台登录到集群后,点 Governance 来查看您的策略的表列表。注: 您可以选择 Policies 标签页或 Cluster violations 选项卡来过滤策略列表。

选择 policy-gatekeeper-operator 策略来查看更多详细信息。选择 Clusters 选项卡来查看策略违反情况。

3.2.4.2. 禁用 Gatekeeper operator 策略

禁用 gatekeeper operator 策略。

登录到 Red Hat Advanced Cluster Management for Kubernetes 控制台后,进入 Governance 页面来查看您的策略的表列表。

选择 policy-gatekeeper-operator 策略的 Actions 图标,然后点 Disable。此时会出现 Disable Policy 对话框。

点击 Disable policy。您的 policy-gatekeeper-operator 策略已被禁用。

3.2.5. 删除 Gatekeeper operator 策略

通过 CLI 或控制台删除 Gatekeeper operator 策略。

  • 通过 CLI 删除 Gatekeeper operator 策略:

    1. 运行以下命令来删除 Gatekeeper operator 策略:

      oc delete policies.policy.open-cluster-management.io <policy-gatekeeper-operator-name> -n <namespace>
      Copy to Clipboard Toggle word wrap

      删除策略后,它会从一个或多个目标集群中移除。

    2. 运行以下命令验证您的策略是否已移除:

      oc get policies.policy.open-cluster-management.io <policy-gatekeeper-operator-name> -n <namespace>
      Copy to Clipboard Toggle word wrap
  • 从控制台删除 Gatekeeper operator 策略:

    进入 Governance 页面,以查看您的策略的表列表。

    与之前的控制台指令类似,点 policy-gatekeeper-operator 策略的 Actions 图标。点 Remove 以删除该策略。在 Remove policy 对话框中点击 Remove policy

您的 Gatekeeper operator 策略已删除。

完成以下步骤以卸载 gatekeeper 策略、gatekeeper 和 gatekeeper operator 策略:

  1. 删除应用到受管集群的 gatekeeper ConstraintConstraintTemplate

    1. 编辑 Gatekeeper operator 策略。找到您用来创建 gatekeeper ConstraintConstraintTemplateConfigurationPolicy 模板 。
    2. ConfigurationPolicy 模板的 complianceType 的值改为 mustnothave
    3. 保存并应用策略。
  2. 从受管集群中删除 Gatekeeper 实例:

    1. 编辑 Gatekeeper operator 策略。找到用于创建 Gatekeeper 自定义资源的 ConfigurationPolicy 模板。
    2. ConfigurationPolicy 模板的 complianceType 的值改为 mustnothave
  3. 删除受管集群上的 Gatekeeper operator:

    1. 编辑 Gatekeeper operator 策略。找到用于创建 Subscription CR 的 ConfigurationPolicy 模板。
    2. ConfigurationPolicy 模板的 complianceType 的值改为 mustnothave

Gatekeeper 策略、Gatekeeper 和 Gatekeeper operator 策略会被卸载。

3.2.7. 其他资源

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat