如何在 Kubernetes 中找到正确的 api 版本?
How to find the correct api version in Kubernetes?
我对 apiVersion 在 Kuberntes 中的使用有疑问。
例如,我正在尝试将 traefik 2.2.1 部署到我的 kubernetes 集群中。我有一个像这样的 traefik 中间件部署定义:
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: https-redirect
spec:
redirectScheme:
scheme: https
permanent: true
port: 443
当我尝试使用
部署我的对象时
$ kubectl apply -f middleware.yaml
我收到以下错误消息:
unable to recognize "middleware.yaml": no matches for kind "Middleware" in version "traefik.containo.us/v1alpha1"
同一个对象在 Traefik 2.2.0 版中运行良好,但在 2.2.1 版中运行不佳。
在 traefik 文档中没有使用版本 "traefik.containo.us/v1alpha1"
的示例
我不认为我的部署问题是 traefik 特有的。这是版本冲突的普遍问题。有什么方法可以确定我的集群环境支持哪些 apiVersions?
关于使用已弃用的 apiVersions 发布了太多过时的示例,我想知道是否有某种官方 apiVersion 目录用于 kubernetes?或者也许有一些 kubectl 命令我可以要求 apiversions?
很可能没有安装 traefik v2 的 crds。您可以使用以下命令列出 Kubernetes 集群上可用的 API 版本。
kubectl api-versions | grep traefik
traefik.containo.us/v1alpha1
使用以下命令检查安装在 Kubernetes 集群上的 crds。
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
检查 traefik v1 与 v2 here
我发现如果我 运行 kubectl apply 几分钟后它就会工作。
我对 apiVersion 在 Kuberntes 中的使用有疑问。
例如,我正在尝试将 traefik 2.2.1 部署到我的 kubernetes 集群中。我有一个像这样的 traefik 中间件部署定义:
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: https-redirect
spec:
redirectScheme:
scheme: https
permanent: true
port: 443
当我尝试使用
部署我的对象时$ kubectl apply -f middleware.yaml
我收到以下错误消息:
unable to recognize "middleware.yaml": no matches for kind "Middleware" in version "traefik.containo.us/v1alpha1"
同一个对象在 Traefik 2.2.0 版中运行良好,但在 2.2.1 版中运行不佳。
在 traefik 文档中没有使用版本 "traefik.containo.us/v1alpha1"
的示例我不认为我的部署问题是 traefik 特有的。这是版本冲突的普遍问题。有什么方法可以确定我的集群环境支持哪些 apiVersions?
关于使用已弃用的 apiVersions 发布了太多过时的示例,我想知道是否有某种官方 apiVersion 目录用于 kubernetes?或者也许有一些 kubectl 命令我可以要求 apiversions?
很可能没有安装 traefik v2 的 crds。您可以使用以下命令列出 Kubernetes 集群上可用的 API 版本。
kubectl api-versions | grep traefik
traefik.containo.us/v1alpha1
使用以下命令检查安装在 Kubernetes 集群上的 crds。
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
检查 traefik v1 与 v2 here
我发现如果我 运行 kubectl apply 几分钟后它就会工作。