抱怨“extensions/v1beta1 Ingress 已弃用”的日志
Posted
技术标签:
【中文标题】抱怨“extensions/v1beta1 Ingress 已弃用”的日志【英文标题】:Logs complaining "extensions/v1beta1 Ingress is deprecated" 【发布时间】: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.io/docs/reference/using-api/deprecation-guide/… 【参考方案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
-
至于“为什么”即使您使用
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 处于运行状态。由于某种原因,我看不到负载均衡器。它只是没有被创建。以上是关于抱怨“extensions/v1beta1 Ingress 已弃用”的日志的主要内容,如果未能解决你的问题,请参考以下文章