Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to find the correct api version in Kubernetes?

I have a question about the usage of apiVersion in Kuberntes.

For example I am trying to deploy traefik 2.2.1 into my kubernetes cluster. I have a traefik middleware deployment definition like this:

---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: https-redirect
spec:
  redirectScheme:
    scheme: https
    permanent: true
    port: 443

When I try to deploy my objects with

$ kubectl apply -f middleware.yaml

I got the following error message:

unable to recognize "middleware.yaml": no matches for kind "Middleware" in version "traefik.containo.us/v1alpha1"

The same object works fine with Traefik version 2.2.0 but not with version 2.2.1.

On the traefik documentation there is no example other the ones using the version "traefik.containo.us/v1alpha1"

I dont't hink that my deployment issue is specific to traefik. It is a general problem with conflicting versions. Is there any way how I can figure out which apiVersions are supported in my cluster environment?

There are so many outdated examples posted around using deprecated apiVersions that I wonder if there is some kind of official apiVersion directory for kubernetes? Or maybe there is some kubectl command which I can ask for apiversions?

like image 303
Ralph Avatar asked Oct 28 '25 14:10

Ralph


1 Answers

Most probably crds for traefik v2 are not installed. You could use below command which lists the API versions that are available on the Kubernetes cluster.

kubectl api-versions | grep traefik
traefik.containo.us/v1alpha1

Use below command to check crds installed on the Kubernetes cluster.

kubectl get crds
NAME                                   CREATED AT
ingressroutes.traefik.containo.us      2020-05-09T13:58:09Z
ingressroutetcps.traefik.containo.us   2020-05-09T13:58:09Z
ingressrouteudps.traefik.containo.us   2020-05-09T13:58:09Z
middlewares.traefik.containo.us        2020-05-09T13:58:09Z
tlsoptions.traefik.containo.us         2020-05-09T13:58:09Z
tlsstores.traefik.containo.us          2020-05-09T13:58:09Z
traefikservices.traefik.containo.us    2020-05-09T13:58:09Z

Check traefik v1 vs v2 here

like image 187
Arghya Sadhu Avatar answered Oct 30 '25 05:10

Arghya Sadhu