4.2. 通过 Helm chart 使用自定义安装


安装流程:

  1. 为 Kubernetes Helm Chart 仓库添加 Red Hat Advanced Cluster Security。
  2. 配置 central-services Helm Chart。
  3. 安装 中央服务 Helm Chart 来安装 集中组件 (Central 和 Scanner)。
  4. 生成 init 捆绑包。
  5. 配置 secure-cluster-services Helm Chart。
  6. 安装 secured-cluster-services Helm chart,以安装 每个集群每个节点 组件(Sensor、Admission Controller 和 Collector)。

安装前:

4.2.1. 添加 Helm Chart 仓库

流程

  • 添加 Red Hat Advanced Cluster Security for Kubernetes charts 软件仓库。

    $ helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/
    Copy to Clipboard Toggle word wrap

    Red Hat Advanced Cluster Security for Kubernetes 的 Helm 仓库包括两个用于安装不同组件的 Helm chart。

    • 用于安装集中组件(Central 和 Scanner)的中央服务Helm Chart(central-services)。

      注意

      您只部署集中式组件一次,并可使用同一安装监控多个独立集群。

    • 安全集群服务 Helm Chart (secured-cluster-services) 用于安装针对每个集群(Sensor 和 Admission 控制器)和针对每个节点(Collector) 的组件。

      注意

      将 per-cluster 组件部署到要监控的每个集群中,并在要监控的所有节点中部署 per-node 组件。

验证

  • 运行以下命令来验证添加的 chart 存储库:

    $ helm search repo -l rhacs/
    Copy to Clipboard Toggle word wrap

4.2.2. 配置 central-services Helm chart

本节论述了可用于 helm installhelm upgrade 命令的 Helm Chart 配置参数。您可以使用 --set 选项或创建 YAML 配置文件来指定这些参数。

创建以下文件来配置 Helm chart 来安装 Red Hat Advanced Cluster Security for Kubernetes:

  • 公共配置文件 values-public.yaml :使用此文件保存所有非敏感配置选项。
  • 专用配置文件 values-private.yaml :使用此文件保存所有敏感配置选项。请确定您安全地存储这个文件。

4.2.2.1. 专用配置文件

本节列出了 values-private.yaml 文件的可配置参数。这些参数没有默认值。

4.2.2.1.1. 镜像 pull secret

从 registry 中拉取镜像所需的凭证取决于以下因素:

  • 如果使用自定义 registry,您必须指定这些参数:

    • imagePullSecrets.username
    • imagePullSecrets.password
    • image.registry
  • 如果不使用用户名和密码登录到自定义 registry,您必须指定以下参数之一:

    • imagePullSecrets.allowNone
    • imagePullSecrets.useExisting
    • imagePullSecrets.useFromDefaultServiceAccount
Expand
参数描述

imagePullSecrets.username

用于登录到 registry 的帐户的用户名。

imagePullSecrets.password

用于登录到 registry 的帐户的密码。

imagePullSecrets.allowNone

如果您使用自定义 registry,且允许在没有凭证的情况下拉取镜像,请使用 true

imagePullSecrets.useExisting

以逗号分隔的 secret 列表作为值。例如,secret1, secret2, secretN。如果您已在目标命名空间中创建了预先存在的镜像 pull secret,则使用此选项。

imagePullSecrets.useFromDefaultServiceAccount

如果您已经在目标命名空间中配置了具有足够范围的镜像 pull secret 的默认服务帐户,请使用 true

4.2.2.1.2. 代理配置

如果要在需要使用代理连接到外部服务的集群中安装 Red Hat Advanced Cluster Security for Kubernetes,则必须使用 proxyConfig 参数指定代理配置。例如:

env:
  proxyConfig: |
    url: http://proxy.name:port
    username: username
    password: password
    excludes:
    - some.domain
Copy to Clipboard Toggle word wrap
Expand
参数描述

env.proxyConfig

您的代理配置。

4.2.2.1.3. Central

Central 的可配置参数。

对于新安装,您可以跳过以下参数:

  • central.jwtSigner.key
  • central.serviceTLS.cert
  • central.serviceTLS.key
  • central.adminPassword.value
  • central.adminPassword.htpasswd
  • 当您没有为这些参数指定值时,Helm Chart 会为它们自动生成值。
  • 如果要修改这些值,您可以使用 helm upgrade 命令并使用 --set 选项指定值。
重要

对于设置管理员密码,您只能使用 central.adminPassword.valuecentral.adminPassword.htpasswd,但不能同时使用两者。

Expand
参数描述

central.jwtSigner.key

Red Hat Advanced Cluster Security for Kubernetes 应使用的私钥签名 JSON Web 令牌(JWT)进行验证。

central.serviceTLS.cert

