【问题标题】:Kubernetes no matches for kind "Deployment" in version "extensions/v1beta1"Kubernetes 在版本“extensions/v1beta1”中没有匹配类型“部署”
【发布时间】:2018-10-18 15:40:36
【问题描述】:

我正在尝试使用 Jenkins 在 Kubernetes 中部署下一个 frontend-deployment.yaml,但出现下一个错误:

[frontend] Running shell script
+ kubectl apply -f IKonnekt/frontend-deployment.yaml
error: unable to recognize "IKonnekt/frontend-deployment.yaml": no matches for kind "Deployment" in version "extensions/v1beta1"

如果我在 Kubernetes 集群内的机器上运行 kubectl apply -f IKonnekt/frontend-deployment.yaml,它可以正常工作。

Kubernetes Client Version: 1.12.1
Kubernetes Server Version: 1.11.0

这是我的前端部署.yaml:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: ikonnekt-frontend-deployment
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: ikonnekt-frontend
    spec:
      containers:
      - name: ikonnekt-frontend
        image: ikonnektfrontend
        imagePullPolicy: Always
        env:
        - name: REACT_APP_API
          value: "http://IP:Port"
        - name: REACT_APP_AUTH_ENDPOINT
          value: "http://IP:Port/auth"
        ports:
        - containerPort: 80
      imagePullSecrets:
      - name: regcred

【问题讨论】:

  • 看起来很奇怪:extensions/v1beta1 应该还在 1.11 中 Jenkins 中的 kubectl 版本是什么?
  • Rico 绝对正确 :) 检查 Jenkins 中安装的 kubectl 版本
  • @Rico Jenkins 的 kubectl 客户端版本是 1.12.1。与集群中的节点相同。并且集群中的节点可以正确部署,但是使用 Jenkins 节点会失败。
  • @DenisA。 Jenkins kubectl 客户端版本为 1.12.1。
  • 终于对我有用了...问题是在 Jenkinsfile 中我使用的是仪表板 URL 而不是 kubernetes api URL。

标签: jenkins kubernetes kubectl


【解决方案1】:

只需将 apiVersion 更改为:apiVersion: apps/v1

【讨论】:

  • 还是不行,解决办法是用apps/v1beta1!
  • 在 kubernetes 上工作 1.17.0
  • 我被困在这里,“扩展”和“应用程序”都不起作用
【解决方案2】:

我的问题是因为在 Jenkinsfile 中我使用的是 Kubernetes 仪表板 URL 而不是 Kubernetes API URL,所以 Jenkins 的 kubectl 无法识别 kubernetes 服务器。

所以最后,使用 API URL 并更新它对我有用的 apiVersion。

【讨论】:

    猜你喜欢
    • 2020-05-13
    • 1970-01-01
    • 2022-12-18
    • 1970-01-01
    • 2020-02-28
    • 1970-01-01
    • 2021-11-21
    • 2020-03-17
    • 2020-02-24
    相关资源
    最近更新 更多