在 Red Hat OpenShift 中使用 Helm 图表管理 Workload Protection 代理

您可以使用 Helm 图表在 Red Hat OpenShift 集群上安装、升级和删除 Workload Protection 代理。

您还可以使用控制台,将现有的 Red Hat OpenShift 或 Kubernetes 集群连接到您的 Workload Protection 实例。 在 IBM Cloud 控制台中,转到 “容器”>“集群” 以访问现有集群。 然后,在“Workload Protection”小部件中点击“连接”,将您的集群连接到 Workload Protection。

准备工作

  • 在您的本地计算机上安装最新版本的 Helm 命令行工具。 Helm 需要 3.6 或更高版本。

  • 安装 IBM Cloud 命令行工具、Kubernetes Service 插件、IBM Cloud Container Registry 插件,以及 Red Hat OpenShift 和 Kubernetes 命令行工具。 如需了解更多信息,请参阅 “安装 CLI”

  • 请确认您拥有在集群上部署 Workload Protection 代理所需的访问权限和许可。

  • 请确认您的集群中是否已部署 ibm-observe 项目。 代理程序部署在此项目中。

    项目是集群中的名称空间。

    要创建该项目,请运行 oc adm new-project --node-selector='' ibm-observe

  • 请确认从您的集群发往 Workload Protection 端点的出站流量在端口 4436443 上是被允许的。 如果通过虚拟私有端点(VPE)连接代理,则必须允许这两个端口从集群发出出站流量。

部署代理

请按照以下步骤,使用 Helm 部署代理。

设置集群上下文

  1. 登录您的账户。 如果您有联合帐户,请包括 --sso 选项。

    ibmcloud login [-g <resource_group>] [--sso]
    
  2. 将集群的 kubeconfig 配置文件下载并添加到 ~/.kube/config 中的现有 kubeconfigKUBECONFIG 环境变量中的最后一个文件。

    ibmcloud oc cluster config --cluster <cluster_name_or_ID>
    
  3. 在浏览器中,访问集群控制器的地址 URL,并在其后添加 /console。 例如,https://c0.containers.cloud.ibm.com:23652/console

  4. 在 Red Hat OpenShift 网页控制台的菜单栏中,点击您的个人资料 IAM#user.name@email.com > 复制登录命令。 显示 oc login 令牌命令并将其复制到命令行以通过 CLI 进行认证。

  5. 通过检查版本,验证 oc 命令是否针对您的集群正常运行。

    oc version
    

    示例输出:

    Client Version: v4.11.0
    Kubernetes Version: v1.25.8.2
    

    如果您无法执行需要管理员权限的操作(例如列出集群中的所有工作节点或 Pod),请通过运行 ibmcloud oc cluster config --cluster <cluster_name_or_ID> --admin 命令,下载该集群管理员的 TLS 证书和权限文件。

设置 Sysdig 的 Helm 软件源

向 Helm 实例添加 Workload Protection Helm 存储库。

  1. 添加 Helm 仓库。

    helm repo add sysdig https://charts.sysdig.com
    
  2. 更新仓库以获取所有 Helm 图表的最新版本。

    helm repo update
    
  3. 列出 Sysdig 存储库中目前可用的 Helm 图表。

    helm search repo sysdig
    
  4. 请确认列表中是否包含 sysdig/sysdig-deploy 的 Helm 图表。

创建名为 YAML 的值文件

定义一个 YAML 文件,并在其中包含用于部署 Workload Protection 代理以及您计划部署的Secure组件的值。 例如,将文件命名为 agent-values-monitor-secure.yaml

以下 YAML 是一个模板,您可以使用它来配置 Workload Protection 代理和Secure组件。 您可以通过删除或使用 # 注释掉代理不需要的部分,来自定义该文件。

agent:
  ebpf:
    enabled: true
    kind: universal_ebpf
  collectorSettings:
    collectorHost: INGESTION_ENDPOINT
  sysdig:
    settings:
      host_scanner:
        enabled: true
      kspm_analyzer:
        enabled: true
      sysdig_api_endpoint: API_ENDPOINT
  extraVolumes:
    volumes:
    - name: root-vol
      hostPath:
        path: /
    - name: tmp-vol
      hostPath:
        path: /tmp
    mounts:
    - mountPath: /host
      name: root-vol
      readOnly: true
    - mountPath: /host/tmp
      name: tmp-vol
