k8s 对容器的日志有什么特殊的处理么?dashboad 日志输出和本地 docker 运行 表现不一致

228 天前
 Aruforce

当我登入容器 向追踪的文件

echo "123123213" >> /var/log/tac_plus/access/access.log

k8s dashboard 日志并没有输出 但是本地是可以的 如下是我的脚本,是我写错了 还是 k8s 对容器的日志有特别的处理?

Dokerfile

FROM ubuntu:20.04
RUN mkdir -p /var/log/tac_plus/access/
RUN mkdir -p /var/log/tac_plus/accounting/
RUN mkdir -p /var/log/tac_plus/authentication/
RUN mkdir -p /var/log/tac_plus/authorization/
ADD ./access.log /var/log/tac_plus/access/access.log
ADD ./accounting.log /var/log/tac_plus/accounting/accounting.log
ADD ./authentication.log /var/log/tac_plus/authentication/authentication.log
ADD ./authorization.log /var/log/tac_plus/authorization/authorization.log
ADD ./docker-entrypoint.sh /
RUN chmod +x /docker-entrypoint.sh
CMD ["bash","-c","/docker-entrypoint.sh"]

docker-entrypoint

#!/bin/sh
echo "Starting server..."
{
        tail -f /var/log/tac_plus/access/access.log
}&

{
        tail -f /var/log/tac_plus/accounting/accounting.log
}&

{
        tail -f /var/log/tac_plus/authentication/authentication.log
}
1972 次点击
所在节点    Kubernetes
49 条回复
Aruforce
227 天前
@julyclyde from 改成 Ubuntu 16.04 了 内核 是 3.10.0 的 。。dockerfile 把所有用的软件 都重新安装了一次。。
Aruforce
227 天前
@julyclyde #41 然后 tail 不再出 enosys 的问题了 但是 变成了只读取到了文件变化 不读和输出 了
Aruforce
227 天前
julyclyde
227 天前
@Aruforce 你换了底也没在这里说明啊,非要“打一棍子才放一个屁”这样啊?
以及,再次强调,容器没有内核!!

我猜还是和 kube node 的内核版本有关系
Aruforce
226 天前
@julyclyde 我测试一次也不全是按照你写的东西来测试 。。
不过我解决这个问题了。。
根本原因在于 即使是相同的文件名 在 overlay2 这个文件系统里 在底层 inode 的值也是不一样的
内核的 read 在 overlay2 文件系统的实现友有问题。。这个情况下读取的内容还是 Docker 创建时加入的快照的文件内容
返回的值是空的
如果在脚本 docker-entrypoint 里创建 读取的 inode 就是运行时的 inode 了
可以参考 这个 内核的 commit
https://github.com/torvalds/linux/commit/f3fbbb079263bd29ae592478de6808db7e708267
Aruforce
226 天前
@julyclyde 感谢你给的提示 文件系统错误
julyclyde
226 天前
@Aruforce 这个 commit 是 2016 年的……
所以这个故事教导我们:别用旧软件
julyclyde
226 天前
@Aruforce 最后应该是确保了 kube node 在高版本内核运行才解决的吧?
Aruforce
226 天前
@julyclyde 不是 。。还是原来的 环境

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/987333

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX