kubectl: kubectl describe ingress not working (1.15.0 against 1.12.7 server)

$ k get ingress some-app
NAME          HOSTS                       ADDRESS   PORTS     AGE
some-app   some-app.domain.com            80, 443   4m58s

$ k describe ingress some-app
Error from server (NotFound): the server could not find the requested resource
Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529", GitTreeState:"clean", BuildDate:"2019-06-19T16:40:16Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"12+", GitVersion:"v1.12.7-gke.25", GitCommit:"d4c79083ab6dea5d26ef4ed8d50b145268349bc3", GitTreeState:"clean", BuildDate:"2019-06-22T16:10:31Z", GoVersion:"go1.10.8b4", Compiler:"gc", Platform:"linux/amd64"}

It works if I downgrade kubectl to 1.12.7

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Reactions: 35
  • Comments: 22 (3 by maintainers)

Most upvoted comments

@seans3 perhaps a version compatibility warning would be useful to avoid time spent troubleshooting this…

Please note that Kubernetes version skew policy is to provide a kubectl that is guaranteed to work against an API Server that is +/- 1 version. So for the initial scenario of a 1.12 API Server, kubectl version 1.11, 1.12, and 1.13 are guaranteed to work. Closing this issue.

/close

I also encountered this problem running client 1.15.0 against a 1.13.7-gke.8 server:

Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529", GitTreeState:"clean", BuildDate:"2019-06-20T04:49:16Z", GoVersion:"go1.12.6", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"13+", GitVersion:"v1.13.7-gke.8", GitCommit:"7d3d6f113e933ed1b44b78dff4baf649258415e5", GitTreeState:"clean", BuildDate:"2019-06-19T16:37:16Z", GoVersion:"go1.11.5b4", Compiler:"gc", Platform:"linux/amd64"}

Downgrading to client 1.14.3 solved it:

brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/fcb6cce3bdd37db3c53c2fcbdf9a47671a592c96/Formula/kubernetes-cli.rb

Why not display a warning, if the client and server versions don’t match?

Will leave it here for those who might struggle :

  1. Verify client & server versions of kubectl by kubectl version
  2. Check the skew policy and select appropriate client binary for download https://kubernetes.io/docs/tasks/tools/install-kubectl/
  3. Download the binary with curl for example > chmod > move Like here : https://kubernetes.io/docs/tasks/tools/install-kubectl/

We have clusters on GKE in the last stable version v1.13.7-gke.19.

Our workstation are on Ubuntu 18.04.3 LTS, we use the repo “deb http://packages.cloud.google.com/apt cloud-sdk-bionic main” for gcloud and kubectl. Kubectl is in v1.15.3.

Could you re-open this issue please ?

@demisx I think you should reopen this. Users are likely going to have the most recent kubectl version and maintaining old version is not a viable solution.

@Prakashreddy134 Try matching your kubectl version to your server version.

Adding a warning for violating the support window is a great suggestion. I suggest we move this discussion over to this new issue: https://github.com/kubernetes/kubectl/issues/709

https://github.com/kubernetes/kubernetes/pull/74057 seems to be related.

kube-apiserver logs indicate that get uses the extensions/v1beta1 api, and describe uses the networking.k8s.io/v1beta1 api:

I0709 01:37:46.517128       1 wrap.go:47] GET /apis/extensions/v1beta1/namespaces/some-namespace/ingresses/some-app: (5.16454ms) 200 [kubectl/v1.15.0 (linux/amd64) kubernetes/e8462b5 52.11.64.245:51960]
I0709 01:37:46.569519       1 wrap.go:47] GET /apis/networking.k8s.io/v1beta1/namespaces/some-namespace/ingresses/some-app: (576.366µs) 404 [kubectl/v1.15.0 (linux/amd64) kubernetes/e8462b5 52.11.64.245:51960]