使用 Kubernetes 代理程序
在 IBM Cloud中供应 IBM Cloud® Monitoring 服务的实例后,可以在集群上部署 Monitoring 代理程序以自动收集数据和度量值。 可以配置每个环境中要监视的度量值。
您可以为每个监控代理关联一个或多个标签。 标记是格式为 TAG_NAME:TAG_VALUE 的逗号分隔值。 监视环境时,可以使用这些标记来标识代理程序提供的度量值。 例如,可以使用此代理程序收集的所有度量值来包含有关服务名称和位置的信息。
先决条件
-
检查主题 调整代理程序
-
-
IBM Cloud CLI (
ibmcloud
) -
IBM Cloud Kubernetes Service 插件 (
ibmcloud ks
) -
IBM Cloud Container Registry 插件 (
ibmcloud cr
) -
IBM Cloud Kubernetes Service 可观察性插件 (
ibmcloud ob
)
-
-
确保
kubectl
版本与集群版本兼容。 如果kubectl
版本不兼容,那么可能会发生错误,例如kubectl create clusterrolebinding failed!
。 您可以使用kubectl version --short
来检查集群和kubectl
客户机的版本。 -
如果计划使用节点分析器运行 Monitoring 服务和/或 Workload Protection,请检查集群类型模板。 要运行节点分析器,您至少需要
b3c.4x16
类型模板。如果您具有具有
free
套餐的集群,那么没有足够的 CPU 来运行 Monitoring 代理程序。 -
获取访问密钥。 有关更多信息,请参阅 获取访问密钥。
-
获取公共或专用采集 URL。 有关更多信息,请参阅 收集器端点。
-
登录 Kubernetes 集群。 选择登录到 Kubernetes 集群的方法。 了解有关登录方法的更多信息。
-
如果计划安装 image-analyzer,host-analyzer 和 benchmark 运行程序,请检查是否启用了公共端点。 例如,要在虚拟私有云 (VPC) 中的集群内部署这些组件,请检查是否已将公共网关连接到为集群配置的子网。
使用脚本部署代理程序
要使用此脚本,必须至少为 Kubernetes 集群分配 Viewer
和 Manager
IAM 许可权。
要部署代理,请运行以下命令:
curl -sL https://ibm.biz/install-sysdig-k8s-agent | bash -s -- -a ACCESS_KEY -c COLLECTOR_ENDPOINT -t TAG_DATA -ac 'sysdig_capture_enabled: false' --nodeanalyzer --analysismanager https://<COLLECTOR ENDPOINT>/internal/scanning/scanning-analysis-collector --collector_port 6443 --api_endpoint <API-ENDPOINT> [-as] [-af]
Where
-
ACCESS_KEY是实例的摄入密钥。
-
COLLECTOR_ENDPOINT 是实例可用区域中的公共或私有摄取 URL。 要获取端点,请参阅 Collector 端点。
-
TAG_DATA 是格式为 TAG_NAME:TAG_VALUE 的逗号分隔标记。 您可以为您的经纪人添加一个或多个标签。 例如:role:serviceX,location:us-south。
-
将sysdig_capture_enabled 设置为 false,以禁用捕获功能。 缺省情况下,此值设置为 true。 有关更多信息,请参阅使用捕获。
-
添加
--imageanalyzer --analysismanager https://<COLLECTOR ENDPOINT>/internal/scanning/scanning-analysis-collector
以安装映像分析器组件。 当您具有在 Container Registry中托管的映像时,请配置此组件。 -
添加
--nodeanalyzer --analysismanager https://<COLLECTOR ENDPOINT>/internal/scanning/scanning-analysis-collector --api_endpoint <API-ENDPOINT>
以安装 image-analyzer,host-analyzer 和 benchmark runner。 基准程序运行器需要API_ENDPOINT
。 映像分析器需要COLLECTOR_ENDPOINT
。 -
添加用于定义要部署的代理程序类型的选项:
-
-as
以部署瘦代理程序。 这是缺省选项。 使用此选项可减少潜在漏洞的攻击表面积。 部署代理程序时,将代理程序包安装为两个容器,一个容器运行 agent-kmodule,另一个容器运行 agent-slim。 -
-af
以部署完整代理程序。 部署代理程序时,该代理程序将作为单个容器或服务运行。
-
要使用公共端点部署代理程序,请运行以下命令:
curl -sL https://ibm.biz/install-sysdig-k8s-agent | bash -s -- -a ACCESS_KEY -c ingest.<REGION>.monitoring.cloud.ibm.com -t TAG_DATA -ac 'sysdig_capture_enabled: false' --nodeanalyzer --analysismanager https://ingest.<REGION>.monitoring.cloud.ibm.com/internal/scanning/scanning-analysis-collector --collector_port 6443 --api_endpoint <REGION>.monitoring.cloud.ibm.com [-as] [-af]
{: codeblock} API
要使用专用端点部署代理程序,请运行以下命令:
curl -sL https://ibm.biz/install-sysdig-k8s-agent | bash -s -- -a ACCESS_KEY -c ingest.private.<REGION>.monitoring.cloud.ibm.com -t TAG_DATA -ac 'sysdig_capture_enabled: false' --nodeanalyzer --analysismanager https://ingest.private.<REGION>.monitoring.cloud.ibm.com/internal/scanning/scanning-analysis-collector --collector_port 6443 --api_endpoint private.<REGION>.monitoring.cloud.ibm.com [-as] [-af]
例如,您可以在美国南部区域运行以下命令来部署代理程序:
curl -sL https://ibm.biz/install-sysdig-k8s-agent | bash -s -- -a APIKEY -c ingest.us-south.monitoring.cloud.ibm.com -ac 'sysdig_capture_enabled: false' --nodeanalyzer --analysismanager https://ingest.us-south.monitoring.cloud.ibm.com/internal/scanning/scanning-analysis-collector --collector_port 6443 --api_endpoint us-south.monitoring.cloud.ibm.com
除去代理程序
运行以下命令可删除代理:
curl -sL https://ibm.biz/install-sysdig-k8s-agent | bash -s -- -a ACCESS_KEY -c COLLECTOR_ENDPOINT --remove
其中ACCESS_KEY是实例的摄入密钥。
验证代理程序的状态
运行以下命令检查代理的状态:
kubectl get pods -n ibm-observe
如果列出了状态为“正在运行”的 pod,那么代理程序正在运行。
如果未列出任何 pod,那么代理程序未在运行。
如果 pod 未处于运行状态,但您期望代理程序处于运行状态,那么可以运行以下命令以了解原因:
kubectl get events -n ibm-observe