Giter VIP home page Giter VIP logo

Comments (11)

paulfantom avatar paulfantom commented on August 18, 2024 3

@lentzi90 kube-rbac-proxy project does not publish images in gcr.io/kubebuilder/kube-rbac-proxy:v0.8.0. Those images are published by kubebuilder project and are not multi-arch.

Correct images are published only in quay.io at quay.io/brancz/kube-rbac-proxy and those are working as expected on arm64, arm, and amd64 platforms (continuously testing in https://github.com/thaum-xyz/ankhmorpork as the environment is multi-arch one 😃 )

from kube-rbac-proxy.

brancz avatar brancz commented on August 18, 2024

cc @paulfantom

from kube-rbac-proxy.

paulfantom avatar paulfantom commented on August 18, 2024

Yes, this is expected when using manifest-tool. Did any of the following commands failed for you on arm64 arch :

docker run -it quay.io/brancz/kube-rbac-proxy@sha256:a178cadf8a6de431e8a72a08f77e0cf377efcabd3a9bedbd8f9f6501947596e7
docker run -it quay.io/brancz/kube-rbac-proxy:v0.6.0

?

I especially wonder if you get standard_init_linux.go:211: exec user process caused "exec format error" error message.

from kube-rbac-proxy.

benjaminhuo avatar benjaminhuo commented on August 18, 2024

@paulfantom Thanks for the response, I pull the arm64 image by digest on a amd64 machine.
It works for other images like prometheus

docker pull quay.io/prometheus/prometheus@sha256:cb0d34292e086d2beab33b399a26b6f8dd8f5bd446feb1946960b20abad22769

Snip20200704_80

from kube-rbac-proxy.

paulfantom avatar paulfantom commented on August 18, 2024

This is a side-effect of building all images on amd64 and not manipulating source manifests. Such an approach was chosen for simplicity, but if this is causing issues with running images, we would need to rethink how images are built.


I pull the arm64 image by digest on a amd64 machine. It works for other images like prometheus

I understand that and I am trying to figure out the severity of this issue. If kube-rbac-proxy image is not working for you then this is quite a big issue. However, as far as I know, this field is not taken into consideration by container runtimes and the image should run just fine.

Last time I checked everything was working correctly on arm (raspbian) and arm64 (ubuntu).

from kube-rbac-proxy.

lentzi90 avatar lentzi90 commented on August 18, 2024

For me this results in image pull backoff. I guess it just refuses to even try to use the image since it doesn't find the correct arch in the manifest.

Failed to pull image "gcr.io/kubebuilder/kube-rbac-proxy:v0.8.0": rpc error: code = NotFound desc = failed to pull and unpack image "gcr.io/kubebuilder/kube-rbac-proxy:v0.8.0": no match for platform in manifest: not found

I guess I could pull the correct image if I don't try to use the manifest, but that sort of defeats the purpose since I have a cluster with both amd64 and arm64 Nodes.

from kube-rbac-proxy.

lentzi90 avatar lentzi90 commented on August 18, 2024

Oh, thanks for pointing that out! Nothing to see here then, move along 😄
I ended up here while trying out kubegres.io, which uses the kubebuilder image from GCR...

from kube-rbac-proxy.

cityofships avatar cityofships commented on August 18, 2024
root@ubuntu:~# docker run -it quay.io/brancz/kube-rbac-proxy:v0.11.0
Unable to find image 'quay.io/brancz/kube-rbac-proxy:v0.11.0' locally
v0.11.0: Pulling from brancz/kube-rbac-proxy
0d7d70899875: Pull complete 
f3347552f9fa: Pull complete 
Digest: sha256:b62289c3f3f883ee76dd4e8879042dd19abff743340e451cb59f9654fc472e4f
Status: Downloaded newer image for quay.io/brancz/kube-rbac-proxy:v0.11.0
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
F0928 19:16:48.469526       1 main.go:421] cannot find Service Account in pod to build in-cluster rest config: unable to load in-cluster configuration, KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT must be defined
goroutine 1 [running]:
k8s.io/klog/v2.stacks(0x40001a2001, 0x4000282000, 0xdc, 0x130)
        /home/runner/go/pkg/mod/k8s.io/klog/[email protected]/klog.go:996 +0xac
