在外部的 Kubernetes 或 Red Hat OpenShift 叢集中部署代理程式

除了能在 IBM Cloud 上運行外,IBM Cloud® Security and Compliance Center Workload Protection 所提供的集中式安全與合規框架,亦可透過 Helm 圖表,將 Workload Protection 代理程式安裝至 Kubernetes 或 Red Hat OpenShift 叢集,進而在其他雲端環境及本地端運行。

開始之前

  • 請在您的本地電腦上安裝 Helm CLI 的最新版本。 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. 列出已安裝的圖表。

    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. 解除安裝圖表。

    helm delete sysdig-agent -n ibm-observe
    

    在 Helm 中,sysdig-agent 是該版本的名稱。