GithubHelp home page GithubHelp logo

s390x support about k3s-root HOT 8 CLOSED

k3s-io avatar k3s-io commented on May 26, 2024
s390x support

from k3s-root.

Comments (8)

brandond avatar brandond commented on May 26, 2024 1

If you build with shared libraries, those will need to be distributed in K3s as well, and the environment (LD_LIBRARY_PATH) set up to locate them. Right now we only inject the bin dir into PATH, since all the binaries are statically linked.

Socat isn't the only thing that's used, the hardened-kubernetes image also uses the iptables and ipset binaries from k3s-root as we've found that some distros package old, broken versions of these.

https://github.com/rancher/image-build-kubernetes/blob/master/Dockerfile#L62-L64

from k3s-root.

raulcabello avatar raulcabello commented on May 26, 2024

As an alternative could we just use the OS binaries in rke2 instead of the k3s-root ones? For example, we could use socat from the OS instead of socat from k3s-root when building rke2 https://github.com/rancher/rke2/blob/master/Dockerfile#L80

from k3s-root.

rohitsakala avatar rohitsakala commented on May 26, 2024

@brandond Thank you for the reply. I have another question. Are static binaries used because some distros package old, broken versions of libraries? Is this the only reason or are there any other reasons too? Thanks 😄

from k3s-root.

brandond avatar brandond commented on May 26, 2024

It's partially so that we're not dependent on distro binaries to be up-to-date, there were (and still are I believe) a couple distros that have iptables versions that work poorly with recent versions of Kubernetes.

K3s has also historically been advertised in talks from @ibuildthecloud as running on a minimal OS that contained nothing but /bin/sh, so we bring our own everything.

from k3s-root.

raulcabello avatar raulcabello commented on May 26, 2024

@brandond we are focusing on creating rke2 now (not k3s). From the hardened-kubernetes rke2 is just using kubectl and kubelet https://github.com/rancher/rke2/blob/master/Dockerfile#L139-L142
k3s-root binaries are also used in https://github.com/rancher/image-build-calico/ and https://github.com/rancher/image-build-kube-proxy/ but since they run inside a ubi container we could use the iptables and ipset binaries from the ubi container.
I did a test and it is working fine. This wouldn't work for k3s, but for rke2 I think it should be ok.
Since we can't generate static binaries from buildroot on s390x, would using the container binaries be ok?

from k3s-root.

brandond avatar brandond commented on May 26, 2024

I can't think of why that would cause any problems for RKE2.

from k3s-root.

Oats87 avatar Oats87 commented on May 26, 2024

The reason we use our compiled iptables/xtables binaries in the kube-proxy and calico containers is because UBI does not have both flavors (nft, legacy) of iptables and we needed both for maximum compatibility with any distro.

If it's assumed that RKE2 running on s390x will always use one or the other (I believe we're using ubi7 everywhere which should only have iptables-legacy binaries), then that should be OK.

from k3s-root.

raulcabello avatar raulcabello commented on May 26, 2024

ok, thanks for the info!

from k3s-root.

Related Issues (9)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.