k8s.io/klog/v2.(*loggingT).output(0x1c56c60, 0x4000000003, 0x0, 0x0, 0x40002ad110, 0x1ba76bd, 0x7, 0x1a5, 0x0)
        /home/runner/go/pkg/mod/k8s.io/klog/[email protected]/klog.go:945 +0x168
k8s.io/klog/v2.(*loggingT).printf(0x1c56c60, 0x3, 0x0, 0x0, 0x114d7a6, 0x46, 0x40000e7888, 0x1, 0x1)
        /home/runner/go/pkg/mod/k8s.io/klog/[email protected]/klog.go:733 +0x124
k8s.io/klog/v2.Fatalf(...)
        /home/runner/go/pkg/mod/k8s.io/klog/[email protected]/klog.go:1463
main.initKubeConfig(0x0, 0x0, 0x0)
        /home/runner/work/kube-rbac-proxy/kube-rbac-proxy/main.go:421 +0x160
main.main()
        /home/runner/work/kube-rbac-proxy/kube-rbac-proxy/main.go:142 +0xc10

goroutine 34 [chan receive]:
k8s.io/klog/v2.(*loggingT).flushDaemon(0x1c56c60)
        /home/runner/go/pkg/mod/k8s.io/klog/[email protected]/klog.go:1131 +0x70
created by k8s.io/klog/v2.init.0
        /home/runner/go/pkg/mod/k8s.io/klog/[email protected]/klog.go:416 +0x118
root@ubuntu:~# docker version
Client:
 Version:           20.10.7
 API version:       1.41
 Go version:        go1.13.8
 Git commit:        20.10.7-0ubuntu1~20.04.1
 Built:             Wed Aug  4 22:53:01 2021
 OS/Arch:           linux/arm64
 Context:           default
 Experimental:      true

Server:
 Engine:
  Version:          20.10.7
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.8
  Git commit:       20.10.7-0ubuntu1~20.04.1
  Built:            Wed Aug  4 19:07:47 2021
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.5.2-0ubuntu1~20.04.2
  GitCommit:        
 runc:
  Version:          1.0.0~rc95-0ubuntu1~20.04.2
  GitCommit:        
 docker-init:
  Version:          0.19.0
  GitCommit:        
root@ubuntu:~# uname -a
Linux ubuntu 5.4.0-1043-raspi #47-Ubuntu SMP PREEMPT Mon Aug 23 09:41:31 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux
root@ubuntu:~# docker inspect quay.io/brancz/kube-rbac-proxy:v0.11.0 | grep Arch
        "Architecture": "amd64",
root@ubuntu:~#

from kube-rbac-proxy.

ronberna avatar ronberna commented on August 18, 2024

We are also having an issue with this. We read the manifest to determine which image to pull based on the architecture. We are getting the following error when we try and deploy to an arm node:
Failed to pull image "quay.io/brancz/kube-rbac-proxy:v0.10.0": rpc error: code = Unknown desc = no matching manifest for linux/arm64/v8 in the manifest list entries

from kube-rbac-proxy.

ibihim avatar ibihim commented on August 18, 2024

When I run docker inspect quay.io/brancz/kube-rbac-proxy:v0.12.0-arm | grep -i Architecture, I receive "Architecture": "arm", as a result.
When I run docker manifest inspect --verbose quay.io/brancz/kube-rbac-proxy:v0.12.0-arm | grep platform -A2, I receive

		"platform": {
			"architecture": "arm",
			"os": "linux"

Is it still an issue?

from kube-rbac-proxy.

ibihim avatar ibihim commented on August 18, 2024

Over a month has passed. I assume it isn't an issue any more. If you object, please reopen the issue.

from kube-rbac-proxy.

Related Issues (20)

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.