arm版环境安装日志组件,需要fluent-bit 1.3.5-reload镜像,但是代码库没有v1.3.5的分支和tag,使用master分支编的镜像及v1.3.2分支编的均不能正常运行,fluent-bit这个pod会一直CrashLoopBackOff仿佛重启。请问是1.3.5版本的分支删掉了吗?
fluent-bit 1.3.5-reload arm镜像
huanggzeK零SK壹S
请参考我在 fluent bit 上提出的 issue 与解答,https://github.com/fluent/fluent-bit/issues/1791
fluent bit 是 C 项目,编译起来和 golang 项目可能不一样,有很多坑。和版本分支无关
谢谢您的回复,还有一个疑问请教下,社区的fluent-bit也适用于kubesphere环境吗,我看kubesphere的fluentd-bit代码仓自己还加了自己的main.go文件。
好的,我试试,多谢
变了下,可以运行了,除了您提的那个libssl1.0-dev换成libssl1.1的点,还有一个点,原本的gcr.io/distroless/cc这个镜像在arm64上面好像运行不了,我换成debian就行了
- 已编辑
编译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"]
原封不动的使用kubesphere的日志组件出现的问题。我这个环境是arm环境,一些组件都是自己编的,但是也是拉的kubesphere代码库中的代码编的。
基础镜像换回gcr.io/distroless/cc后运行出现如下错误
qgr 额。你要不要试试我们编译的 dev 版。advanced-2.1.0-arm64-kunpeng
huanggze 你好,我在dockerHub上搜到 我们有 kubesphere/ 和kubespheredev 这两个有什么区别呢?如果更新某个组件 例如fluent-bit ,使用kubesphere下的镜像还是kubespheredev下的镜像