在外部 Kubernetes 或 OpenShift 集群中部署代理程序
除了能够在 IBM Cloud中运行外,IBM Cloud® Security and Compliance Center Workload Protection 提供的集中式安全和合规性框架还可以在其他云和本地运行,方法是使用 Helm Chart 将 Workload Protect 代理程序安装到 Kubernetes 或 OpenShift 集群上。
准备工作
-
在本地计算机上安装 V 3 Helm CLI 的最新发行版。
需要 Helm 3.6 或更高版本。
Helm 是一个 Kubernetes 包管理器,它使用 Helm 图表来定义、安装和升级群集中的复杂 Kubernetes 应用程序。 Helm chart 用于对规范打包,这些规范可为构建应用程序的 Kubernetes 资源生成 YAML 文件。 这些 Kubernetes 资源会在集群中自动应用,并由 Helm 分配版本。 您还可以使用 Helm 来指定和打包您自己的应用程序,并让 Helm 为 Kubernetes 资源生成 YAML 文件。
-
检查您是否具有在集群上部署 Workload Protection 代理程序的访问权和许可权。 在 Kubernetes 集群上,这意味着有权在集群上运行
kubectl
命令。 在 OpenShift 集群上,这意味着有权运行oc
命令。 请查看集群的文档,以了解有关获取相应级别的许可权以及设置本地机器以便能够正确向集群发出命令的更多信息。 -
验证
ibm-observe
名称空间在集群中是否可用。 代理程序部署在此名称空间中。您可以运行以下命令来创建名称空间:
kubectl create namespace ibm-observe
部署代理程序
具有足够版本的 Helm 以及在集群上运行命令的许可权后,可以使用 Helm 在 Kubernetes 或 OpenShift上安装,升级和删除 Workload Protection。
-
在本地机器上添加 Sysdig 作为 Helm Chart 的存储库:
helm repo add sysdig https://charts.sysdig.com
如果发生了以下错误:
helm repo add sysdig https://charts.sysdig.com --debug Error: context deadline exceeded helm.go:84: [debug] context deadline exceeded
运行以下命令,然后重试添加 Helm 存储库。
rm $HOME/Library/Preferences/helm/repositories.lock
-
通过发出
helm repo update
来更新存储库引用。 -
列出当前可用于 Sysdig 软件仓库的 Helm 图表。
helm search repo sysdig
-
验证是否列出了 Helm Chart
sysdig/sysdig-deploy
。 -
安装 Workload Protection。 可以通过发出 Helm 命令来设置某些值 (让我们将其称为
--set
方法),或者通过创建 yaml Helm 值文件 (其中列出了值),然后发出引用该文件的命令来完成此操作。 任一路径都可用于成功安装 Workload Protection 代理程序。a. 要在发出
helm
命令时设置值:
helm install sysdig-agent sysdig/sysdig-deploy --namespace ibm-observe --create-namespace \
--set global.sysdig.accessKey=<SERVICE_ACCESS_KEY> \
--set agent.collectorSettings.collectorHost=<INGESTION_ENDPOINT> \
--set nodeAnalyzer.nodeAnalyzer.apiEndpoint=<API_ENDPOINT> \
--set nodeAnalyzer.nodeAnalyzer.runtimeScanner.deploy=false \
--set nodeAnalyzer.nodeAnalyzer.hostScanner.scanOnStart=true \
--set nodeAnalyzer.secure.vulnerabilityManagement.newEngineOnly=true \
--set global.kspm.deploy=true \
--set nodeAnalyzer.nodeAnalyzer.benchmarkRunner.deploy=false \
--set clusterScanner.enabled=true \
--set global.clusterConfig.name=iks-ctolon \
--set kspmCollector.apiEndpoint=<API_ENDPOINT>
其中:
-
CLUSTER_NAME
是要在其中部署代理程序的集群的名称。 -
SERVICE_ACCESS_KEY
是工作负载保护实例访问密钥。 -
INGESTION_ENDPOINT
是实例的采集端点。 -
API_ENDPOINT
是 intance 的 API 端点。b. 要使用 Helm 值文件进行安装,请首先创建名为
agent-values-monitor-secure.yaml
的文件 (或类似的文件)。 以下 yaml 是可用于配置 Workload Protection 代理程序的模板。 您可以通过使用#
除去或注释代理程序部署不需要的部分来定制该文件。
global:
clusterConfig:
name: CLUSTER_NAME
sysdig:
accessKey: SERVICE_ACCESS_KEY
kspm:
deploy: true
agent:
collectorSettings:
collectorHost: INGESTION_ENDPOINT
nodeAnalyzer:
secure:
vulnerabilityManagement:
newEngineOnly: true
nodeAnalyzer:
deploy: true
runtimeScanner:
deploy: false
apiEndpoint: API_ENDPOINT
benchmarkRunner:
deploy: false
kspmCollector:
apiEndpoint: API_ENDPOINT
clusterScanner:
enabled: true
其中:
CLUSTER_NAME
是要在其中部署代理程序的集群的名称。SERVICE_ACCESS_KEY
是工作负载保护实例访问密钥。INGESTION_ENDPOINT
是实例的采集端点。API_ENDPOINT
是 intance 的 API 端点。
然后,运行引用已创建的 Helm 值文件的安装命令:
helm install -n ibm-observe sysdig-agent sysdig/sysdig-deploy -f agent-values-monitor-secure.yaml
更新代理程序
要使用 Helm更新代理程序版本,请完成以下步骤:
-
更新图表。
helm repo update
-
查找用于部署代理程序的值 yaml 文件,并使用要部署的代理程序版本修改
agent.image.tag
。 -
升级代理程序。
helm upgrade -n ibm-observe sysdig-agent sysdig/sysdig-deploy -f agent-values-monitor-secure.yaml
除去代理程序
要使用 Helm删除代理程序,必须卸载 Chart。
完成以下步骤:
-
列出已安装的 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
-
卸载 Chart。
helm delete sysdig-agent -n ibm-observe
就 Helm而言,
sysdig-agent
是发行版的名称。如果忘记在命令中包含名称空间,那么会发生以下错误:
Error: uninstall: Release not loaded: sysdig-agent: release: not found
。