使用 Helm 圖表管理 Satellite 叢集中的 Workload Protection 代理程式

您可以使用 Helm 圖表,在您的 Satellite 叢集中安裝、升級及刪除 Workload Protection 代理程式。

開始之前

  • 安裝 IBM Cloud CLI、Kubernetes Service 外掛程式、IBM Cloud Container Registry 外掛程式,以及 Red Hat OpenShift 和 Kubernetes CLI。 如需更多資訊,請參閱「安裝 CLI」。

  • 請在您的本地電腦上安裝 Helm CLI 的最新版本。 Helm 需要 3.6 或更新版本。

    Helm 這是一款基於 Kubernetes 的套件管理工具,透過 Helm 圖表來定義、安裝及升級叢集中的複雜 Kubernetes 應用程式。 Helm Chart 會包裝規格,以針對建置應用程式的 Kubernetes 資源產生 YAML 檔案。 這些 Kubernetes 資源會透過 Helm 自動套用至您的叢集,並指派至特定版本。 您也可以使用 Helm 來指定並包裝自己的應用程式,並讓 Helm 針對 Kubernetes 資源產生 YAML 檔案。

  • 取得 Workload Protection ingest 端點。 存取 Satellite 位置,然後選取 鏈結端點系統端點。 請複製以 satellite-sysdig- 開頭、指向 ingest.private.<region>.monitoring.cloud.ibm.comsystem 端點。 您稍後可以使用此端點,網址為 INGESTION_SATELLITE_ENDPOINT

  • 從您的群集到 Workload Protection 終點的出站流量需要連接埠 4436443

  • 請確認您擁有在叢集上部署「Workload Protection」代理程式的必要存取權限與授權。

  • 請確認您的叢集中是否提供 ibm-observe 命名空間。 代理程式已部署在此名稱空間中。

    要建立此命名空間,請執行 oc adm new-project --node-selector='' ibm-observe

  • 取得 Workload Protection ingest 端點。 存取 Satellite 位置,然後選取 鏈結端點系統端點。 請複製以 satellite-sysdig- 開頭的 system 端點,該端點指向 ingest.private.<region>.monitoring.cloud.ibm.com。 您稍後可以使用此端點,網址為 INGESTION_SATELLITE_ENDPOINT

  • 請確認從您的叢集發往 Workload Protection 端點的出站流量,在 4436443 埠上已獲准通過。

部署代理程式

請依照以下步驟,使用 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 token」指令複製到您的命令列中,以便透過 CLI 進行驗證。

  5. 透過檢查版本,驗證 oc 指令是否針對您的叢集正常執行。

    oc version
    

    輸出範例:

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

設定 Sysdig Helm 儲存庫

將 Workload Protection Helm 儲存庫新增至 Helm 實例。

  1. 設定叢集環境定義。

    ibmcloud ks cluster config --cluster <CLUSTER_NAME>
    
  2. 新增 Helm 儲存庫。

    helm repo add sysdig https://charts.sysdig.com
    
  3. 更新儲存庫,以取得所有 Helm 圖表的最新版本。

    helm repo update
    
  4. 列出 Sysdig 儲存庫中目前可用的 Helm 圖表。

    helm search repo sysdig
    
  5. 請確認「sysdig/sysdig-deploy」Helm 圖表是否已列出。

建立 Helm 值檔案

定義一個 YAML 檔案,並在其中包含用於部署您計劃部署的 Workload Protection 元件的相關值。 例如,將檔案命名為 agent-values-monitor-secure.yaml

以下 YAML 是一個範本,您可以藉此設定 Workload Protection 的各項元件。 您可以透過移除或使用 # 註解掉代理程式部署中不需要的區段,來自訂該檔案。

agent:
  ebpf:
    enabled: true
    kind: universal_ebpf
  collectorSettings:
    collectorHost: INGESTION_SATELLITE_ENDPOINT
    collectorPort: INGESTION_SATELLITE_ENDPOINT_PORT
  slim:
    enabled: true
global:
  clusterConfig:
    name: CLUSTER_NAME
  kspm:
    deploy: true
  sysdig:
    accessKey: SERVICE_ACCESS_KEY
    apiHost: API_ENDPOINT
nodeAnalyzer:
  secure:
    vulnerabilityManagement:
      newEngineOnly: true
  nodeAnalyzer:
    runtimeScanner:
      deploy: false
    benchmarkRunner:
      deploy: false
    hostScanner:
      deploy: false
    deploy: true
  natsUrl: wss://API_ENDPOINT
  sslVerifyCertificate: false