Central 服务应用于部署中心的内部证书。

central.serviceTLS.key

Central 服务应使用的内部证书的私钥。

central.defaultTLS.cert

Central 应该使用的用户面向用户的证书。Red Hat Advanced Cluster Security for Kubernetes 将这个证书用于 RHACS 门户。

  • 对于新安装,您必须提供一个证书,否则 Red Hat Advanced Cluster Security for Kubernetes 通过使用自签名证书安装 Central。
  • 如果要升级,Red Hat Advanced Cluster Security for Kubernetes 会使用现有证书及其密钥。

central.defaultTLS.key

Central 应使用面向用户的证书的私钥。

  • 对于新安装,您必须提供私钥,否则 Red Hat Advanced Cluster Security for Kubernetes 使用自签名证书安装中心。
  • 如果要升级,Red Hat Advanced Cluster Security for Kubernetes 会使用现有证书及其密钥。

central.adminPassword.value

用于登录到 Red Hat Advanced Cluster Security for Kubernetes 的管理员密码。

central.adminPassword.htpasswd

用于登录到 Red Hat Advanced Cluster Security for Kubernetes 的管理员密码。此密码以散列格式存储,使用 bcrypt。

注意

如果使用 central.adminPassword.htpasswd 参数,则必须使用 bcrypt 编码的密码哈希。您可以运行 htpasswd -nB admin 命令来生成密码哈希。例如,

htpasswd: |
  admin:<bcrypt-hash>
Copy to Clipboard Toggle word wrap
4.2.2.1.4. 扫描程序

扫描程序的可配置参数。

对于新的安装,您可以跳过以下参数,以及 Helm Chart 自动生成值。否则,如果您升级到新版本,请指定以下参数的值:

  • scanner.dbPassword.value
  • scanner.serviceTLS.cert
  • scanner.serviceTLS.key
  • scanner.dbServiceTLS.cert
  • scanner.dbServiceTLS.key
Expand
参数描述

scanner.dbPassword.value

用于通过 Scanner 数据库进行身份验证的密码。不要修改此参数,因为 Red Hat Advanced Cluster Security for Kubernetes 会自动创建和使用其值。

scanner.serviceTLS.cert

扫描程序服务用于部署扫描器的内部证书。

scanner.serviceTLS.key

Scanner 服务使用的内部证书的私钥。

scanner.dbServiceTLS.cert

Scanner-db 服务应用于部署 Scanner 数据库的内部证书。

scanner.dbServiceTLS.key

Scanner-db 服务应使用的内部证书的私钥。

4.2.2.2. 公共配置文件

本节列出了 values-public.yaml 文件的可配置参数。

4.2.2.2.1. 镜像 pull secret

镜像拉取 secret 是从 registry 中拉取镜像所需的凭证。

Expand
参数描述

imagePullSecrets.allowNone

如果您使用自定义 registry,且允许在没有凭证的情况下拉取镜像,请使用 true

imagePullSecrets.useExisting

以逗号分隔的 secret 列表作为值。例如,secret1, secret2.如果您已在目标命名空间中创建了预先存在的镜像 pull secret,则使用此选项。

imagePullSecrets.useFromDefaultServiceAccount

如果您已经在目标命名空间中配置了具有足够范围的镜像 pull secret 的默认服务帐户,请使用 true

4.2.2.2.2. 镜像

镜像声明了配置来设置主 registry,Helm Chart 用来为 central.imagescanner.imagescanner.dbImage 参数解析镜像。

Expand
参数描述

image.registry

镜像 registry 的地址。使用主机名,如 registry.redhat.io 或远程 registry 主机名,如 us.gcr.io/stackrox-mirror

4.2.2.2.3. 环境变量

Red Hat Advanced Cluster Security for Kubernetes 会自动检测到集群环境,并为 env.openshiftenv.istioenv.platform 设置值。仅设置这些值来覆盖自动集群环境检测。

Expand
参数描述

env.openshift

使用 true 在 OpenShift Container Platform 集群上安装并覆盖自动集群环境检测。

env.istio

使用 true 在启用了 Istio 的集群上安装并覆盖自动集群环境检测。

env.platform

安装 Red Hat Advanced Cluster Security for Kubernetes 的平台。将其值设为 defaultgke 以指定集群平台并覆盖自动集群环境检测。

env.offlineMode

使用 true 以离线模式使用 Red Hat Advanced Cluster Security for Kubernetes。

4.2.2.2.4. 其他可信证书颁发机构

Red Hat Advanced Cluster Security for Kubernetes 会自动引用要信任的系统根证书。当 Central 或 Scanner 必须联系到使用您机构中授权或全局可信合作伙伴机构发布的证书的服务时,您可以使用以下参数来指定对这些服务的信任:

