AWS EKS中ADOT无法创建Statefulset模式Collector问题求助
排查ADOT Collector未创建的问题
以下是针对AWS EKS中ADOT Operator部署成功但Collector资源未生成的排查步骤:
1. 分析Operator日志中的关键错误
重点检查日志中是否存在以下类型的报错:
- 权限类错误:如
permission denied或forbidden,说明Operator的ServiceAccount无权限创建Statefulset/Deployment等资源 - 配置解析错误:如
invalid configuration或parse error,提示自定义configuration-values.json存在语法或字段合法性问题 - CRD依赖错误:如
no matches for kind "OpenTelemetryCollector",说明ADOT对应的CRD未正确安装
2. 验证ADOT CRD是否存在
执行命令确认CRD状态:
kubectl get crd opentelemetrycollectors.opentelemetry.io
若CRD不存在,说明aws eks create-addon执行时未完成CRD部署,需重新执行命令并检查输出日志,或手动安装对应版本的CRD。
3. 检查configuration-values.json配置正确性
确保Collector相关配置符合要求:
- 必须显式开启Collector:
"collector": {"enabled": true} - 模式配置需匹配目标类型:Statefulset模式设置
"mode": "statefulset",Deployment模式设置"mode": "deployment" - 确认Collector的配置段(如receivers/exporters)无语法错误,示例正确配置片段:
{ "operator": {"enabled": true}, "collector": { "enabled": true, "mode": "statefulset", "config": { "receivers": {"otlp": {"protocols": {"grpc": {}, "http": {}}}}, "processors": {"batch": {}}, "exporters": {"awsxray": {}, "awsemf": {}}, "service": { "pipelines": { "traces": {"receivers": ["otlp"], "processors": ["batch"], "exporters": ["awsxray"]}, "metrics": {"receivers": ["otlp"], "processors": ["batch"], "exporters": ["awsemf"]} } } } } }
4. 验证IAM ServiceAccount关联有效性
检查Operator使用的ServiceAccount是否绑定了正确的IAM角色:
kubectl describe sa adot-collector-operator -n opentelemetry-operator-system
确认Annotations中的eks.amazonaws.com/role-arn指向正确的IAM角色,且该角色拥有ADOT Collector所需权限(如AmazonEKSADOTCollectorPolicy)。
5. 排查集群资源不足问题
执行命令查看节点资源使用情况:
kubectl top nodes
若节点CPU/内存使用率接近上限,会导致Collector Pod无法调度,此时Operator日志会出现Insufficient cpu或Insufficient memory类报错。
6. 确认ADOT Addon状态
执行命令检查Addon的部署状态:
aws eks describe-addon --cluster-name <你的集群名称> --addon-name adot
确保status为ACTIVE,且addonVersions为稳定版本,避免版本兼容性问题。
内容的提问来源于stack exchange,提问作者Robert Campbell
相关产品推荐
相关产品推荐

