搜索

4.2. 使用 Operator 为 RHACS 配置 Central 配置选项

download PDF

当使用 Operator 安装 Central 实例时,您可以配置可选设置。

4.2.1. 使用 Operator 的中央配置选项

当您创建 Central 实例时,Operator 列出了 Central 自定义资源的以下配置选项。

下表包含外部 PostgreSQL 数据库的设置。

4.2.1.1. Central 设置

参数Description

central.adminPasswordSecret

指定在 password 密码数据项中包含管理员密码的 secret。如果省略,Operator 会自动生成密码,并将其存储在 central-htpasswd secret 的 password 项中。

central.defaultTLSSecret

默认情况下,Central 仅提供内部 TLS 证书,这意味着您需要在入口或负载均衡器级别处理 TLS 终止。如果要在 Central 中终止 TLS 并提供自定义服务器证书,您可以指定包含证书和私钥的 secret。

central.adminPasswordGenerationDisabled

将此参数设置为 true 以禁用自动管理员密码生成。仅在执行替代验证方法首次设置后使用它。不要将它用于初始安装。否则,您必须重新安装自定义资源才能重新登录。

central.tolerations

如果节点选择器选择污点节点,请使用此参数指定 taint toleration key、value 和 effect。此参数主要用于基础架构节点。

central.exposure.loadBalancer.enabled

把它设置为 true,以通过负载均衡器公开 Central。

central.exposure.loadBalancer.port

使用此参数为您的负载均衡器指定自定义端口。

central.exposure.loadBalancer.ip

使用这个参数为您的负载均衡器指定保留的静态 IP 地址。

central.exposure.route.enabled

把它设置为 true,以通过 Red Hat OpenShift 路由公开 Central。默认值为 false

central.exposure.route.host

指定用于 Central 路由的自定义主机名。保留为不设置,以接受 OpenShift Container Platform 提供的默认值。

central.exposure.nodeport.enabled

把它设置为 true,以通过节点端口公开 Central。默认值为 false

central.exposure.nodeport.port

使用此选项指定显式节点端口。

central.monitoring.exposeEndpoint

使用 Enabled 为 Central 启用监控。当您启用监控时,RHACS 会在端口号 9090 上创建新的监控服务。默认值为 Disabled

central.nodeSelector

如果您希望此组件只在特定节点上运行,您可以使用此参数配置节点选择器。

central.persistence.hostPath.path

指定将持久数据存储在主机上的主机路径。红帽不推荐使用这个方法。如果需要使用主机路径,则必须将其与节点选择器一起使用。

central.persistence.persistentVolumeClaim.claimName

要管理的持久性数据的 PVC 名称。如果没有具有指定名称的 PVC,则会创建它。如果没有设置,则默认值为 stackrox-db。为防止数据丢失,当 Central 被删除时,PVC 不会被自动删除。

central.persistence.persistentVolumeClaim.size

通过声明创建持久性卷的大小。默认情况下会自动生成。

central.persistence.persistentVolumeClaim.storageClassName

用于 PVC 的存储类的名称。如果您的集群没有配置默认存储类,则必须为此参数提供一个值。

central.resources.limits

使用此参数覆盖 Central 的默认资源限值。

central.resources.requests

使用此参数覆盖 Central 的默认资源请求。

central.imagePullSecrets

使用此参数指定 Central 镜像的镜像 pull secret。

central.db.passwordSecret.name

password 数据项中指定一个具有数据库密码的 secret。只有在您要手动指定连接字符串时,才使用此参数。如果省略,Operator 会自动生成密码,并将其存储在 central-db-password secret 的 password 项中。

central.db.connectionString

设置此参数将不会部署 Central DB,并且 Central 将使用指定的连接字符串进行连接。如果为此参数指定值,还必须为 central.db.passwordSecret.name 指定一个值。这个参数有以下限制:

  • 连接字符串必须采用关键字/值格式,如 PostgreSQL 文档中所述。如需更多信息,请参阅额外资源部分中的链接。
  • 仅支持 PostgreSQL 13。
  • 不支持通过 PGBouncer 连接。
  • 用户必须是能够创建和删除数据库的超级用户。

central.db.tolerations

如果节点选择器选择污点节点,请使用此参数为 Central DB 指定污点容限键、值和效果。此参数主要用于基础架构节点。

