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

创建“STDIN”时出错:运行skaffold dev时发生内部错误

董胡媚
2023-03-14

所以,我在ubuntu中使用minikube v1.19.0,在kubernetes中使用nginx ingress。我有两个节点文件:auth和client,分别制作了docker图像

我得到了4个kubernetes-cinfig文件,如下所示:

auth-deply.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: auth-depl
spec:
  replicas: 1
  selector:
    matchLabels:
      app: auth
  template:
    metadata:
      labels:
        app: auth
    spec:
      containers:
        - name: auth
          image: xyz/auth
          env:
            - name: JWT_KEY
              valueFrom:
                secretKeyRef:
                  name: jwt-secret
                  key: JWT_KEY
---
apiVersion: v1
kind: Service
metadata:
  name: auth-srv
spec:
  selector:
    app: auth
  ports:
    - name: auth
      protocol: TCP
      port: 3000
      targetPort: 3000

auth-moongo-depl.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: auth-mongo-depl
spec:
  selector:
    matchLabels:
      app: auth-mongo
  template:
    metadata:
      labels:
        app: auth-mongo
    spec:
      containers:
      - name: auth-mongo
        image: mongo
---
apiVersion: v1
kind: Service
metadata:
  name: auth-mongo-srv
spec:
  selector:
    app: auth-mongo
  ports:
    - name: db
      protocol: TCP
      port: 27017
      targetPort: 27017

客户-depl.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: client-depl
spec:
  replicas: 1
  selector:
    matchLabels:
      app: client
  template:
    metadata:
      labels:
        app: client
    spec:
      containers:
        - name: client
          image: xyz/client
---
apiVersion: v1
kind: Service
metadata:
  name: client-srv
spec:
  selector:
    app: client
  ports:
    - name: client
      protocol: TCP
      port: 3000
      targetPort: 3000

ingress-srv.yaml:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-service
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/use-regex: 'true'
spec:
  rules:
    - host: ticketing.dev
      http:
        paths:
          - path: /api/users/?(.*)
            backend:
              serviceName: auth-srv
              servicePort: 3000
          - path: /?(.*)
            backend:
              serviceName: client-srv
              servicePort: 3000

skaffold.yaml:

apiVersion: skaffold/v2alpha3
kind: Config
deploy:
  kubectl:
    manifests:
      - ./infra/k8s/*
build:
  local:
    push: false
  artifacts:
    - image: xyz/auth
      context: auth
      docker:
        dockerfile: Dockerfile
      sync:
        manual:
          - src: 'src/**/*.ts'
            dest: .
    - image: xyz/client
      context: client
      docker:
        dockerfile: Dockerfile
      sync:
        manual:
          - src: '**/*.js'
            dest: .

现在,当我运行Skafold dev时,出现了以下错误:

Listing files to watch...
 - xyz/auth
 - xyz/client
Generating tags...
 - xyz/auth -> xyz/auth:abcb6e4
 - xyz/client -> xyz/client:abcb6e4
Checking cache...
 - xyz/auth: Found Locally
 - xyz/client: Found Locally
Starting test...
Tags used in deployment:
 - xyz/auth -> xyz/auth:370487d5c0136906178e602b3548ddba9db75106b22a1af238e02ed950ec3f21
 - xyz/client -> xyz/client:a56ea90769d6f31e983a42e1c52275b8ea2480cb8905bf19b08738e0c34eafd3
Starting deploy...
 - deployment.apps/auth-depl configured
 - service/auth-srv configured
 - deployment.apps/auth-mongo-depl configured
 - service/auth-mongo-srv configured
 - deployment.apps/client-depl configured
 - service/client-srv configured
 - Warning: extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
 - Error from server (InternalError): error when creating "STDIN": Internal error occurred: failed calling webhook "validate.nginx.ingress.kubernetes.io": an error on the server ("") has prevented the request from succeeding
exiting dev mode because first deploy failed: kubectl apply: exit status 1

事实上,一切都很好,直到我重新安装minikube,并得到这个问题。这里需要帮助。

共有2个答案

贺景胜
2023-03-14

您的日志清楚地表明入口版本警告存在问题。

警告:扩展/v1beta1入口在v1.14中被弃用,在v1.22中不可用;使用networking.k8s。io/v1入口

您的群集版本可能高于1.14

这可能是你的minikube的一个可能版本得到了更新

最新入口示例

apiVersion: "networking.k8s.io/v1beta1"
kind: "Ingress"
metadata:
  name: "example-ingress"
spec:
  ingressClassName: "external-lb"
  rules:
  - host: "*.example.com"
    http:
      paths:
      - path: "/example"
        pathType: "Prefix"
        backend:
          serviceName: "example-service"
          servicePort: 80

lastet ingress API版本为:networking.k8s。io/v1beta1您可以检查lubernetes集群的版本,并验证支持哪个API集群。

https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/

要检查您可以运行库伯内特斯支持的API版本:

kubectl api-versions
荣沈义
2023-03-14

事实上,我刚刚发现问题是在重新安装minikube时,验证Webhook没有被删除,因此应该使用以下命令删除创建的问题。

kubectl delete -A ValidatingWebhookConfiguration ingress-nginx-admission

我发现,虽然重新安装我忘了删除这个网络钩子,这是安装在清单,造成这个问题。

与此问题相关的其他链接:

nginx入口:未找到服务"ingress-nginx控制器-准入"

Nginx入口控制器-调用Webhook失败

 类似资料:
  • 我使用在Ubuntu 12.04上运行的Eclipse EE Juno来测试简单的servlet。因此,我在Eclipse中使用以下命令安装了一个web工具包 当我运行servlet时,内部浏览器会显示我在servlet中使用的html标记。像这样(这个问题在Firefox中不会发生) 下面是servlet的代码 错误在哪里??如何更正此问题?? 非常感谢。

  • 我有一个带有Spring Boot的Java应用程序,用MySQL数据库和Spring Security性构建。该应用程序的目的是连接到SOAP API,并使用Thymleaf的前端与数据交互。 当使用IntelliJ IDEA在本地主机上运行该项目时,该项目工作正常,并且具有所有SOAP连接。当运行<code>mvn clean包</code>时,fat jar成功构建。我想将jar文件部署到托

  • 我不知道该怎么办!感谢任何帮助! 另外,我是否应该在安装HBase之前配置Zookeeper?我的教程没有这么说。

  • 0信息如果它以ok结尾就可以工作1详细cli['C:\程序文件\nodejs\node.exe',1详细cli'C:\users\bhargavii nadendla\appdata\roaming\npm\node_module\npm\bin\npm-cli.js',1详细cli'run',1详细cli'build']2使用npm@6.0.1 3使用node@v8.11.2 4详细run-sc

  • 我是拉威尔的新手,所以你可能不得不忍受我,但我似乎有个小问题。现在,首先,我创建了一个基本模板,并使用phpMyAdmin和Wamp成功地运行了它,它运行得很好。我还得到了一个老项目,我被要求看一看,但由于某种原因,我无法让它运行。 这就是我正在使用的过程: 1:打开cmd更改到正确的目录 2:安装编写器 3:将目录更改为项目目录 4:运行 错误: PHP警告:需要(C:\wamp64\www\p

  • 我有一个带有Spring Data JPA的Web应用程序。我为一些实体创建了扩展JpaRepository的存储库。但是,当我尝试部署应用程序时,会遇到以下错误。不知道为什么会抛出错误 应用程序错误日志: pom.xml 应用程序上下文.xml persistence.xml JpaRepostory接口