papertrail 的 fluentd 守护程序集容器无法在 kubernetes 集群中启动

Posted

技术标签:

【中文标题】papertrail 的 fluentd 守护程序集容器无法在 kubernetes 集群中启动【英文标题】:fluentd daemon set container for papertrail failing to start in kubernetes cluster 【发布时间】:2020-04-18 08:23:31 【问题描述】:

根据here 提供的文档,我正在尝试在 kubernetes 集群中设置 fluentd 以聚合 papertrail 中的日志。 配置文件为fluentd-daemonset-papertrail.yaml 它基本上为 fluentd 容器创建了一个守护进程集,并为 fluentd 配置创建了一个配置映射。

当我应用配置时,将 pod 分配给一个节点并创建容器。但是,它要么没有完成初始化,要么 pod 在启动后立即被杀死。

随着豆荚被杀死,我也失去了原木。无法调查问题的原因。

查看 kube-system 命名空间的事件有以下错误,

错误:无法启动容器“fluentd”:来自守护进程的错误响应:OCI 运行时创建失败:container_linux.go:338:创建新的父进程导致“container_linux.go:1897: running lstat on namespace path \”/proc /75026/ns/ipc\" 导致\"lstat /proc/75026/ns/ipc: 没有这样的文件或目录\"": 未知

Failed create pod sandbox: rpc error: code = Unknown desc = failed to setup sandbox container "9559643bf77e29d270c23bddbb17a9480ff126b0b6be10ba480b558a0733161c" network for pod "fluentd-papertrail-b9t5b": NetworkPlugin kubenet failed to setup pod "fluentd-系统”网络:将容器添加到网络时出错:无法打开 netns “/proc/111610/ns/net”:无法 Statfs “/proc/111610/ns/net”:没有这样的文件或目录

我不确定是什么导致了这些错误。感谢您为了解和解决这些错误提供的任何帮助。

另外,是否可以查看日志/事件来告诉我们为什么给 pod 一个终止信号?

【问题讨论】:

看来,检查您的 CNI 的日志,它无法为 pod 提供 IP 地址。 【参考方案1】:

请确保 /etc/cni/net.d 和它的 /opt/cni/bin 朋友都存在并且使用CNI 配置文件正确填充和所有节点上的二进制文件。

看看:sandbox.

【讨论】:

CNI 配置不会导致这里出现问题,而是与不推荐使用的集群服务注释有关。已将其发布为其他人受益的答案。【参考方案2】:

在 papertrail 支持团队的帮助下,我能够通过从 manifest file 中删除以下条目来解决问题。

kubernetes.io/cluster-service: "true"

以上注释似乎已被弃用。 相关github问题:

https://github.com/fluent/fluentd-kubernetes-daemonset/issues/296https://github.com/kubernetes/kubernetes/issues/72757

【讨论】:

以上是关于papertrail 的 fluentd 守护程序集容器无法在 kubernetes 集群中启动的主要内容,如果未能解决你的问题,请参考以下文章

通过 daemonset 运行的 Fluentd pod 因谷歌容器引擎上的警告而终止

Fluentd初探 简介与安装

在 Papertrail 应用程序中搜索时如何使用正则表达式?

手动安装“papertrail/remote_syslog2”,找不到可执行文件

Heroku:Papertrail 日志未显示详细版本

Rails:在生产环境中配置记录器以使用 Papertrail