central.db.persistence.hostPath.path

指定将持久数据存储在主机上的主机路径。红帽不推荐使用这个方法。如果需要使用主机路径,则必须将其与节点选择器一起使用。

central.db.persistence.persistentVolumeClaim.claimName

要管理的持久性数据的 PVC 名称。如果没有具有指定名称的 PVC,则会创建它。如果没有设置,则默认值为 central-db。为防止数据丢失,当 Central 被删除时,PVC 不会被自动删除。

central.db.persistence.persistentVolumeClaim.size

通过声明创建持久性卷的大小。默认情况下会自动生成。

central.db.persistence.persistentVolumeClaim.storageClassName

用于 PVC 的存储类的名称。如果您的集群没有配置默认存储类,则必须为此参数提供一个值。

central.db.resources.limits

使用此参数覆盖 Central DB 的默认资源限值。

central.db.resources.requests

使用此参数覆盖 Central DB 的默认资源请求。

4.2.1.2. stackrox Scanner 设置

参数Description

scanner.analyzer.nodeSelector

如果您希望此扫描程序只在特定节点上运行,您可以使用此参数配置节点选择器。

scanner.analyzer.tolerations

如果节点选择器选择污点节点,请使用此参数为 StackRox Scanner 指定污点容限键、值和效果。此参数主要用于基础架构节点。

scanner.analyzer.resources.limits

使用此参数覆盖 StackRox Scanner 的默认资源限值。

scanner.analyzer.resources.requests

使用此参数覆盖 StackRox Scanner 的默认资源请求。

scanner.analyzer.scaling.autoScaling

启用后,分析器副本数量会根据指定的限值来动态管理。

scanner.analyzer.scaling.maxReplicas

指定分析器自动扩展配置中使用的最大副本

scanner.analyzer.scaling.minReplicas

指定分析器自动扩展配置中使用的最小副本

scanner.analyzer.scaling.replicas

禁用自动扩展时,始终将副本数配置为与这个值匹配。

scanner.db.nodeSelector

如果您希望此组件只在特定节点上运行,您可以使用此参数配置节点选择器。

scanner.db.tolerations

如果节点选择器选择污点节点,请使用此参数为 StackRox Scanner DB 指定污点容限键、值和效果。此参数主要用于基础架构节点。

scanner.db.resources.limits

使用此参数覆盖 StackRox Scanner DB 的默认资源限值。

scanner.db.resources.requests

使用此参数覆盖 StackRox Scanner DB 的默认资源请求。

scanner.monitoring.exposeEndpoint

使用 Enabled 为 StackRox Scanner 启用监控。当您启用监控时,RHACS 会在端口号 9090 上创建新的监控服务。默认值为 Disabled

scanner.scannerComponent

如果您不想部署 StackRox Scanner,您可以使用此参数禁用它。如果您禁用 StackRox Scanner,本节中的所有其他设置都无效。红帽不推荐为 Kubernetes 禁用 Red Hat Advanced Cluster Security for Kubernetes 的 StackRox 扫描器。如果您启用了 Scanner V4,请不要禁用 StackRox Scanner。扫描程序 V4 要求 StackRox 扫描程序也被启用,以提供必要的扫描功能。

4.2.1.3. scanner V4 设置(技术预览)

重要

扫描程序 V4 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

参数Description

scannerV4.db.nodeSelector

如果您希望此组件只在特定节点上运行,您可以使用此参数配置节点选择器。

scannerV4.db.tolerations

如果节点选择器选择污点节点,请使用此参数为 Scanner V4 DB 指定污点容限键、值和效果。此参数主要用于基础架构节点。

scannerV4.db.resources.limits

使用此参数覆盖 Scanner V4 DB 的默认资源限值。

scannerV4.db.resources.requests

使用此参数覆盖 Scanner V4 DB 的默认资源请求。

scannerV4.db.persistence.persistentVolumeClaim.claimName

用于管理 Scanner V4 持久数据的 PVC 名称。如果没有具有指定名称的 PVC,则会创建它。如果没有设置,则默认值为 scanner-v4-db。为防止数据丢失,当 Central 被删除时,PVC 不会被自动删除。

scannerV4.indexer.nodeSelector

如果您希望此组件只在特定节点上运行,您可以使用此参数配置节点选择器。

