arm版环境安装日志组件,需要fluent-bit 1.3.5-reload镜像,但是代码库没有v1.3.5的分支和tag,使用master分支编的镜像及v1.3.2分支编的均不能正常运行,fluent-bit这个pod会一直CrashLoopBackOff仿佛重启。请问是1.3.5版本的分支删掉了吗?

    谢谢您的回复,还有一个疑问请教下,社区的fluent-bit也适用于kubesphere环境吗,我看kubesphere的fluentd-bit代码仓自己还加了自己的main.go文件。

      qgr

      是的,上游fluent bit 不支持动态更新配置,所以我们有修改

      你可以用 v1.3.2 分支build。master 分支又做了一次调整。

      好的,我试试,多谢

      变了下,可以运行了,除了您提的那个libssl1.0-dev换成libssl1.1的点,还有一个点,原本的gcr.io/distroless/cc这个镜像在arm64上面好像运行不了,我换成debian就行了

        qgr

        gcr.io/distroless/cc 我记得好像可以的?不过换一下也没大问题,gcr.io/distroless/cc 是精简一些

        对了,能否把你的方法整理个文档,包括你的 Dockerfile,应该也蛮多坑的,会很多人想看

        • qgr 回复了此帖

          编译arm64版的fluent-bit镜像主要我这边主要遇到了三个坑,下面有 Dockerfile
          第一个是将 libssl1.0-dev换成了 libssl1.1,这主要是huanggze 提供的思路,见issue https://github.com/fluent/fluent-bit/issues/1791
          第二个是编译go时可能有些包拉取超时,于是设置了国内的GOPROXY https://mirrors.aliyun.com/goproxy/,direct
          第三个是gcr.io/distroless/cc镜像在我的arm环境运行不了,我的环境是国产机器,可能对比原生arm有修改,于是换成了debian:stretch镜像,或许原生arm可能没这个问题。

          FROM debian:stretch as builderc
          
          # Fluent Bit version
          ENV FLB_MAJOR 1
          ENV FLB_MINOR 3
          ENV FLB_PATCH 2
          ENV FLB_VERSION 1.3.2
          
          ENV DEBIAN_FRONTEND noninteractive
          
          RUN apt-get update && \
              apt-get install -y --no-install-recommends \
                build-essential \
                cmake \
                make \
                wget \
                unzip \
                libssl1.1 \
                libsasl2-dev \
                pkg-config \
                libsystemd-dev \
                zlib1g-dev \
                flex \
                bison
          
          RUN mkdir -p /fluent-bit/bin /fluent-bit/etc /fluent-bit/log /tmp/src/
          COPY . /tmp/src/
          RUN rm -rf /tmp/src/build/*
          
          WORKDIR /tmp/src/build/
          RUN cmake -DFLB_DEBUG=Off \
                    -DFLB_TRACE=Off \
                    -DFLB_JEMALLOC=On \
                    -DFLB_BUFFERING=On \
                    -DFLB_TLS=On \
                    -DFLB_SHARED_LIB=Off \
                    -DFLB_EXAMPLES=Off \
                    -DFLB_HTTP_SERVER=On \
                    -DFLB_IN_SYSTEMD=On \
                    -DFLB_OUT_KAFKA=On ..
          
          RUN make -j $(getconf _NPROCESSORS_ONLN)
          RUN install bin/fluent-bit /fluent-bit/bin/
          
          # Configuration files
          COPY conf/fluent-bit.conf \
               conf/fluent-bit-custom.conf \
               conf/parsers.conf \
               conf/parsers_java.conf \
               conf/parsers_extra.conf \
               conf/parsers_openstack.conf \
               conf/parsers_cinder.conf \
               conf/plugins.conf \
               /fluent-bit/etc/
          
          FROM golang:1.10.1-alpine3.7 as buildergo
          ENV GOPROXY https://mirrors.aliyun.com/goproxy/,direct
          WORKDIR /go/src
          COPY fluentbitdaemon.go .
          COPY fluentbitdisable.go .
          
          RUN apk update && apk add git
          RUN go get github.com/golang/glog
          RUN CGO_ENABLED=0 go build -o fluentbitdaemon ./fluentbitdaemon.go
          RUN CGO_ENABLED=0 go build -o fluentbitdisable ./fluentbitdisable.go
          
          FROM debian:stretch
          MAINTAINER Eduardo Silva <eduardo@treasure-data.com>
          LABEL Description="Fluent Bit docker image" Vendor="Fluent Organization" Version="1.1"
          
          COPY --from=builderc /usr/lib/aarch64-linux-gnu/*sasl* /usr/lib/aarch64-linux-gnu/
          COPY --from=builderc /usr/lib/aarch64-linux-gnu/libz* /usr/lib/aarch64-linux-gnu/
          COPY --from=builderc /lib/aarch64-linux-gnu/libz* /lib/aarch64-linux-gnu/
          COPY --from=builderc /usr/lib/aarch64-linux-gnu/libssl.so* /usr/lib/aarch64-linux-gnu/
          COPY --from=builderc /usr/lib/aarch64-linux-gnu/libcrypto.so* /usr/lib/aarch64-linux-gnu/
          # These below are all needed for systemd
          COPY --from=builderc /lib/aarch64-linux-gnu/libsystemd* /lib/aarch64-linux-gnu/
          COPY --from=builderc /lib/aarch64-linux-gnu/libselinux.so* /lib/aarch64-linux-gnu/
          COPY --from=builderc /lib/aarch64-linux-gnu/liblzma.so* /lib/aarch64-linux-gnu/
          COPY --from=builderc /usr/lib/aarch64-linux-gnu/liblz4.so* /usr/lib/aarch64-linux-gnu/
          COPY --from=builderc /lib/aarch64-linux-gnu/libgcrypt.so* /lib/aarch64-linux-gnu/
          COPY --from=builderc /lib/aarch64-linux-gnu/libpcre.so* /lib/aarch64-linux-gnu/
          COPY --from=builderc /lib/aarch64-linux-gnu/libgpg-error.so* /lib/aarch64-linux-gnu/
          
          COPY --from=builderc /fluent-bit /fluent-bit
          
          COPY --from=buildergo /go/src/fluentbitdaemon /fluent-bit/bin/fluentbitdaemon
          COPY --from=buildergo /go/src/fluentbitdisable /fluent-bit/bin/fluentbitdisable
          
          #
          EXPOSE 2020
          
          # Entry point
          CMD ["/fluent-bit/bin/fluentbitdaemon"]

          huanggze 再求助您一个问题,上周编的fluent-bit镜像运行后容器里没有/etc/ssl目录,fluent-bit日志如下:

            qgr 没遇到过这个问题。你是想定制 fluent bit operator CRD 吗?还是原封不动使用 kubesphere 的日志组件时、出现的错误?

            原封不动的使用kubesphere的日志组件出现的问题。我这个环境是arm环境,一些组件都是自己编的,但是也是拉的kubesphere代码库中的代码编的。

              qgr es 这为啥要尝试初始化 tls,你们的 es 的配置带 tls 吗

              • qgr 回复了此帖

                huanggze es也是按照ks-install里面的镜像版本拉的,没有做任何改动

                  huanggze 这个base镜像吗?

                  我用这个编好的镜像运行了一个容器,发现里面没有libssl1.1这个包,会不会是这个原因引起的?

                  基础镜像换回gcr.io/distroless/cc后运行出现如下错误

                    huanggze 换成这个确实可以了,赞。
                    请问下可以给我看下这个镜像的Dockerfile吗?多谢

                      1 年 后

                      huanggze 你好,我在dockerHub上搜到 我们有 kubesphere/ 和kubespheredev 这两个有什么区别呢?如果更新某个组件 例如fluent-bit ,使用kubesphere下的镜像还是kubespheredev下的镜像