Splunk Connect for Kubernetes部分Pod陷入CrashLoopBackOff求助
问题排查:Splunk Connect for Kubernetes Pod CrashLoopBackOff(连接K8s API超时)
问题描述
通过Helm安装Splunk Connect for Kubernetes后,部分日志采集Pod陷入CrashLoopBackOff状态,集群内其余Pod运行正常。
Pod状态信息
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES lv-splunk-logging-5q9pf 0/1 CrashLoopBackOff 12 47m 192.168.54.241 las2-m***31 <none> <none> lv-splunk-logging-nzzld 0/1 CrashLoopBackOff 13 47m 192.168.97.152 las2-m***18 <none> <none> lv-splunk-logging-qjfgw 0/1 CrashLoopBackOff 13 47m 192.168.178.41 aws-m****03 <none> <none> lv-splunk-logging-zmvxp 0/1 CrashLoopBackOff 13 47m 192.168.11.174 las2-***11 <none> <none>
Pod日志信息
2023-02-06 14:42:08 +0000 [info]: init supervisor logger path=nil rotate_age=nil rotate_size=nil 2023-02-06 14:42:08 +0000 [info]: parsing config file is succeeded path="/fluentd/etc/fluent.conf" 2023-02-06 14:42:08 +0000 [info]: gem 'fluentd' version '1.15.3' 2023-02-06 14:42:08 +0000 [info]: gem 'fluent-plugin-concat' version '2.4.0' 2023-02-06 14:42:08 +0000 [info]: gem 'fluent-plugin-jq' version '0.5.1' 2023-02-06 14:42:08 +0000 [info]: gem 'fluent-plugin-kubernetes_metadata_filter' version '3.1.0' 2023-02-06 14:42:08 +0000 [info]: gem 'fluent-plugin-prometheus' version '2.0.2' 2023-02-06 14:42:08 +0000 [info]: gem 'fluent-plugin-record-modifier' version '2.1.0' 2023-02-06 14:42:08 +0000 [info]: gem 'fluent-plugin-splunk-hec' version '1.3.1' 2023-02-06 14:42:08 +0000 [info]: gem 'fluent-plugin-systemd' version '1.0.2' 2023-02-06 14:42:08 +0000 [INFO]: Reading bearer token from /var/run/secrets/kubernetes.io/serviceaccount/token 2023-02-06 14:42:11 +0000 [error]: config error file="/fluentd/etc/fluent.conf" error_class=Fluent::ConfigError error="Invalid Kubernetes API v1 endpoint https://10.96.0.1:443/api: Timed out connecting to server"
排查与解决步骤
验证节点到K8s API Server的网络连通性
- 登录故障Pod所在的节点,执行以下命令测试API Server连通性:
curl -v https://10.96.0.1:443/api --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt -H "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" - 若出现超时,需排查:
- 节点路由配置,确认能正常访问
10.96.0.1(K8s API Server的ClusterIP) - 节点上的网络插件(如Calico、Flannel)是否正常运行
- 节点防火墙/安全组是否放行443端口的出站流量
- 节点路由配置,确认能正常访问
- 登录故障Pod所在的节点,执行以下命令测试API Server连通性:
调整Fluentd Kubernetes元数据插件超时参数
- 修改Helm values配置,增加API连接超时时间:
fluentd: configFilters: kubernetes_metadata: api_timeout: 30 - 执行Helm更新:
helm upgrade lv-splunk-logging splunk/splunk-connect-for-kubernetes -f your-values.yaml -n <你的命名空间>
- 修改Helm values配置,增加API连接超时时间:
检查ServiceAccount权限配置
- 确认Pod使用的ServiceAccount具备访问K8s API的权限:
kubectl describe sa lv-splunk-logging -n <你的命名空间> kubectl describe clusterrole splunk-kubernetes-logging -n <你的命名空间> - 确保ClusterRole包含
pods、namespaces等资源的get、list权限,若缺失需补充相应的RoleBinding/ClusterRoleBinding。
- 确认Pod使用的ServiceAccount具备访问K8s API的权限:
确认K8s API Server状态
- 检查API Server组件是否正常运行:
kubectl get pods -n kube-system | grep kube-apiserver - 若API Server存在异常,优先修复API Server问题后,再重启Splunk Connect的Pod:
kubectl delete pod lv-splunk-logging-5q9pf lv-splunk-logging-nzzld lv-splunk-logging-qjfgw lv-splunk-logging-zmvxp -n <你的命名空间>
- 检查API Server组件是否正常运行:
内容的提问来源于stack exchange,提问作者Kavita
相关产品推荐
相关产品推荐

