36.13. EFK 故障排除
以下是对集群日志记录部署的多个常见问题的信息进行故障排除:
36.13.1. 与所有 EFK 组件相关的故障排除
以下故障排除问题一般适用于 EFK 堆栈。
部署失败,ReplicationControllers 扩展至 0
如果您执行在十分钟超时前无法成功启动实例的部署,OpenShift Container Platform 会将部署视为失败,并缩减到零实例。oc get pods
命令会显示一个 deployer pod,它带有非零退出代码,没有部署 pod。
在以下示例中,会显示 Elasticsearch 部署的 deployer pod 名称;这来自于 ReplicationController logging-es-2e7ut0iq-1
,它是 DeploymentConfig logging-es-2e7ut0iq
的部署。
NAME READY STATUS RESTARTS AGE logging-es-2e7ut0iq-1-deploy 1/1 ExitCode:255 0 1m
由于多个过渡的原因,部署失败可能会发生,如镜像拉取用时过长,或者节点没有响应。
检查部署器 pod 日志,以了解可能的原因或尝试重新部署:
$ oc deploy --latest logging-es-2e7ut0iq
另外,尝试扩展现有部署:
$ oc scale --replicas=1 logging-es-2e7ut0iq-1
如果问题仍然存在,请检查 pod、事件和 systemd 单元日志以确定问题的来源。
无法解析 kubernetes.default.svc.cluster.local
此 master 的内部别名必须由主服务器上附带的 DNS 服务器解析。根据您的平台,您可以针对 master 运行 dig
命令(例如,容器)以检查这种情况:
$ dig kubernetes.default.svc.cluster.local @localhost [...] ;; QUESTION SECTION: ;kubernetes.default.svc.cluster.local. IN A ;; ANSWER SECTION: kubernetes.default.svc.cluster.local. 30 IN A 172.30.0.1
旧版本的集群日志记录不会自动为 master 定义此内部别名。您可能需要升级集群,以便使用聚合日志。如果您的集群为最新版本,则代表您的 pod 到达 master 上的 SkyDNS 解析器或者 pod 可能会被阻止。您必须在再次部署前解决这个问题。
无法连接到 master 或服务
如果 DNS 解析没有返回到所有地址,或者无法从 pod 中连接到的地址(如 fluentd pod),这可能代表系统防火墙/网络问题。您必须调试这个问题。