scannerV4.indexer.tolerations

如果节点选择器选择污点节点,请使用此参数为 Scanner V4 Indexer 指定污点容限键、值和效果。此参数主要用于基础架构节点。

scannerV4.indexer.resources.limits

使用此参数覆盖 Scanner V4 Indexer 的默认资源限值。

scannerV4.indexer.resources.requests

使用此参数覆盖 Scanner V4 Indexer 的默认资源请求。

scannerV4.indexer.scaling.autoScaling

启用后,Scanner V4 Indexer 副本的数量会根据指定的限值动态管理。

scannerV4.indexer.scaling.maxReplicas

指定 Scanner V4 Indexer 自动扩展配置中使用的最大副本。

scannerV4.indexer.scaling.minReplicas

指定 Scanner V4 Indexer 自动扩展配置中使用的最小副本。

scannerV4.indexer.scaling.replicas

当 Scanner V4 Indexer 禁用了自动扩展时,副本数始终配置为与这个值匹配。

scannerV4.matcher.nodeSelector

如果您希望此组件只在特定节点上运行,您可以使用此参数配置节点选择器。

scannerV4.matcher.tolerations

如果节点选择器选择污点节点,请使用此参数为 Scanner V4 Matcher 指定污点容限键、值和效果。此参数主要用于基础架构节点。

scannerV4.matcher.resources.limits

使用此参数覆盖 Scanner V4 Matcher 的默认资源限值。

scannerV4.matcher.resources.requests

使用此参数覆盖 Scanner V4 Matcher 的默认资源请求。

scannerV4.matcher.scaling.autoScaling

启用后,Scanner V4 Matcher 副本的数量会根据指定的限值动态管理。

scannerV4.matcher.scaling.maxReplicas

指定 Scanner V4 Matcher 自动扩展配置中使用的最大副本。

scannerV4.matcher.scaling.minReplicas

指定 Scanner V4 Matcher 自动扩展配置中使用的最小副本。

scannerV4.matcher.scaling.replicas

当 Scanner V4 Matcher 禁用自动扩展时,副本数始终配置为与这个值匹配。

scannerV4.monitoring.exposeEndpoint

为 Scanner V4 配置监控端点。监控端点允许其他服务从与 Prometheus 兼容的格式提供的 Scanner V4 中收集指标。使用 Enabled 来公开监控端点。当您启用监控时,RHACS 会创建一个新的服务,使用端口 9090 监控,以及允许到端口入站连接的网络策略。默认情况下,这没有启用。

scannerV4.scannerComponent

启用 Scanner V4。默认值为 默认值,它被禁用。要启用 Scanner V4,将此参数设置为 Enabled

4.2.1.4. 常规设置和各种设置

参数Description

tls.additionalCAs

要信任的安全集群的其他可信 CA 证书。这些证书通常用于使用私有证书颁发机构与服务集成。

misc.createSCCs

指定 true 为 Central 创建 SecurityContextConstraints (SCC)。设置为 true 可能会导致某些环境中出现问题。

customize.annotations

允许为 Central 部署指定自定义注解。

customize.envVars

用于配置环境变量的高级设置。

egress.connectivityPolicy

配置 RHACS 是否应该以在线或离线模式运行。在离线模式下,禁用对漏洞定义和内核模块的自动更新。

monitoring.openshift.enabled

如果将此选项设置为 false,Red Hat Advanced Cluster Security for Kubernetes 将不会设置 Red Hat OpenShift 监控。在 Red Hat OpenShift 4 上默认为 true

overlays

请参阅使用带有覆盖的 Operator 自定义安装

4.2.2. 使用带有覆盖的 Operator 自定义安装

了解如何通过 overlays 使用 Operator 方法定制 RHACS 安装。

4.2.2.1. overlays

CentralSecuredCluster 自定义资源没有以参数的形式公开某些低级别配置选项时,您可以使用 .spec.overlays 字段进行调整。使用此字段来修改这些自定义资源生成的 Kubernetes 资源。

.spec.overlays 字段由一系列补丁组成,按其列出的顺序应用。这些补丁由 Kubernetes 资源上的 Operator 在部署到集群前由 Kubernetes 资源处理。

警告

