仅监控应用

在此模式下,Operator不会部署 SmartAgent DaemonSet,因此不会收集宿主机的基础指标。该方案利用 Kubernetes 准入控制(Admission Control)机制来监控 Pod 的创建过程,并动态修改 Pod 的资源配置。
具体而言,Operator会为目标 Pod 添加一个 Init Container(初始化容器)。这个 Init Container 负责部署探针模块,并通过给业务容器配置 LD_PRELOAD 环境变量来实现探针的自动注入,从而完成对应用的监控。
支持范围
- 支持应用探针的自动识别和注入
- 支持通过 Kubernetes Annotations/Labels 控制监控粒度
- 不支持进程/容器的深度监控规则,可通过 Kubernetes 注解控制监控
- 不支持自定义进程组识别规则
- **进程组名(服务名)**默认为:
(<namespace>) <容器名称> <进程名称> - **进程组实例名称(探针名)**默认为:
(<进程组名>-<Pod名称后缀>-<进程ID> - 可以通过为业务容器添加 BR_APM_PROCESS_GROUP_NAME 环境变量来设置自定义进程组名称, 详细见:Deployment YAML示例
- **进程组名(服务名)**默认为:
- 技术类型支持矩阵
- 主机资源要求
创建 Smart Operator 所需的 kubernetes 资源对象
- 完整部署, 可随时切换全栈监控模式
- 仅部署webhook,权限最小化
信息
webhook 所需证书由 smartagent-operator 容器自动生成
详情请参见 更新 webhook 证书
创建 kubernetes 资源
# 创建 Kubernetes namespace
kubectl create namespace bonree-agent
# 部署 smartagent-operator 和 bonree-webhook
kubectl apply -f kubernetes.yaml
# [可选] 在仅监控应用的部署场景下,如果需要启用 CSI driver 来缓存每个节点的 smartagent serverless 探针,则需要应用以下配置
kubectl apply -f kubernetes-csi.yaml
# 查看部署日志
kubectl -n bonree-agent logs -f deployment/smartagent-operator
信息
默认 YAML 文件中包含了有效期为 10 年的证书(仅限 bonree-agent 命名空间使用)
若需在其他命名空间中使用,则需要手动创建证书。详情请参考 更新 webhook 证书
有关权限的更多信息,请参阅 权限说明
创建 kubernetes 资源
# 创建 Kubernetes namespace
kubectl create namespace bonree-agent
# 部署 bonree-webhook
kubectl apply -f kubernetes-webhook-only.yaml
# [可选] 在仅监控应用的部署场景下,如果需要启用 CSI driver 来缓存每个节点的 smartagent serverless 探针,则需要应用以下配置
kubectl apply -f kubernetes-csi.yaml
# 查看部署日志
kubectl -n bonree-agent logs -f deployment/bonree-webhook
创建存储 PaaSToken 的 Secret
PaaSToken来源
PaaSToken 需要从平台获取(请将下面命令中的 <Token> 替换为 Bonree One 平台 部署配置 -> 安装部署 -> SmartAgent 中部署命令里的 PaaSToken 值),该 Token 用于下载探针及相关接口的访问。

创建 secret
kubectl -n bonree-agent create secret generic smartkube --from-literal="PaaSToken=<Token>"