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

无法部署Kubernetes Ingress apiVersion networking.k8s.io/v1

邵凯定
2023-03-14

我准备所有的入口清单文件,以保持最新的apiVersion(networking.k8s.io/v1)升级我的群集从1.19到1.22。

我正在删除以前的入口规则,然后重新创建:

k delete ingress/my-ingress
k create -f /tmp/ingress.yaml

不幸的是,入口是创建的,但使用的是apiVersion extensions/v1beta1,这与我清单上的内容不同:

$ k get ingress/my-ingress -o yaml
Warning: extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/ssl-passthrough: "true"
  creationTimestamp: "2021-08-11T19:42:08Z"

下面是我正在使用的YAML的一个示例:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/ssl-passthrough: "true"
  labels:
    app.kubernetes.io/instance: my-app
    app.kubernetes.io/name: my-app
  name: my-ingress
  namespace: default
spec:
  rules:
  - host: application.com
    http:
      paths:
        - path: /
          pathType: ImplementationSpecific
          backend:
            service:
              name: my-app
              port:
                number: 443

Kubernetes版本:

Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.1", GitCommit:"c4d752765b3bbac2237bf87cf0b1c2e307844666", GitTreeState:"clean", BuildDate:"2020-12-18T12:09:25Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"19+", GitVersion:"v1.19.13-eks-8df270", GitCommit:"8df2700a72a2598fa3a67c05126fa158fd839620", GitTreeState:"clean", BuildDate:"2021-07-31T01:36:57Z", GoVersion:"go1.15.14", Compiler:"gc", Platform:"linux/amd64"}

入口控制器版本(我从0.41升级以避免任何类型的问题):

Image: k8s.gcr.io/ingress-nginx/controller:v0.48.1@sha256:e9fb216ace49dfa4a5983b183067e97496e7a8b307d2093f4278cd550c303899

共有1个答案

解晟睿
2023-03-14

这正如期工作,尤其是检查github答案

当您创建入口对象时,它可以通过任何版本读取-服务器处理转换为请求的版本。在您的请求get ingress/my-ingress-o yaml中,您没有指定版本,应该阅读。在这种情况下,kubectl搜索服务器返回的文档以找到其中第一个带有请求资源的文档。它可以是任何版本,就像您的情况一样。

这就是为什么,如果您想检查特定版本,您可以:

  1. 通过添加清单文件来改进您的请求,因为文件中指定的版本
    $ kubectl get -f ingress.yaml -o yaml                                                                                                                
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      annotations:
        ...
    $ kubectl get ingresses.v1.networking.k8s.io
    NAME         CLASS    HOSTS             ADDRESS   PORTS   AGE
    my-ingress   <none>   application.com             80      12m

    $ kubectl get ingresses.v1beta1.networking.k8s.io
    Warning: networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
    NAME         CLASS    HOSTS             ADDRESS   PORTS   AGE
    my-ingress   <none>   application.com             80      13m
 类似资料:
  • 我正在使用Java和Tomcat开发一个API项目。星期五一切都很好,但今天我不能在服务器上部署战争。下面是Tomcat中的堆栈错误: 以下是日志中的错误:

  • 每当我运行“Firebase部署-只有函数”时,它就会出现这个错误分析函数触发器时出错。 类型错误:函数。https。onCall(…)。那么它就不是对象的函数了。(C:\Users\Lenovo\Desktop\Firebase Revision\functions\index.js:11:4)在模块中_在对象处编译(internal/modules/cjs/loader.js:1158:30)

  • 我试着在这些问题中应用所有的解决方案: 在我的web.xml中,我使用了标记'res-ref-name'。 多谢!

  • 我正在做一个maven构建在我的jenkins和创建一个战争文件,我已经配置了webphere部署插件,并成功地测试了连接。我试图部署战争文件webshere部署插件,但我得到一个错误 部署到IBM WebSphere Application Server时出错:应为Ant GLOB模式。 我猜在我部署maven build时,它需要一个ant构建。 我在jenkins中复制了WebSphereD

  • 无法将快照工件部署到Nexus存储库。我一直收到返回代码400。无法部署项目:无法传输项目网络。iin:iin-web-0.0.1-snapshot:jar:iin-parent从/到快照(http://localhost:8081/nexus/content/repositories/snapshots/net/iin/iin-web-0.0.1-snapshot/iin-parent/iin-

  • 我试图在weblogic Server12.1.3中运行Spring Boot应用程序,但遇到以下错误 BlockQuoteWebLogic.Application.ModuleException:java.lang.NoSuchMethoderRorr:org.springframework.core.Annotation.AnnotationawareOrderComparator.sort(