Expand
参数描述

additionalCAs.<certificate_name>

指定要信任的根证书颁发机构的 PEM 编码证书。

4.2.2.2.5. Central

Central 的可配置参数。

  • 您必须将持久性存储选项指定为 hostPathpersistentVolumeClaim
  • 用于公开外部访问的中央部署。您必须指定一个参数,可以是 central.exposure.loadBalancercentral.exposure.nodePortcentral.exposure.route。如果没有为这些参数指定任何值,您必须手动公开 Central,或使用端口转发(port-forwarding)访问它。
Expand
参数描述

central.disableTelemetry

使用 true 来禁用在线遥测数据收集。

central.endpointsConfig

Central 的端点配置选项。

central.nodeSelector

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

central.tolerations

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

central.exposeMonitoring

指定 true,以在端口号 9090 上为 Central 公开 Prometheus 指标端点。

central.image.registry

用于覆盖 Central 镜像的全局 image.registry 参数的自定义 registry。

central.image.name

覆盖默认 Central 镜像名称(main)的自定义镜像名称。

central.image.tag

覆盖 Central 镜像默认标签的自定义镜像标签。如果在新安装过程中指定了自己的镜像标签,则您必须在运行 helm upgrade 命令升级到新版本时手动增加此标签。如果您 mirror 了自己的 registry 中的镜像,请不要修改原始镜像标签。

central.image.fullRef

Central 镜像的完整参考,包括 registry 地址、镜像名称和镜像标签。为此参数设置值会覆盖 central.image.registrycentral.image.namecentral.image.tag 参数。

central.resources.requests.memory

Central 的内存请求,以覆盖默认值。

central.resources.requests.cpu

Central 的 CPU 请求,以覆盖默认值。

central.resources.limits.memory

Central 的内存限值来覆盖默认值。

central.resources.limits.cpu

Central 的 CPU 限制,以覆盖默认值。

central.persistence.hostPath

Red Hat Advanced Cluster Security for Kubernetes 应该创建数据库卷的节点的路径。红帽不推荐使用这个选项。

central.persistence.persistentVolumeClaim.claimName

您要使用的持久性卷声明(PVC)的名称。

central.persistence.persistentVolumeClaim.createClaim

使用 true 创建一个新的持久性卷声明,或 false 来使用现有的声明。

central.persistence.persistentVolumeClaim.size

由指定声明管理的持久性卷的大小(以 GiB 为单位)。

central.exposure.loadBalancer.enabled

使用 true 来通过使用负载均衡器公开 Central。

central.exposure.loadBalancer.port

要公开 Central 的端口号。默认端口号为 443。

central.exposure.nodePort.enabled

使用 true 通过节点端口服务公开 Central。

central.exposure.nodePort.port

要公开 Central 的端口号。当您跳过此参数时,OpenShift Container Platform 会自动分配一个端口号。如果您使用节点端口公开 Red Hat Advanced Cluster Security for Kubernetes,红帽建议您不要指定端口号。

central.exposure.route.enabled

使用 true 通过路由公开 Central。此参数仅适用于 OpenShift Container Platform 集群。

4.2.2.2.6. 扫描程序

扫描程序的可配置参数。

Expand
参数描述

scanner.disable

使用 true 在没有扫描器的情况下安装 Red Hat Advanced Cluster Security for Kubernetes。当您与 helm upgrade 命令一起使用时,Helm 会移除现有的 Scanner 部署。

scanner.replicas

为 Scanner 部署创建的副本数。当您将其与 scanner.autoscaling 参数搭配使用时,这个值会设置初始副本数。

scanner.logLevel

为 Scanner 配置日志级别。红帽建议您不要更改日志级别的默认值 (INFO)。

scanner.nodeSelector

将节点选择器标签指定为 label-key: label-value,以强制 Scanner 仅调度到具有指定标签的节点。

scanner.tolerations

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

scanner.autoscaling.disable

使用 true 为 Scanner 部署禁用自动扩展。禁用自动扩展时,minReplicasmaxReplicas 参数没有任何效果。

scanner.autoscaling.minReplicas

自动扩展的最小副本数。

scanner.autoscaling.maxReplicas

自动扩展的最大副本数。

scanner.resources.requests.memory

扫描器的内存请求,以覆盖默认值。

scanner.resources.requests.cpu

扫描器的 CPU 请求,以覆盖默认值。

scanner.resources.limits.memory

扫描器的内存限值,以覆盖默认值。

scanner.resources.limits.cpu

扫描器的 CPU 限制,以覆盖默认值。

scanner.dbResources.requests.memory

Scanner 数据库部署的内存请求,以覆盖默认值。

scanner.dbResources.requests.cpu

扫描数据库部署的 CPU 请求,以覆盖默认值。

