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

将apiVersion:networking.k8s.io/v1beta1入口清单转换为apiVersion:networking.k8s.io/v1

宋宏儒
2023-03-14

今年早些时候,我安装了一个带有nginx入口的kubernetes集群。虽然没有什么问题,但效果很好。对于入口,我使用了标签

apiVersion:networking.k8s.io/v1beta1

然而,我最近安装了最新版本的(kubernetes 1.22),它只允许

networking.k8s.io/v1

我的问题是使用我的旧yaml配置与新格式。

我的yaml文件如下所示:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: dev-ingress
  annotations:
    nginx.ingress.kubernetes.io/proxy-body-size: "0"
    nginx.ingress.kubernetes.io/websocket-services : "chatserver"
    nginx.ingress.kubernetes.io/enable-cors: "true"
    nginx.ingress.kubernetes.io/cors-allow-methods: "PUT, GET, POST, OPTIONS"
    nginx.ingress.kubernetes.io/use-regex: "true"
spec:
  rules:
  - http:
      paths:     
      - path: /api/auth/
        pathType: Prefix
        backend:
          serviceName: um-service 
          servicePort: 5001
      - path: /api/system/*
        pathType: Prefix
        backend:
          serviceName: system-service
          servicePort: 5002
       - path: /api/news/*
        backend:
          serviceName: news-service 
          servicePort: 5003
      - path: /api/tasks/*
        # pathType: Prefix
        backend:
          serviceName: tasks-service
          servicePort: 5004
      - path: /api/chats/
        pathType: Prefix
        backend:
          serviceName: chatserver 
          servicePort: 5500
      - path: /
        backend:
          serviceName: web-service
          servicePort: 5000

我的新清单如下所示:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: dev-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
      - path: /api/auth/
        pathType: Prefix
        backend:
          service:
            name: um-service 
            port: 
              number: 5001
      - path: /api/system/*
        pathType: Prefix
        backend:
          service:
            name: system-service 
            port: 
              number: 5002
      - path: /api/chats/
        pathType: Prefix
        backend:
          service:
            name: chatserver
            port: 
              number: 5050
      - path: /
        pathType: Prefix
        backend:
          service:
            name: web-service
            port: 
              number: 5000
  ingressClassName: nginx

如何将其转换为使用新的apiVersion:networking.k8s。io/v1标签?

共有1个答案

茅昀
2023-03-14

幸运的是,就YAML而言,API版本之间没有太大差异。这是一个networking.k8s的示例。Kubernetes文档中的io/v1。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: minimal-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
      - path: /testpath
        pathType: Prefix
        backend:
          service:
            name: test
            port:
              number: 80

对于您来说,主要的变化是如何完成后端块。例如:

backend:
  serviceName: tasks-service
  servicePort: 5004

需要成为:

backend:
  service:
    name: "tasks-service"
    port:
      number: 5004

 类似资料:
  • 问题内容: 如何将String 列表转换为数组?以下代码返回错误。 错误: 问题答案: 你要 有关文档,请参见此处,请注意,您也可以以填充已传递数组的方式调用此方法,而不仅仅是使用它来计算要返回的类型。另请注意,也许当您打印阵列时,您更喜欢 因为那将打印实际的元素。

  • 问题内容: 在我的代码的开头,有: 然后,(这里是反转子列表): 有这种方法: 错误消息是: 列表无法转换为ArrayList 为什么? 问题答案: 像这样想,您有一个调用(我使用此名称,因为它是您正在使用的变量的名称)。 您有一个输入类型为的方法。 我们有一个声明为的变量,这意味着我们要说它总是某种(也许,但也许)-甚至。 当您尝试将方法赋予方法时,编译器会停止运行,因为无法确定它是100%an

  • 问题内容: 我想在下面的代码中改进getCustomerFromDTO方法,我需要从interface {}创建一个结构,目前我需要将该接口编组为byte [],然后将数组解组为我的结构-必须有更好的方法。 我的用例是,我通过rabbitmq发送结构,然后使用具有其他特定于域的数据的通用DTO包装器来发送它们。当我从Rabbit MQ接收DTO时,消息下方的一层将被封送给我的DTO,然后我需要从该

  • 问题内容: 解析后,我的文件“ s”包含 因此,我需要在attributeIDGet列表中的冒号之后获取所有数字。我知道有几种方法可以做到。但是有什么方法可以 直接转换为。 由于以下代码抱怨类型不匹配,因此我尝试执行Integer.parseInt,但我想这不适用于List。这是String。 问题答案: 不,您需要遍历数组

  • 我有返回convert Java . util . concurrent . future的遗留代码,现在我应该将这个方法调用包装在一个返回reactor publishers Mono或Flux的层中。我相信转换到它们中任何一个的方法应该是相似的,那么什么是转换到单声道的正确方法呢? 例如,假设我从API获得未来,我需要Mono

  • 问题内容: 如果我有: 上面是固定的-我不能更改foo或bar。另外,baz必须在bar内转换回foo struct指针。如何将&foo {}强制转换为interface {},以便在调用bar时可以将其用作参数? 问题答案: 要打开到一个很简单: 为了返回到,您可以执行 类型断言 : 或 类型开关 (类似,但可以是多种类型则很有用):