kubernetes: kube-proxy:1.17 for s390x image is broken?
What happened:
When I tried to use kubernetes 1.17 for s390x with kubeadm, I got below messages in the kube-proxy pod. It ended up failure of installing cni like flannel. But if I switch back to kubernetes 1.15, everything works fine without these messages. Checked it with sig-network
in the k8s slack, there could be something broken in the image kube-proxy:1.17 for s390x.
E0108 13:16:53.070052 1 proxier.go:787] Failed to ensure that filter chain KUBE-EXTERNAL-SERVICES exists: error creating chain "KUBE-EXTERNAL-SERVICES": exit status 2: update-alternatives: error: alternative /usr/sbin/iptables-legacy for iptables not registered; not setting
I0108 13:16:53.070129 1 proxier.go:779] Sync failed; retrying in 30s
W0108 13:17:22.902894 1 iptables.go:508] Could not set up iptables canary mangle/KUBE-PROXY-CANARY: error creating chain "KUBE-PROXY-CANARY": exit status 2: update-alternatives: error: alternative /usr/sbin/iptables-legacy for iptables not registered; not setting
What you expected to happen:
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
Environment:
- Kubernetes version (use
kubectl version
): 1.17 - Cloud provider or hardware configuration: s390x
- OS (e.g:
cat /etc/os-release
): rhel7.7 - Kernel (e.g.
uname -a
): 3.10.0-1062.9.1.el7.s390x #1 SMP Mon Dec 2 08:33:00 EST 2019 s390x s390x s390x GNU/Linux - Install tools: kubeadm
- Network plugin and version (if this is a network-related bug): flannel
- Others: image name
k8s.gcr.io/kube-proxy:v1.17.0
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Comments: 73 (41 by maintainers)
The problem doesn’t really appear to be cross-compiling…
Well… I guess if you were doing really hacky stuff somehow then there might be problems. The error is consistent with the possibility that the s390x image has all of the right packages installed but the post-install scripts didn’t get run when installing them…
@prankkelkar - that’s essentially what our build process does: https://github.com/kubernetes/kubernetes/blob/master/build/lib/release.sh#L391-L394
@BenTheElder I debugged further on the base images used. Looks like current version of
qemu-user-static
does not work withdebian:buster
base image while cross compiling for s390x. I was able to cross compile kube proxy image and verify it successfully by upgradingqemu-user-static
to latest stable version i.ev4.2.0-6
. It would be nice if we can upgrade QEMUVERSION and fix this issue.I tried cross compiling
debian-iptables-s390x:v12.0.1
image using steps from comment. Observed following error in logs but it did not cause dockerfile build to fail.After inspecting Base image for above dockerfile i.e
k8s.gcr.io/debian-base-s390x:v2.0.0
found following outputs on mentioned architectures. amd64:s390x
We need check what exactly is wrong with
debian-base-s390x
image.Use follow steps to get a v1.17.2 cluster with none driver on s390x machine by minikube
kube-proxy release images are built by the release team…? I built the debian base images using the make rules but not kube-proxy.