kspmCollector:
  natsUrl: wss://API_ENDPOINT
  sslVerifyCertificate: false
clusterScanner:
  enabled: true
  eveEnabled: true
  sslVerifyCertificate: false

其中:

CLUSTER_NAME
您正在部署代理程式的叢集名稱。
SERVICE_ACCESS_KEY
Workload Protection 實例的存取金鑰。
INGESTION_SATELLITE_ENDPOINT
先前擷取的 Satellite 端點,該端點指向資料匯入端點。 例如,c1bcda0323e0ef4b83aba-6b64a6ccc9c596bf59a86625d8fa2202-c111.us-east.satellite.appdomain.cloud
INGESTION_SATELLITE_ENDPOINT_PORT
來自 Satellite 先前擷取的端點 的端口,該端口指向 ingest 端點。 例如,30771
API_ENDPOINT
先前擷取的 Satellite 端點,該端點指向 Workload Protection 這個私有 API 端點。 例如,c1bcda0323e0ef4b83aba-6b64a6ccc9c596bf59a86625d8fa2202-c111.us-east.satellite.appdomain.cloud:31924。 在此情況下,主機名稱和埠會一起定義。

安裝「Helm」圖表

若要部署代理程式、Workload Protection 元件,或兩者皆部署,請安裝 sysdig/sysdig-deploy 圖表,並使用您在上一步驟中設定的 YAML 變數檔案。

執行下列指令,以使用 Helm Chart 來安裝代理程式:

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

若您想直接安裝 Workload Protection 元件,而不使用 Helm 值檔,可以執行以下指令。 請使用 --set 來設定所有變數。

helm install sysdig-agent sysdig/sysdig-deploy --namespace ibm-observe --create-namespace \
    --set agent.ebpf.enabled=true \
    --set agent.ebpf.kind=universal_ebpf \
    --set global.sysdig.accessKey=<SERVICE_ACCESS_KEY> \
    --set global.sysdig.apiHost=<API_ENDPOINT> \
    --set agent.collectorSettings.collectorHost=<INGESTION_SATELLITE_ENDPOINT> \
    --set agent.collectorSettings.collectorPort=<INGESTION_SATELLITE_ENDPOINT_PORT> \
    --set nodeAnalyzer.natsUrl=wss://<API_ENDPOINT> \
    --set nodeAnalyzer.nodeAnalyzer.runtimeScanner.deploy=false \
    --set nodeAnalyzer.nodeAnalyzer.hostScanner.deploy=false \
    --set nodeAnalyzer.nodeAnalyzer.benchmarkRunner.deploy=false \
    --set nodeAnalyzer.nodeAnalyzer.sslVerifyCertificate=false \
    --set nodeAnalyzer.secure.vulnerabilityManagement.newEngineOnly=true \
    --set global.kspm.deploy=true \
    --set global.clusterConfig.name=<CLUSTER_NAME> \
    --set kspmCollector.natsUrl=wss://<API_ENDPOINT> \
    --set kspmCollector.sslVerifyCertificate=false \
    --set clusterScanner.enabled=true \
    --set clusterScanner.eveEnabled=true \
    --set clusterScanner.sslVerifyCertificate=true

其中:

CLUSTER_NAME
您正在部署代理程式的叢集名稱。
SERVICE_ACCESS_KEY
Workload Protection 實例的存取金鑰。
INGESTION_SATELLITE_ENDPOINT
先前擷取的 Satellite 端點,其指向 ingest 端點。 例如,c1bcda0323e0ef4b83aba-6b64a6ccc9c596bf59a86625d8fa2202-c111.us-east.satellite.appdomain.cloud
INGESTION_SATELLITE_ENDPOINT_PORT
來自 Satellite 先前擷取的端點 的端口,該端口指向 ingest 端點。 例如,30771
API_ENDPOINT
先前擷取的 Satellite 端點,該端點指向 Workload Protection 這個私有 API 端點。 例如,c1bcda0323e0ef4b83aba-6b64a6ccc9c596bf59a86625d8fa2202-c111.us-east.satellite.appdomain.cloud:31924。 在此情況下,主機名稱和埠會一起定義。

更新代理程式

請至少每兩個月更新一次 Workload Protection 代理程式。

若要使用 Helm來更新代理程式版本,請完成下列步驟:

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

    helm delete sysdig-agent -n ibm-observe
    

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