【问题标题】:Can I suspend typechecking on kubectl apply?我可以暂停 kubectl apply 的类型检查吗?
【发布时间】:2020-05-20 13:44:20
【问题描述】:

我正在通过操作员安装自定义资源。但是,kubectl apply 被阻止
“来自服务器的错误(未找到):未找到 customresourcedefinitions.apiextensions.k8s.io “my-crd.example.com”。”

如果沿着--no-typechecking 的行打开kubectl apply,它会解决这个问题。我不会导致缺少 CRD 的问题,因为 apply 只是将 Kubernetes 对象发送到 etcd。然后,当 Operator 实际构建自定义资源时,自定义资源定义将可用。 (我还有其他代码可以保证这一点。)

那么,我可以暂停产生此错误的类型检查吗?

【问题讨论】:

    标签: kubernetes kubectl etcd kubernetes-custom-resources


    【解决方案1】:

    不,您不能在没有实际创建 CRD 的情况下使用 CRD API。这不是类型检查,而是系统如何工作。

    【讨论】:

    • 你是说 etcd 本身是类型安全的?那么,有什么解决方法吗?实际上,存在时间依赖性,这与声明式创建资源的精神背道而驰。
    • 不,不涉及 etcd,这是管理 kubernetes api 的 kube-apiserver 的错误。
    • 至于时间问题,它是收敛性的,一遍又一遍地运行它,直到没有错误为止:) Kustomize 和 Helm 等工具也会自动对输入进行排序,因此 crds 是第一位的,这通常会有所帮助。
    • 你一直在说“类型检查”。这不是类型检查错误。对对象的 OpenAPI 模式验证有一些可选支持,但是您所拥有的只是来自 REST API 的 HTTP 404 响应。您试图访问一个不存在的对象。
    • 没有“元对象”。 CRD 是普通的 K8s API 对象,就像其他任何对象一样 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-12
    • 2013-03-14
    • 2012-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    相关资源
    最近更新 更多