【问题标题】:Kubectl create "invalid object"Kubectl 创建“无效对象”
【发布时间】:2019-08-26 22:58:03
【问题描述】:

我正在使用 kubectlyaml 创建命名空间。以下是我的yaml配置

apiVersion: v1
kind: Namespace
metadata:
    name: "slackishapp"
    labels:
        name: "slackishapp"

但是,当我运行 kubectl create -f ./slackish-namespace-manifest.yaml 时,我收到如下错误

error: SchemaError(io.k8s.api.autoscaling.v2beta2.PodsMetricStatus): invalid object doesn't have additional properties.

我的yaml 出了什么问题?我也在documentation 上阅读它。我看不出我的配置有什么不同。

【问题讨论】:

    标签: kubernetes kubectl minikube


    【解决方案1】:

    您的 yaml 没有问题,但我怀疑您的 kubectl 版本错误。

    kubectl 需要与您正在使用的集群相差 1 倍以内,如 here 所述。

    你可以检查你的版本

    kubectl version
    

    【讨论】:

    • 要在 Windows 上更新 'kubectl.exe',如果您有 docker 桌面,请将其替换为“Program Files\Docker\Docker\resources\bin”(请参阅​​下面的 ibs4lif 答案)。务实,在更换之前我停止了“Docker桌面”,但我不确定是否需要。
    【解决方案2】:

    作为一种解决方法,尝试在命令模式下创建命名空间

    kubectl create ns slackishapp && kubectl label ns slackishapp name=slackishapp
    

    然后将现有的 yaml 与您编写的 yaml 进行比较,以检查缺少的内容

    kubectl get ns slackishapp -o yaml --export
    

    【讨论】:

      【解决方案3】:

      https://kubernetes.io/docs/tasks/tools/install-kubectl/#before-you-begin 上下载 kubectl.exe,然后在Program Files\Docker\Docker\resources\bin 上替换它(如果您有 docker 桌面)

      正如 Andreas Wederbrand 所说,这是版本问题。

      【讨论】:

        猜你喜欢
        • 2022-11-07
        • 1970-01-01
        • 2015-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多