kustomize 和 kubectl 未找到 CRD

Sau*_*oom 7 kubernetes kustomize

我正在使用 kustomize 将清单通过管道传输到新 k8s 集群 (v1.17.2) 上的 kubectl。这包括 CRD,但其他对象无法找到它们。例如:

unable to recognize "STDIN": no matches for kind "Certificate" in version "cert-manager.io/v1alpha2"
unable to recognize "STDIN": no matches for kind "IngressRoute" in version "traefik.containo.us/v1alpha1"
Run Code Online (Sandbox Code Playgroud)

CRD 在resources我的 kubectl 部分中定义,它们显示在我通过管道传输到 kubectl 的输出中,并且我确信这种将所有内容放入一个文件的方法在我上次执行此操作时有效。

如果我先应用 CRD,然后单独应用主清单,那么一切都会顺利进行。我可以同时做所有这些吗?如果是这样,我做错了什么?如果没有,为什么它之前有效?

谁能指出我问题可能出在哪里?

CRD 定义示例:

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: ingressroutetcps.traefik.containo.us
spec:
  group: traefik.containo.us
  names:
    kind: IngressRouteTCP
    plural: ingressroutetcps
    singular: ingressroutetcp
  scope: Namespaced
  version: v1alpha1
Run Code Online (Sandbox Code Playgroud)

小智 1

我在处理尝试在 Kubernetes 上使用 Kustomize 启动 Traefik 的问题时遇到了您的问题...通过确保 kustomization.yml 文件中的命名空间准确,我的问题得到了解决。就我而言,我必须更改它以匹配部署中其他 yml 文件中的内容。不确定你最终是否明白了,但我想我会回应,以防万一……