使用 HELM 图表管理 Satellite 集群中的 Workload Protection 代理程序
您可以使用 Helm Chart 在 Satellite 集群上安装,升级和删除 Workload Protection 组件。
准备工作
-
在本地计算机上安装 V 3 Helm CLI 的最新发行版。
需要 Helm 3.6 或更高版本。
Helm 是 Kubernetes 软件包管理器,它使用 Helm Chart 来定义,安装和升级集群中的复杂 Kubernetes 应用程序。 Helm chart 用于对规范打包,这些规范可为构建应用程序的 Kubernetes 资源生成 YAML 文件。 这些 Kubernetes 资源将自动应用到集群中,并由 Helm分配到某个版本。 您还可以使用 Helm 来指定和打包您自己的应用程序,并让 Helm 为 Kubernetes 资源生成 YAML 文件。
-
检查您是否具有在集群上部署 Workload Protection 代理程序的访问权和许可权。
-
验证
ibm-observe
名称空间在集群中是否可用。 代理程序部署在此名称空间中。 项目是集群中的名称空间。您可以运行以下命令来创建名称空间:
oc adm new-project --node-selector='' ibm-observe
-
获取 Workload Protection
ingest
端点。 此端点与下一步中创建的端点不同。 访问 Satellite 位置,然后选择 链接端点 和 系统端点。 复制以指向ingest.private.<region>.monitoring.cloud.ibm.com
的 Satellite-sysdig- 开头的system
端点。 稍后可以将此端点用作INGESTION_SATELLITE_ENDPOINT
。
在部署 Workload Protection 组件之前,请为 Workload Protection 专用 API 端点创建 Satellite 链接端点。
创建 Workload Protection Satellite 链接端点
创建 HTTPS 使用控制台或 CLI 的 Satellite Link 以安全地连接到 Workload Protection 专用端点。
-
获取 Workload Protection 专用端点。 例如,如果 Workload Protection 实例位于
us-east
中,那么端点将为private.us-east.security-compliance-secure.cloud.ibm.com
。 -
访问 Satellite 位置 仪表板。 链接端点,然后单击 创建端点。
-
选择 云 为在该位置外部运行的服务,服务器或应用程序创建端点。
-
输入端点名称,目标域名 (FQDN) 应该是步骤 1 和目标端口 443 中定义的 Workload Protection 专用端点。
-
选择 HTTPS 协议。
-
单击“创建”。 等待几分钟,以便 Satellite Link 连接器组件向端点分配端口。
-
在端点的表行中,在 地址 字段中复制 Satellite Link 连接器的主机名和端点的端口。 您需要在以下步骤中使用它。
在以下步骤中使用此端点作为 API_ENDPOINT
。
部署代理程序
完成以下步骤以使用 Helm部署代理程序:
步骤 1. 设置集群上下文
-
登录到帐户。 如果您有联合帐户,请包括
--sso
选项。ibmcloud login [-g <resource_group>] [--sso]
-
将集群的
kubeconfig
配置文件下载并添加到~/.kube/config
中的现有kubeconfig
或KUBECONFIG
环境变量中的最后一个文件。ibmcloud oc cluster config --cluster <cluster_name_or_ID>
-
在浏览器中,导航至 Master URL 的地址并附加
/console
。 例如,https://c0.containers.cloud.ibm.com:23652/console
。 -
从 Red Hat OpenShift Web 控制台菜单栏中,单击概要文件 IAM#user.name@email.com > 复制登录命令。 显示
oc login
令牌命令并将其复制到命令行以通过 CLI 进行认证。 -
通过检查版本,验证
oc
命令是否针对您的集群正常运行。oc version
您的输出应该类似于以下示例:
Client Version: v4.11.0 Kubernetes Version: v1.25.8.2
步骤 2. 设置 Sysdig Helm 存储库
向 Helm 实例添加 Workload Protection Helm 存储库。
完成以下步骤:
-
设置集群上下文。
ibmcloud ks cluster config --cluster <CLUSTER_NAME>
-
添加 Helm 存储库。
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 chart 的最新版本。
helm repo update
-
列出当前可用于 Sysdig 存储库的 Helm 图表。
helm search repo sysdig
-
验证是否列出了 Helm Chart
sysdig/sysdig-deploy
。
步骤 3. 创建 Helm 值文件
定义 yaml 文件并包含用于部署您计划部署的 Workload Protection 组件的值。 例如,将文件命名为 agent-values-monitor-secure.yaml
。
以下 yaml 是可用于配置 Workload Protection 组件的模板。 您可以通过使用 #
除去或注释代理程序部署不需要的部分来定制该文件。
agent:
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
。 在这种情况下,将同时定义主机名和端口。
第 4 步, 安装 Helm Chart
要部署代理程序和/或 Workload Protection 组件,必须安装 sysdig/sysdig-deploy
Chart 并使用在上一步中配置的变量 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 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
是先前抽取的指向ingest
端点的 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
。 在这种情况下,将同时定义主机名和端口。
更新代理程序
建议至少每 2 个月更新一次 Workload Protection。
要使用 Helm更新代理程序版本,请完成以下步骤:
-
更新图表。
helm repo update
-
升级代理程序。
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.37.10
-
卸载 Chart。
helm delete sysdig-agent -n ibm-observe
就 Helm而言,
sysdig-agent
是发行版的名称。如果忘记在命令中包含名称空间,那么会发生以下错误:
Error: uninstall: Release not loaded: sysdig-agent: release: not found
。