CentralSecuredCluster 中的 .spec.overlays 字段允许用户以任意方式修改低级别 Kubernetes 资源。只有在所需的自定义无法通过 SecuredClusterCentral 自定义资源提供时,才使用此功能。

.spec.overlays 功能的支持主要是有限的,因为它授予了对 Kubernetes 资源进行 intricate 和高度具体的修改的功能,这可能因一个实施而异。这种自定义级别引入了一个超过标准使用场景的复杂性,这使其难以提供广泛的支持。每个修改都是唯一的,可能在产品的不同版本和配置中以无法预计的方式与 Kubernetes 系统交互。这种差异意味着排除并保证这些自定义的稳定性需要一定程度的专业知识和理解。因此,虽然此功能支持定制 Kubernetes 资源来满足精确需求,但还必须考虑确保配置的兼容性和稳定性,特别是在升级或更改底层产品期间。

以下示例显示了覆盖的结构:

overlays:
- apiVersion: v1     1
  kind: ConfigMap    2
  name: my-configmap 3
  patches:
    - path: .data    4
      value: |       5
        key1: data2
        key2: data2
1
targeted Kubernetes resource ApiVersion,如 apps/v1,v1,networking.k8s.io/v1
2
资源类型(如 Deployment、ConfigMap、NetworkPolicy)
3
资源的名称,如 my-configmap
4
字段的 jsonpath 表达式,如 spec.template.spec.containers[name:central].env[-1]
5
新字段值的 YAML 字符串
4.2.2.1.1. 添加覆盖

对于自定义,您可以在 CentralSecuredCluster 自定义资源中添加覆盖。使用 OpenShift CLI (oc)或 OpenShift Container Platform Web 控制台进行修改。

如果覆盖没有按预期生效,请检查 RHACS Operator 日志是否有语法错误或记录的问题。

4.2.2.2. 覆盖示例

4.2.2.2.1. 为 Central ServiceAccount 指定 EKS pod 角色 ARN

中央 ServiceAccount 中添加 Amazon Elastic Kubernetes Service (EKS) pod 角色 Amazon Resource Name (ARN)注解,如下例所示:

apiVersion: platform.stackrox.io
kind: Central
metadata:
  name: central
spec:
  # ...
  overlays:
  - apiVersion: v1
    kind: ServiceAccount
    name: central
    patches:
      - path: metadata.annotations.eks\.amazonaws\.com/role-arn
        value: "\"arn:aws:iam:1234:role\""
4.2.2.2.2. 将环境变量注入中央部署

将环境变量注入到 中央 部署中,如下例所示:

apiVersion: platform.stackrox.io
kind: Central
metadata:
  name: central
spec:
  # ...
  overlays:
  - apiVersion: apps/v1
    kind: Deployment
    name: central
    patches:
    - path: spec.template.spec.containers[name:central].env[-1]
      value: |
        name: MY_ENV_VAR
        value: value
4.2.2.2.3. 使用入口规则扩展网络策略

allow-ext-to-central 网络策略中添加一个入口规则,用于端口 999 流量,如下例所示:

apiVersion: platform.stackrox.io
kind: Central
metadata:
  name: central
spec:
    # ...
    overlays:
    - apiVersion: networking.k8s.io/v1
      kind: NetworkPolicy
      name: allow-ext-to-central
      patches:
        - path: spec.ingress[-1]
          value: |
            ports:
            - port: 999
              protocol: TCP
4.2.2.2.4. 修改 ConfigMap 数据

修改 central-endpoints ConfigMap 数据,如下例所示:

apiVersion: platform.stackrox.io
kind: Central
metadata:
  name: central
spec:
    # ...
    overlays:
    - apiVersion: v1
      kind: ConfigMap
      name: central-endpoints
      patches:
      - path: data
        value: |
          endpoints.yaml: |
            disableDefault: false
4.2.2.2.5. 将容器添加到 中央 部署中

中央 部署中添加新容器,如下例所示:

apiVersion: platform.stackrox.io
kind: Central
metadata:
  name: central
spec:
    # ...
    overlays:
    - apiVersion: apps/v1
      kind: Deployment
      name: central
      patches:
        - path: spec.template.spec.containers[-1]
      value: |
        name: nginx
        image: nginx
        ports:
          - containerPort: 8000
            name: http
            protocol: TCP
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.