【问题标题】:Logs complaining "extensions/v1beta1 Ingress is deprecated"抱怨“extensions/v1beta1 Ingress 已弃用”的日志
【发布时间】:2021-05-10 20:04:04
【问题描述】:

我正在添加一个 Ingress,如下所示:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: cheddar
spec:
  rules:
  - host: cheddar.213.215.191.78.nip.io
    http:
      paths:
      - backend:
          service:
            name: cheddar
            port:
              number: 80
        path: /
        pathType: ImplementationSpecific

但日志抱怨:

W0205 15:14:07.482439       1 warnings.go:67] extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
time="2021-02-05T15:14:07Z" level=info msg="Updated ingress status" namespace=default ingress=cheddar
W0205 15:18:19.104225       1 warnings.go:67] networking.k8s.io/v1beta1 IngressClass is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 IngressClassList

为什么?使用什么正确的 yaml? 我目前正在使用 microk8s 1.20

【问题讨论】:

  • 您是否在新集群中创建或更新了入口?我曾经遇到过这个问题,当我升级集群时,我不得不删除资源并重新创建。当我再次应用它时,它看不到任何变化。
  • 在两台服务器中,我都是从头开始,但后来我删除并重新创建了入口控制器
  • 尽管有警告消息,你能确认 Ingress 实际上没有工作吗?
  • 相反:Ingress 正在运行。只是我想使用正确的定义来避免日志混乱。

标签: kubernetes kubernetes-ingress microk8s


【解决方案1】:

我分析了你的问题,得出以下结论:

  1. Ingress 将起作用,您看到的这些警告只是为了告知您可用的 api 版本控制。您不必担心这一点。我也看到了同样的警告:

@microk8s:~$ kubectl describe ing
Warning: extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
  1. 至于“为什么”即使您使用apiVersion: networking.k8s.io/v1 也会发生这种情况,我找到了following explanation

这是按预期工作的。当你创建一个入口对象时,它可以 通过任何版本读取(服务器处理转换为 要求的版本)。 kubectl get ingress 是一个模棱两可的请求, 因为它没有指明要读取哪个版本。

当请求不明确时,kubectl 会搜索发现文档 服务器返回以查找包含的第一个组/版本 指定的资源。

出于兼容性原因,extensions/v1beta1 在历史上一直是 优于所有其他 api 版本。现在入口是唯一的 保留在该组中的资源,已弃用并具有 GA 替换,1.20 将优先删除它,以便 kubectl get ingress 将从 networking.k8s.io/v1 读取,但 1.19 服务器 仍将遵循历史优先级。

如果你想阅读特定版本,你可以限定获取 请求(如kubectl get ingresses.v1.networking.k8s.io ...)或可以 传入清单文件以请求与 文件 (kubectl get -f ing.yaml -o yaml)

长话短说:尽管使用了正确的apiVersion,但已弃用的仍被视为默认值,因此会产生您遇到的警告。

我最近也看到了changes are still being made,所以我认为它仍在处理中。

【讨论】:

  • 对不起,我之前没有注意到你的回答。我接受了,因为它实际上解释了这些问题。唯一剩下的疑问是我已经在使用 1.20...
  • 我已经创建了入口服务,入口 pod 处于运行状态。由于某种原因,我看不到负载均衡器。它只是没有被创建。
猜你喜欢
  • 2013-01-16
  • 2021-09-03
  • 1970-01-01
  • 2019-02-03
  • 2020-06-30
  • 2021-03-18
  • 2021-11-29
  • 2018-10-28
  • 1970-01-01
相关资源
最近更新 更多