【发布时间】:2020-05-09 13:38:22
【问题描述】:
我有一个关于在 Kuberntes 中使用 apiVersion 的问题。
例如,我正在尝试将 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?
【问题讨论】:
-
你安装了 CRD 吗?
-
是的,我想是的,traefik 是一个 CRD。
-
"traefik is a CRD" --- 嗯,我不确定这句话是否有意义。 CRD 是一种特殊类型的 kubernetes 资源,它必须由您或其他人安装。
-
是的,但是如果你在 kubernetes 中安装 traefik,你通常会像这样安装 CRD:docs.traefik.io/user-guides/crd-acme - 所以我认为我已经安装了 CRD
标签: kubernetes traefik