在外部的 Kubernetes 或 Red Hat OpenShift 集群中部署代理

除了可在 IBM Cloud 上运行外,IBM Cloud® Security and Compliance Center Workload Protection 提供的集中式安全与合规框架还可通过使用 Helm 图表,将 Workload Protection 代理安装到 Kubernetes 或 Red Hat OpenShift 集群上,从而在其他云环境和本地环境中运行。

准备工作

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

    Helm 这是一个基于 Kubernetes 的包管理器,它利用 Helm 图表来定义、安装和升级集群中的复杂 Kubernetes 应用。 Helm chart 用于对规范打包,这些规范可为构建应用程序的 Kubernetes 资源生成 YAML 文件。 这些 Kubernetes 资源会通过 Helm 自动应用到您的集群中,并分配给一个版本。 您还可以使用 Helm 来指定和打包您自己的应用程序,并让 Helm 为 Kubernetes 资源生成 YAML 文件。

  • 请确认您拥有在集群上部署 Workload Protection 代理所需的访问权限和许可。 在 Kubernetes 集群上,您必须拥有在该集群上运行 kubectl 命令的权限。 在 Red Hat OpenShift 集群上,您必须具备运行 oc 命令的权限。 请查阅您所用集群的文档,以了解如何获取适当的权限级别,以及如何配置本地机器以便向集群发出命令。

  • 请确认您的集群中是否可用 ibm-observe 命名空间。 代理程序部署在此名称空间中。

    要创建该命名空间,请运行 kubectl create namespace ibm-observe

  • 请确认从您的集群发往 Workload Protection 端点的出站流量在端口 4436443 上是被允许的。

部署代理

在确保拥有足够版本的 Helm 并具备在集群上执行命令的权限后,您可以通过 Helm 在 Kubernetes 或 Red Hat OpenShift 上安装、升级和删除 Workload Protection 代理。

  1. 在本地机器上将 Sysdig 添加为 Helm 图表的仓库。

    helm repo add sysdig https://charts.sysdig.com
    

    如果发生了以下错误:

  2. 更新仓库引用。

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

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

  5. 安装 Workload Protection 代理。 您可以通过创建一个 YAML Helm 值文件(其中列出了各项值),然后执行一条引用该文件的命令来进行安装。

    若要使用 Helm 配置文件进行安装,请先创建一个名为 agent-values-monitor-secure.yaml 的文件。 以下 YAML 是一个模板,您可以使用它来配置 Workload Protection 代理。 您可以通过删除或使用 # 注释掉代理不需要的部分,来自定义该文件。

    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:
      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
  6. 然后,运行引用已创建的 Helm 值文件的安装命令:

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

更新代理

要将代理更新至最新可用版本,请按照以下步骤操作:

  1. 更新 Helm 仓库。

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

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

删除代理

若要通过 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 是该版本的名称。