helm-charts icon indicating copy to clipboard operation
helm-charts copied to clipboard

Image for ARM64

Open t089 opened this issue 4 years ago • 13 comments

Is your feature request related to a problem? Please describe. I would like to deploy this chart on a cluster with both amd64 and arm64 nodes. Unfortunately, the provided image quay.io/fluentd_elasticsearch/fluentd only supports amd64.

Describe the solution you'd like A multi-arch image would solve the problem.

Describe alternatives you've considered Who owns this image: quay.io/fluentd_elasticsearch/fluentd? Where is its Dockerfile? If I had access to the Dockerfile I could easily built it on arm64.

t089 avatar Oct 14 '20 20:10 t089

I guess i could build arm images too but the question is which arm version should be supported? Arm 64 only? Or also arm 32?

monotek avatar Oct 15 '20 22:10 monotek

That would be awesome 👍 Looking at fluentd-kubernetes-daemonset: it provides x86_64 and arm64 images.

Btw what are the differences (if any) between the image provided here and in this fluentd-kubernetes-daemonset image?

t089 avatar Oct 16 '20 07:10 t089

You can compare with: https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/fluentd-elasticsearch/fluentd-es-image

Have you tried to use the image you posted? Might work as well with the chart.

monotek avatar Oct 16 '20 07:10 monotek

No haven't tried it, and probably won't be so easily possible because a lot of people depend on it ;) But I will take a close look. In the mean time, would be really appreciate if you push the multi-arch image 🚀

t089 avatar Oct 16 '20 08:10 t089

I have a github action pipeline in place, which builds for arm64 too :)

https://github.com/monotek/fluentd-elasticsearch/runs/1456493963

Image can be downloaded an tested via: https://quay.io/repository/monotek/fluentd-elasticsearch?tab=tags

Be aware, that you have to set the LD_PRELOAD env var manually for ARM64 at the moment. See: https://github.com/monotek/fluentd-elasticsearch/blob/master/cluster/addons/fluentd-elasticsearch/fluentd-es-image/Dockerfile#L69

monotek avatar Nov 26 '20 00:11 monotek

@t089 have you tried the image i've build?

monotek avatar Nov 28 '20 16:11 monotek

@t089 ping

monotek avatar Dec 18 '20 18:12 monotek

Hello @monotek,

I'm trying to run your image and on start, I see the following in the log:

standard_init_linux.go:219: exec user process caused: exec format error

I use LD_PRELOAD env variable pointing to /usr/lib/aarch64-linux-gnu/libjemalloc.so.2 Can you point please what could be wrong here?

alcyxob avatar Feb 01 '21 16:02 alcyxob

I don't have an arm setup to test :/

Which version of the image do you use?

monotek avatar Feb 01 '21 19:02 monotek

2a6f58506a18

let me know if I can help you to debnug

alcyxob avatar Feb 02 '21 07:02 alcyxob

At least setting the preload var is not needed anymore as it was moved to the entrypoint: https://github.com/monotek/fluentd-elasticsearch/blob/master/cluster/addons/fluentd-elasticsearch/fluentd-es-image/entrypoint.sh#L23

can you run the container with a shell entrypoint and try to start fluentd manually?

monotek avatar Feb 02 '21 10:02 monotek

Hey, FWIW, for me the image works on both amd64 and arm64. Thanks!

$ docker run -it quay.io/monotek/fluentd-elasticsearch:5
2021-02-02 10:28:39 +0000 [info]: parsing config file is succeeded path="/etc/fluent/fluent.conf"
2021-02-02 10:28:39 +0000 [info]: gem 'fluent-plugin-concat' version '2.4.0'
2021-02-02 10:28:39 +0000 [info]: gem 'fluent-plugin-detect-exceptions' version '0.0.13'
2021-02-02 10:28:39 +0000 [info]: gem 'fluent-plugin-elasticsearch' version '4.3.3'
2021-02-02 10:28:39 +0000 [info]: gem 'fluent-plugin-kubernetes_metadata_filter' version '2.6.0'
2021-02-02 10:28:39 +0000 [info]: gem 'fluent-plugin-multi-format-parser' version '1.0.0'
2021-02-02 10:28:39 +0000 [info]: gem 'fluent-plugin-prometheus' version '1.8.5'
2021-02-02 10:28:39 +0000 [info]: gem 'fluent-plugin-systemd' version '1.0.2'
2021-02-02 10:28:39 +0000 [info]: gem 'fluentd' version '1.12.0'
2021-02-02 10:28:40 +0000 [info]: using configuration file: <ROOT>
  <label @FLUENT_LOG>
    <match fluent.*>
      @type stdout
    </match>
  </label>
</ROOT>
2021-02-02 10:28:40 +0000 [info]: starting fluentd-1.12.0 pid=1 ruby="2.7.2"
2021-02-02 10:28:40 +0000 [info]: spawn command to main:  cmdline=["/usr/local/bin/ruby", "-Eascii-8bit:ascii-8bit", "/usr/local/bundle/bin/fluentd", "--under-supervisor"]
2021-02-02 10:28:40 +0000 [info]: adding match in @FLUENT_LOG pattern="fluent.*" type="stdout"
2021-02-02 10:28:40 +0000 [info]: #0 starting fluentd worker pid=14 ppid=1 worker=0
2021-02-02 10:28:40 +0000 [info]: #0 fluentd worker is now running worker=0

t089 avatar Feb 02 '21 10:02 t089

Thanks for your work on this @monotek. I'm using your latest image on my multi-arch cluster and it's working perfectly so far!

I've commented on this issue to get fluentd-elasticsearch moved out of kubernetes/kubernetes. I imagine that's the main blocker in adding ARM64 support to the main image? I'm happy to help in whatever way I can to get this done. https://github.com/kubernetes/kubernetes/issues/79432

cablespaghetti avatar Feb 20 '21 09:02 cablespaghetti