huanggze KubeSphere 版本 : v2.1.0

      containers:
        - name: fluent-bit
          image: 'kubesphere/fluent-bit:v1.3.2-reload'

    rysinal

    换成 kubespheredev/fluent-bit:v1.3.5-reload 试试,这是fluent bit 的bug,会导致container name hash conflict 使日志元信息丢失

      huanggze
      kubesphere命名空间下找不到1.3.5的镜像

      docker pull kubesphere/fluent-bit:v1.3.5-reload
      Error response from daemon: manifest for kubesphere/fluent-bit:v1.3.5-reload not found

      是否可以修改成官方的 fluent/fluent-bit:1.3.5

      docker pull fluent/fluent-bit:1.3.5

        rysinal

        kubespheredev dev dev dev
        kubespheredev
        kubespheredev
        😅
        kubespheredev/fluent-bit:v1.3.5-reload

        这周发布2.1.1 才会把 dev 去掉

          huanggze 眼拙了。。

          已更新了,但是还是一样的问题,业务容器重新部署 也没有产生日志,可否远程帮忙调试下,感谢
          管理员端(系统容器日志):

          业务账号端(业务容器):

          你们业务应用的日志是写到容器标准输出了吗?还是写到文件里面了?

            calvinyu 标准输出有的,通过docker logs –tail 10 1564464dcc48 都可以看到业务日志的请求log

              huanggze 感谢大佬指点,目前已经解决
              问题原因:
              master节点设置的软链为:/var/lib/docker -> /data/docker
              worker节点设置的软链为:/var/lib/docker -> /work/docker
              fluent-bit设置的path为/data/docker
              但是业务pod全部分布在worker节点,所以也解释通了为啥只有系统级别(master节点pod)的日志,丢失了业务日志

              解决步骤:
              尝试在worker节点做软链:/var/lib/docker->/data/docker ->/work/docker 但是重启后仍然没有生效,用以下命令验证

              realpath $(docker info -f '{{.DockerRootDir}}') 
              /work/docker

              所以软链方式不行,只能迁移。

              1、systemctl stop docker
              2、迁移/work/docker 至 /data/docker
              3、确认软链与master节点一致: /var/lib/docker->/data/docker
              4、systemctl start docker

              打开ks,右下角日志查看,业务日志已收集成功。

              再次感谢@huanggze 提供清晰思路

              5 个月 后

              补充一个相同问题环境的解决办法:

              第一次安装时,把docker放在了扩展盘上,然后做了符号连接到 /var/lib/docker
              因此 kubesphere管理程序将/data/docker作为docker的目录传给了日志收集程序 fluentbit
              但新加的node未做符号连接(因为没有扩盘),docker的目录就是 /var/lib/docker
              因此在新加的节点上 fluentbit 通过 /data/docker这目录去收集日志时,发现是空的,那个目录估计是部署程序生成的,里面就放了一个空的container程序
              导致容器中能看到日志,kubesphere WEB页面上通过工作负载搜索不到日志。
              修改方法:
              kubectl cordon node-xxx
              kubectl drain node-xxx –delete-local-data –force -ignore-daemonsets
              systemctl stop docker.service

              rm -fr /data/docker
              mv /var/lib/docker /data/docker
              ln -s /data/docker /var/lib/docker

              systemctl start dokcer.service
              kubectl uncordon node-xxx

              检查验证命令

              systemctl status docker.service ==>应该是running
              kubectl describe node node-xxx
              realpath $(docker info -f ‘{{.DockerRootDir}}’ ==> 应该显示 /data/docker