scanner.dbResources.limits.memory

Scanner 数据库部署的内存限值,以覆盖默认值。

scanner.dbResources.limits.cpu

扫描数据库部署的 CPU 限制,以覆盖默认值。

scanner.image.registry

Scanner 镜像的自定义 registry。

scanner.image.name

覆盖默认扫描程序镜像名称(scanner)的自定义镜像名称。

scanner.dbImage.registry

Scanner DB 镜像的自定义 registry。

scanner.dbImage.name

覆盖默认 Scanner DB 镜像名称 (scanner-db) 的自定义镜像名称。

scanner.dbNodeSelector

将节点选择器标签指定为 label-key: label-value,以强制 Scanner DB 仅调度到具有指定标签的节点。

scanner.dbTolerations

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

4.2.2.2.7. 自定义

使用这些参数为 Red Hat Advanced Cluster Security for Kubernetes 创建的所有对象指定附加属性。

Expand
参数描述

customize.labels

附加到所有对象的自定义标签。

customize.annotations

附加到所有对象的自定义注解。

customize.podLabels

附加到所有部署的自定义标签。

customize.podAnnotations

附加到所有部署的自定义注解。

customize.envVars

所有对象中所有容器的自定义环境变量。

customize.central.labels

附加到 Central 创建的所有对象的自定义标签。

customize.central.annotations

附加到中央创建的所有对象的自定义注解。

customize.central.podLabels

附加到所有中央部署的自定义标签。

customize.central.podAnnotations

附加到所有中央部署的自定义注解。

customize.central.envVars

所有中央容器的自定义环境变量。

customize.scanner.labels

附加到 Scanner 创建的所有对象的自定义标签。

customize.scanner.annotations

附加到 Scanner 创建的所有对象的自定义注解。

customize.scanner.podLabels

附加到所有 Scanner 部署的自定义标签。

customize.scanner.podAnnotations

附加到所有 Scanner 部署的自定义注解。

customize.scanner.envVars

所有 Scanner 容器的自定义环境变量。

customize.scanner-db.labels

附加到 Scanner DB 创建的所有对象的自定义标签。

customize.scanner-db.annotations

附加到 Scanner DB 创建的所有对象的自定义注解。

customize.scanner-db.podLabels

附加到所有 Scanner DB 部署的自定义标签。

customize.scanner-db.podAnnotations

附加到所有 Scanner DB 部署的自定义注解。

customize.scanner-db.envVars

所有 Scanner DB 容器的自定义环境变量。

