当前位置: 首页 > 知识库问答 >
问题:

Kubernetes创建部署意外的SchemaError

支铭晨
2023-03-14

我正在遵循那个教程(https://www.baeldung.com/spring-boot-minikube)我想在yaml文件(simple-crud-dpl.yaml)中创建Kubernetes部署:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: simple-crud
spec:
  selector:
      matchLabels:
        app: simple-crud
  replicas: 3
  template:
    metadata:
      labels:
        app: simple-crud
    spec:
      containers:
        - name: simple-crud
          image: simple-crud:latest
          imagePullPolicy: Never
          ports:
            - containerPort: 8080

但是当我运行<code>时,kubectl创建了一个-f简单的crud dpl。yaml我得到:错误:SchemaError(io.k8s.api.autoscaling.v2beta2.MetricTarget):无效对象没有其他属性

我使用的是最新版本的库贝特:

kubectl version
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.11", GitCommit:"637c7e288581ee40ab4ca210618a89a555b6e7e9", GitTreeState:"clean", BuildDate:"2018-11-26T14:38:32Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.0", GitCommit:"641856db18352033a0d96dbc99153fa3b27298e5", GitTreeState:"clean", BuildDate:"2019-03-25T15:45:25Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"}

我也在本地使用minikube,正如教程中所描述的。部署和服务前一切正常。我做不到。

共有3个答案

赵嘉纳
2023-03-14

我也有同样的问题。在我的Mac系统中,kubectl是从docker运行的,在我安装docker时预装了docker。您可以使用下面的命令检查这一点

ls -l $(which kubectl) 

其返回为

/usr/local/bin/kubectl -

现在,我们必须使用库贝特覆盖符号链接,该链接是使用 brew 安装的

rm /usr/local/bin/kubectl

brew link --overwrite kubernetes-cli

(可选)

brew unlink kubernetes-cli && brew link kubernetes-cli

核实

ls -l $(which kubectl)
宁浩博
2023-03-14

我同意@rennekon的回答。我发现我的机器上运行了docker,它也安装了kubectl。安装kubectl会导致出现此问题。

我采取了以下步骤:

  • 使用<code>brew卸载kubectl使用<code>brew安装kubectl重新安装
  • (由于符号链接创建失败),我强制brew使用brew链接创建符号链接——覆盖kubernetes cli

然后我能够成功运行我的kubectl应用命令。

贺君浩
2023-03-14

使用brew安装kubectl后,您应该运行:

>

  • rm /usr/local/bin/kubectl

    < code>brew link -覆盖kubernetes-cli

    并且还可选地:

    brew link--overwrite--dry-run kubernetes-cli

  •  类似资料:
    • 环境说明 CentOS 7.4 购买自阿里云普通的 ECS 华南地区(如果你是购买美国地区的服务器,则直接使用 kubespray 原项目,那些镜像地址不用修改,其他照着文档即可) 所有机子都是干净的不需要先安装 Docker 等其他容器相关的东西 机器简称 内网 IP 地址 部署软件 系统环境 硬件配置 操作机 172.18.243.242 ansible CentOS 7.4 1 vCPU +

    • 这是我第一次尝试将微服务体系结构部署到Kubernetes中。起初,我正在考虑使用大使作为我的API网关。我还有一个身份验证服务,它验证用户并生成JWT令牌,但是,每次调用服务时,我都需要验证这个令牌。这代表了一个过载问题(因为每次API网关接收流量时,它都会转到该外部身份验证服务以验证JWT令牌),并且大使没有选择在不使用外部服务的情况下执行此过滤。 在这种情况下,使用Zuul网关似乎是最好的选

    • 我可以使用LoadBalancer服务类型访问我的django应用程序部署,但我正在尝试切换到ClusterIP服务类型和ingres-nginx,但当我尝试通过主机url访问站点时,我得到了503 Service Temporally Undate。描述入口还显示

    • 我只是试图在一个名为“test”的名称空间中部署kubernetes仪表板。 https://raw.githubusercontent.com/kubernetes/dashboard/v1.8.3/src/deploy/recommended/kubernetes-dashboard.yaml kubectl应用-f Kubernetes-Dashboard.YAML-N测试 但是,它仍然试图

    • 本系列文档介绍使用二进制部署最新 kubernetes v1.6.2 集群的所有步骤,而不是使用 kubeadm 等自动化方式来部署集群。 在部署的过程中,将详细列出各组件的启动参数,它们的含义和可能遇到的问题。 部署完成后,你将理解系统各组件的交互原理,进而能快速解决实际问题。 所以本文档主要适合于那些有一定 kubernetes 基础,想通过一步步部署的方式来学习和了解系统配置、运行原理的人。

    • 本系列文档介绍使用二进制部署最新 kubernetes v1.6.2 集群的所有步骤,而不是使用 kubeadm 等自动化方式来部署集群。