global:
  imageRegistry: icr.io/ext
  clusterConfig:
    name: CLUSTER_NAME
  sysdig:
    accessKey: SERVICE_ACCESS_KEY
    apiHost: API_ENDPOINT
nodeAnalyzer:
  enabled: false
clusterShield:
  enabled: true
  cluster_shield:
    sysdig_endpoint:
      region: custom
      collector: INGESTION_ENDPOINT:6443
    log_level: info
    features:
      admission_control:
        enabled: true
        container_vulnerability_management:
          enabled: true
        dry_run: false
      container_vulnerability_management:
        enabled: true
      audit:
        enabled: true
      posture:
        enabled: true

其中:

CLUSTER_NAME
您正在向其部署代理的集群名称。
SERVICE_ACCESS_KEY
Workload Protection 实例的访问密钥。
INGESTION_ENDPOINT
该实例的摄入端点。 例如,ingest.us-east.security-compliance-secure.cloud.ibm.com
API_ENDPOINT
该实例的 API 端点。 例如,us-east.security-compliance-secure.cloud.ibm.com

安装 Helm 图表

要部署代理、Secure 组件或两者,请安装 sysdig/sysdig-deploy 图表,并使用您在上一步中配置的变量文件 YAML

运行以下命令以使用 Helm Chart 安装代理程序:

helm install -n ibm-observe sysdig-agent sysdig/sysdig-deploy -f agent-values-monitor-secure.yaml

以下示例展示了一个针对 us-east 区域的 Helm 值文件示例:

agent:
  ebpf:
    enabled: true
    kind: universal_ebpf
  collectorSettings:
    collectorHost: ingest.private.us-east.security-compliance-secure.cloud.ibm.com
  sysdig:
    settings:
      host_scanner:
        enabled: true
      kspm_analyzer:
        enabled: true
      sysdig_api_endpoint: private.us-east.security-compliance-secure.cloud.ibm.com
  extraVolumes:
    volumes:
    - name: root-vol
      hostPath:
        path: /
    - name: tmp-vol
      hostPath:
        path: /tmp
    mounts:
    - mountPath: /host
      name: root-vol
      readOnly: true
    - mountPath: /host/tmp
      name: tmp-vol
global:
  imageRegistry: icr.io/ext
  clusterConfig:
    name: my-cluster
  sysdig:
    accessKey: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx
    apiHost: private.us-east.security-compliance-secure.cloud.ibm.com
nodeAnalyzer:
  enabled: false
clusterShield:
  enabled: true
  cluster_shield:
    sysdig_endpoint:
      region: custom
      collector: ingest.private.us-east.security-compliance-secure.cloud.ibm.com:6443
    log_level: info
    features:
      admission_control:
        enabled: true
        container_vulnerability_management:
          enabled: true
        dry_run: false
      container_vulnerability_management:
        enabled: true
      audit:
        enabled: true
      posture:
        enabled: true

更新代理

要使用 Helm更新代理程序版本,请完成以下步骤:

  1. 更新 Helm 仓库。

    helm repo update
    
  2. 升级代理程序。

    helm upgrade -n ibm-observe sysdig-agent sysdig/sysdig-deploy -f agent-values-monitor-secure.yaml
    

按照以下步骤,可将您的代理升级到最新可用版本。

删除代理

您还可以使用控制台将代理从集群中移除。 在 IBM Cloud 控制台中,转到 “容器”>“集群” 以访问现有集群。 然后,在“Workload Protection”小部件中打开 “选项” 菜单,并选择 “断开连接”

若要通过 Helm 删除该代理,请卸载该图表。

  1. 列出已安装的 Chart。

    helm list -n ibm-observe
    

    输出结果列出了已安装的图表:

    NAME        	NAMESPACE  	REVISION	UPDATED                             	STATUS  	CHART              	APP VERSION
    sysdig-agent	ibm-observe	1       	2023-03-24 15:02:58.408108 +0100 CET	deployed	sysdig-deploy-1.6.3
    
  2. 卸载 Chart。

    helm delete sysdig-agent -n ibm-observe
    

    在 Helm 中,sysdig-agent 是该版本的名称。