您还可以使用:

  • customize.other.service/*.labelscustomize.other.service/*.annotations 参数,为所有对象指定标签和注解。
  • 或者,提供特定的服务名称,例如 customize.other.service/central-loadbalancer.labelscustomize.other.service/central-loadbalancer.annotations 作为参数,并设置它们的值。
4.2.2.2.8. 高级自定义
重要

本节中指定的参数仅用于信息。红帽不支持带有修改后的命名空间和发行版本名称的 Red Hat Advanced Cluster Security for Kubernetes 实例。

Expand
参数描述

allowNonstandardNamespace

使用 true 将 Red Hat Advanced Cluster Security for Kubernetes 部署到默认命名空间 stackrox 以外的命名空间中。

allowNonstandardReleaseName

使用 true 使用默认 stackrox-central-services 之外的发行版本名称部署 Red Hat Advanced Cluster Security for Kubernetes。

4.2.3. 安装 central-services Helm chart

配置 values-public.yamlvalues-private.yaml 文件后,安装 central-services Helm Chart 来部署集中式组件(Central 和 Scanner)。

流程

  • 运行以下命令:

    $ helm install -n stackrox --create-namespace \
      stackrox-central-services rhacs/central-services \
      -f <path_to_values_public.yaml> -f <path_to_values_private.yaml> 
    1
    Copy to Clipboard Toggle word wrap
    1
    使用 -f 选项指定 YAML 配置文件的路径。

在部署 central-services Helm Chart 后,您可以对任何配置选项进行更改。

流程

  1. 使用新值更新 values-public.yamlvalues-private.yaml 配置文件。
  2. 运行 helm upgrade 命令并使用 -f 选项指定配置文件:

    $ helm upgrade -n stackrox \
      stackrox-central-services rhacs/central-services \
      -f <path_to_values_public.yaml> \
      -f <path_to_values_private.yaml>
    Copy to Clipboard Toggle word wrap
    注意

    您还可以使用 --set--set-file 参数指定配置值。但是,这些选项不会被保存,需要您在每次进行更改时手动指定所有选项。

4.2.4. 生成 init 捆绑包

在集群中安装 SecuredCluster 资源前,您必须创建一个 init 捆绑包。安装并配置 SecuredCluster 的集群,然后使用此捆绑包与 Central 进行身份验证。

您可以使用 roxctl CLI 或 RHACS 门户创建 init 捆绑包。

4.2.4.1. 使用 roxctl CLI 生成 init 捆绑包

您可以使用 roxctl CLI 创建带有 secret 的 init 捆绑包。

先决条件

您已配置了 ROX_API_TOKENROX_CENTRAL_ADDRESS 环境变量。

  • 设置 ROX_API_TOKENROX_CENTRAL_ADDRESS 环境变量:

    $ export ROX_API_TOKEN=<api_token>
    Copy to Clipboard Toggle word wrap
    $ export ROX_CENTRAL_ADDRESS=<address>:<port_number>
    Copy to Clipboard Toggle word wrap

流程

  • 运行以下命令以生成包含 secret 的集群 init 捆绑包:

    $ roxctl -e "$ROX_CENTRAL_ADDRESS" \
      central init-bundles generate <cluster_init_bundle_name> \
      --output cluster_init_bundle.yaml
    Copy to Clipboard Toggle word wrap
$ roxctl -e "$ROX_CENTRAL_ADDRESS" \
  central init-bundles generate <cluster_init_bundle_name> \
  --output-secrets cluster_init_bundle.yaml
Copy to Clipboard Toggle word wrap
重要

请确定您安全地存储此捆绑包,因为它包含 secret。您可以使用同一捆绑包来设置多个安全集群。

4.2.4.2. 使用 RHACS 门户生成 init 捆绑包

您可以使用 RHACS 门户创建包含 secret 的 init 捆绑包。

流程

  1. 根据您的暴露的方法查找 RHACS 门户地址:

    1. 对于路由:

      $ oc get route central -n stackrox
      Copy to Clipboard Toggle word wrap
    2. 对于负载均衡器:

      $ oc get service central-loadbalancer -n stackrox
      Copy to Clipboard Toggle word wrap
    3. 对于端口转发:

      1. 运行以下命令:

        $ oc port-forward svc/central 18443:443 -n stackrox
        Copy to Clipboard Toggle word wrap
      2. 进入到 https://localhost:18443/
  2. 在 RHACS 门户网站中,进入 Platform Configuration Integrations
  3. 进入 Authentication Tokens 部分,再点 Cluster Init Bundle
  4. Generate bundle
  5. 为集群 init 捆绑包输入一个名称并点 Generate
  6. Download Helm Values File 下载生成的捆绑包。
  7. Download Kubernetes Secret File 下载生成的捆绑包。
重要

安全地存储此捆绑包,因为它包含 secret。您可以使用同一捆绑包来创建多个安全集群。

下一步

  1. 使用 OpenShift Container Platform CLI 使用 init 捆绑包创建资源。
  2. 在您要监控的所有集群中安装 Red Hat Advanced Cluster Security for Kubernetes。

4.2.5. 配置 secured-cluster-services Helm chart

本节论述了可用于 helm installhelm upgrade 命令的 Helm Chart 配置参数。您可以使用 --set 选项或创建 YAML 配置文件来指定这些参数。

创建以下文件来配置 Helm chart 来安装 Red Hat Advanced Cluster Security for Kubernetes:

  • 公共配置文件 values-public.yaml :使用此文件保存所有非敏感配置选项。
  • 专用配置文件 values-private.yaml :使用此文件保存所有敏感配置选项。请确定您安全地存储这个文件。
重要

在使用 secured-cluster-services Helm Chart 时,不要修改属于 chart 的 values.yaml 文件。

4.2.5.1. 配置参数

Expand
参数描述

clusterName

集群的名称。

centralEndpoint

中央端点的地址,包括端口号。如果使用一个支持非 gRPC 的负载均衡器,请使用带有 ws:// 的端点地址的 WebSocket 协议。

sensor.endpoint

Sensor 端点的地址,包括端口号。

sensor.imagePullPolicy

Sensor 容器的镜像拉取策略。

sensor.serviceTLS.cert

Sensor 使用的内部服务到服务 TLS 证书。

sensor.serviceTLS.key

Sensor 使用的内部服务到服务 TLS 证书密钥。

sensor.resources.requests.memory

Sensor 容器的内存请求。使用此参数覆盖默认值。

sensor.resources.requests.cpu

Sensor 容器的 CPU 请求。使用此参数覆盖默认值。

sensor.resources.limits.memory

Sensor 容器的内存限值。使用此参数覆盖默认值。

sensor.resources.limits.cpu

Sensor 容器的 CPU 限制。使用此参数覆盖默认值。

sensor.nodeSelector

将节点选择器标签指定为 label-key: label-value,以强制 Sensor 仅调度到具有指定标签的节点。

sensor.tolerations

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

image.main.name

main(主) 镜像的名称。

image.collector.name

Collector 镜像的名称。

image.main.registry

用于主镜像的 registry 地址。

image.collector.registry

用于 Collector 镜像的 registry 地址。

image.main.pullPolicy

main 镜像的镜像拉取策略。

image.collector.pullPolicy

Collector 镜像的镜像拉取策略。

image.main.tag

使用 main 镜像标签。

image.collector.tag

使用 collector 镜像标签。

collector.collectionMethod

EBPFKERNEL_MODULENO_COLLECTION

collector.imagePullPolicy

Collector 容器的镜像拉取策略。

collector.complianceImagePullPolicy

Compliance 容器的镜像拉取策略。

collector.disableTaintTolerations

如果指定了 false,则容限应用到 Collector,并且收集器 pod 可以调度到具有污点的所有节点上。如果将其指定为 true,则不会应用任何容限,且收集器 pod 不会调度到具有污点的节点。

collector.resources.requests.memory

Collector 容器的内存请求。使用此参数覆盖默认值。

collector.resources.requests.cpu

Collector 容器的 CPU 请求。使用此参数覆盖默认值。

collector.resources.limits.memory

Collector 容器的内存限值。使用此参数覆盖默认值。

collector.resources.limits.cpu

Collector 容器的 CPU 限制。使用此参数覆盖默认值。

collector.complianceResources.requests.memory

Compliance 容器的内存请求。使用此参数覆盖默认值。

collector.complianceResources.requests.cpu

Compliance 容器的 CPU 请求。使用此参数覆盖默认值。

collector.complianceResources.limits.memory

Compliance 容器的内存限值。使用此参数覆盖默认值。

collector.complianceResources.limits.cpu

Compliance 容器的 CPU 限制。使用此参数覆盖默认值。

collector.serviceTLS.cert

Collector 使用的内部服务到服务的 TLS 证书。

collector.serviceTLS.key

Collector 使用的内部服务到服务的 TLS 证书密钥。

admissionControl.listenOnCreates

此设置控制 Kubernetes 是否配置为联系 Red Hat Advanced Cluster Security for Kubernetes,并带有 AdmissionReview 请求,用于工作负载创建事件。

admissionControl.listenOnUpdates

当将此参数设置为 false 时,Red Hat Advanced Cluster Security for Kubernetes 会以 Kubernetes API 服务器不发送对象更新事件的方式创建 ValidatingWebhookConfiguration。由于对象更新的卷通常高于对象创建的,所以保留此项为 false 会限制准入控制服务的负载,并减少准入控制服务的几率。

admissionControl.listenOnEvents

此设置控制集群是否被配置为联系 Red Hat Advanced Cluster Security for Kubernetes,使用 AdmissionReview 请求用于 execportforward 事件。Red Hat Advanced Cluster Security for Kubernetes 不支持 OpenShift Container Platform 3.11 中的此功能。

admissionControl.dynamic.enforceOnCreates

此设置控制 Red Hat Advanced Cluster Security for Kubernetes 是否评估策略 ; 如果禁用,则会自动接受所有 AdmissionReview 请求。

admissionControl.dynamic.enforceOnUpdates

此设置控制准入控制服务的行为。您必须把 listenOnUpdates 指定为 true 才能正常工作。

admissionControl.dynamic.scanInline

如果将这个选项设置为 true,则准入控制服务会在做出准入决策前请求镜像扫描。由于镜像扫描需要几秒钟,因此只有在您确保部署前扫描集群中使用的所有镜像(例如,在镜像构建期间通过 CI 集成),才启用此选项。这个选项与 RHACS 门户中的 Contact image scanners 选项对应。

admissionControl.dynamic.disableBypass

将它设置为 true 以禁用绕过 Admission Controller。

admissionControl.dynamic.timeout

在评估准入检查请求时,Red Hat Advanced Cluster Security for Kubernetes 应该等待的最大时间(以秒为单位)。使用它来设置启用镜像扫描时的请求超时。如果镜像扫描的运行时间超过指定时间,Red Hat Advanced Cluster Security for Kubernetes 接受了请求。

admissionControl.resources.requests.memory

Admission Control 容器的内存请求。使用此参数覆盖默认值。

admissionControl.resources.requests.cpu

Admission Control 容器的 CPU 请求。使用此参数覆盖默认值。

admissionControl.resources.limits.memory

Admission Control 容器的内存限值。使用此参数覆盖默认值。

admissionControl.resources.limits.cpu

Admission Control 容器的 CPU 限制。使用此参数覆盖默认值。

admissionControl.nodeSelector

将节点选择器标签指定为 label-key: label-value,以强制 Admission Control 仅调度到具有指定标签的节点。

admissionControl.tolerations

如果节点选择器选择污点节点,请使用此参数指定污点容限键、值以及 Admission Control 的效果。此参数主要用于基础架构节点。

admissionControl.serviceTLS.cert

Admission Control 使用的内部服务到服务的 TLS 证书。

admissionControl.serviceTLS.key

Admission Control 使用的内部服务对服务的 TLS 证书密钥。

registryOverride

使用此参数覆盖默认的 docker.io registry。如果使用其他 registry,请指定 registry 的名称。

collector.disableTaintTolerations

如果指定了 false,则容限应用到 Collector,Collector pod 可以调度到具有污点的所有节点上。如果您将其指定为 true,则不会应用任何容限,Collector pod 不会调度到具有污点的节点。

createUpgraderServiceAccount

指定 true 以创建 sensor-upgrader 帐户。默认情况下,Red Hat Advanced Cluster Security for Kubernetes 在每个安全集群中创建一个名为 sensor-upgrader 的服务帐户。此帐户具有高特权,但仅在升级过程中使用。如果您没有创建这个帐户,当 Sensor 没有足够权限时,则必须手动完成将来的升级。

createSecrets

指定 false 以跳过 Sensor、Collector 和 Admission Controller 的编配 secret 创建。

collector.slimMode

如果要使用 slim Collector 镜像部署 Collector,请指定 true。使用 slim Collector 镜像需要 Central 来提供匹配的 eBPF 探测或内核模块。如果您以离线模式运行 Red Hat Advanced Cluster Security for Kubernetes,您必须从 stackrox.io 下载内核支持软件包,并将其上传到 Central slim Collectors 才能正常工作。否则,您必须确保 Central 可以访问托管在 https://collector-modules.stackrox.io/ 的在线探测存储库。

sensor.resources

Sensor 的资源规格。

admissionControl.resources

Admission Controller 的资源规格。

collector.resources

Collector 的资源规格。

collector.complianceResources

Collector 的 Compliance 容器的资源规格。

exposeMonitoring

如果将此选项设置为 true,Red Hat Advanced Cluster Security for Kubernetes 会在 Sensor、Collector 和 Admission Controller 的端口号 9090 上公开 Prometheus 指标端点。

auditLogs.disableCollection

如果将此选项设置为 true,Red Hat Advanced Cluster Security for Kubernetes 会禁用用于检测对配置映射和 secret 的访问和修改的审计日志检测功能。

scanner.disable

如果将此选项设置为 false,Red Hat Advanced Cluster Security for Kubernetes 会在安全集群中部署轻量级扫描程序和扫描器数据库,以允许扫描 OpenShift Container Registry 上的镜像。只有在 OpenShift 上才支持启用扫描器。默认值为 true

scanner.dbTolerations

如果节点选择器选择污点节点,请使用此参数为 Scanner DB 指定污点容限键、值和效果。

scanner.replicas

Collector 的 Compliance 容器的资源规格。

scanner.logLevel

通过设置此参数,您可以修改扫描程序日志级别。使用这个选项仅用于故障排除目的。

scanner.autoscaling.disable

如果将此选项设置为 true,Red Hat Advanced Cluster Security for Kubernetes 会禁用 Scanner 部署的自动扩展。

scanner.autoscaling.minReplicas

自动扩展的最小副本数。默认值为 2。

scanner.autoscaling.maxReplicas

自动扩展的最大副本数。默认值为 5。

scanner.nodeSelector

将节点选择器标签指定为 label-key: label-value,以强制 Scanner 仅调度到具有指定标签的节点。

scanner.tolerations

如果节点选择器选择污点节点,请使用此参数为 Scanner 指定污点容限键、值和效果。

scanner.dbNodeSelector

将节点选择器标签指定为 label-key: label-value,以强制 Scanner DB 仅调度到具有指定标签的节点。

scanner.dbTolerations

如果节点选择器选择污点节点,请使用此参数为 Scanner DB 指定污点容限键、值和效果。

scanner.resources.requests.memory

Scanner 容器的内存请求。使用此参数覆盖默认值。

scanner.resources.requests.cpu

Scanner 容器的 CPU 请求。使用此参数覆盖默认值。

scanner.resources.limits.memory

Scanner 容器的内存限值。使用此参数覆盖默认值。

scanner.resources.limits.cpu

Scanner 容器的 CPU 限制。使用此参数覆盖默认值。

scanner.dbResources.requests.memory

Scanner DB 容器的内存请求。使用此参数覆盖默认值。

scanner.dbResources.requests.cpu

Scanner DB 容器的 CPU 请求。使用此参数覆盖默认值。

scanner.dbResources.limits.memory

Scanner DB 容器的内存限值。使用此参数覆盖默认值。

scanner.dbResources.limits.cpu

Scanner DB 容器的 CPU 限制。使用此参数覆盖默认值。

4.2.5.1.1. 环境变量

您可以采用以下格式指定 Sensor 和 Admission Controller 的环境变量:

customize:
  envVars:
    ENV_VAR1: "value1"
    ENV_VAR2: "value2"
Copy to Clipboard Toggle word wrap

通过 customize 设置,您可以为此 Helm Chart 创建的所有对象指定自定义 Kubernetes 元数据(标签和注解)以及工作负载的其他 pod 标签、Pod 注解和容器环境变量。

配置是分层的,在更通用范围(例如,所有对象)中定义的元数据被覆盖为更通用范围的元数据(例如,仅适用于 Sensor 部署)。

4.2.6. 安装 secured-cluster-services Helm chart

配置 values-public.yamlvalues-private.yaml 文件后,安装 secure-cluster-services Helm chart 以部署每个集群和每个节点组件(Sensor、Admission Controller 和 Collector)。

Important

要在具有统一可扩展固件接口(UEFI)以及启用了安全引导机制的系统中安装 Collector,您必须使用 eBPF 探测,因为内核模块没有被签名,且 UEFI 固件无法加载未签名的软件包。收集器在启动时用来识别安全引导状态,并切换到 eBPF 探测(如果需要)。

流程

  • 运行以下命令:

    $ helm install -n stackrox --create-namespace \
      stackrox-secured-cluster-services rhacs/secured-cluster-services \
      -f <name_of_cluster_init_bundle.yaml> \
      -f <path_to_values_public.yaml> -f <path_to_values_private.yaml> 
    1
    Copy to Clipboard Toggle word wrap
    1
    使用 -f 选项指定 YAML 配置文件的路径。
注意

要使用持续集成(CI)系统部署 secure-cluster-services Helm Chart,请将 init 捆绑包 YAML 文件作为环境变量传递给 helm install 命令:

$ helm install ... -f <(echo "$INIT_BUNDLE_YAML_SECRET") 
1
Copy to Clipboard Toggle word wrap
1
如果您使用 base64 编码变量,请使用 helm install …​ -f <(echo "$INIT_BUNDLE_YAML_SECRET" | base64 --decode) 命令。

在部署 secure-cluster-services Helm Chart 后,您可以对任何配置选项进行更改。

流程

  1. 使用新值更新 values-public.yamlvalues-private.yaml 配置文件。
  2. 运行 helm upgrade 命令并使用 -f 选项指定配置文件:

    $ helm upgrade -n stackrox \
      stackrox-secured-cluster-services rhacs/secured-cluster-services \
      --reuse-values \ 
    1
    
      -f <path_to_values_public.yaml> \
      -f <path_to_values_private.yaml>
    Copy to Clipboard Toggle word wrap
    1
    您必须指定 --reuse-values 参数,否则 Helm upgrade 命令重置所有之前配置的设置。
    注意

    您还可以使用 --set--set-file 参数指定配置值。但是,这些选项不会被保存,需要您在每次进行更改时手动指定所有选项。

4.2.7. 验证安装

完成安装后,运行几个存在安全漏洞的应用程序并进入 RHACS 门户来评估安全评估结果和策略违反结果。

注意

以下部分中列出的示例应用程序包含关键漏洞,它们旨在验证 Red Hat Advanced Cluster Security for Kubernetes 的构建和部署时间评估功能。

验证安装:

  1. 根据您的暴露的方法查找 RHACS 门户地址:

    1. 对于路由:

      $ oc get route central -n stackrox
      Copy to Clipboard Toggle word wrap
    2. 对于负载均衡器:

      $ oc get service central-loadbalancer -n stackrox
      Copy to Clipboard Toggle word wrap
    3. 对于端口转发:

      1. 运行以下命令:

        $ oc port-forward svc/central 18443:443 -n stackrox
        Copy to Clipboard Toggle word wrap
      2. 进入到 https://localhost:18443/
  2. 使用 OpenShift Container Platform CLI 创建新项目:

    $ oc new-project test
    Copy to Clipboard Toggle word wrap
  3. 使用关键漏洞启动一些应用程序:

    $ oc run shell --labels=app=shellshock,team=test-team \
      --image=vulnerables/cve-2014-6271 -n test
    $ oc run samba --labels=app=rce \
      --image=vulnerables/cve-2017-7494 -n test
    Copy to Clipboard Toggle word wrap

Red Hat Advanced Cluster Security for Kubernetes 会在向集群提交后自动扫描这些部署以了解安全风险以及策略违反情况。进入 RHACS 门户以查看违反情况。您可以使用默认用户名 admin 和生成的密码登录到 RHACS 门户。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat