Ale*_*lla 15 kubernetes kubernetes-ingress microk8s
我正在添加一个入口,如下所示:
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
Run Code Online (Sandbox Code Playgroud)
但日志抱怨:
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
Run Code Online (Sandbox Code Playgroud)
为什么?什么是正确的 yaml 使用?我目前在 microk8s 1.20
OhH*_*ark 25
我分析了你的问题,得出以下结论:
@microk8s:~$ kubectl describe ing
Warning: extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
Run Code Online (Sandbox Code Playgroud)
apiVersion: networking.k8s.io/v1
,我找到了以下解释:这按预期工作。创建入口对象时,它可以通过任何版本读取(服务器处理转换为请求的版本)。
kubectl get ingress
是一个模棱两可的请求,因为它没有指明需要读取哪个版本。当发出不明确的请求时,kubectl 会搜索服务器返回的发现文档,以找到包含指定资源的第一个组/版本。
出于兼容性原因,
extensions/v1beta1
历来优于所有其他 api 版本。现在入口是该组中唯一剩余的资源,已弃用并替换为 GA,1.20 将降低其优先级,以便kubectl get ingress
从 读取networking.k8s.io/v1
,但 1.19 服务器仍将遵循历史优先级。如果要读取特定版本,可以限定 get 请求(例如
kubectl get ingresses.v1.networking.k8s.io
...),也可以传入清单文件以请求文件中指定的相同版本 (kubectl get -f ing.yaml -o yaml
)
长话短说:尽管使用了正确的apiVersion
,但已弃用的仍然被视为默认的,因此会产生您遇到的警告。
我还看到最近仍在进行更改,因此我认为它仍在进行中。
归档时间: |
|
查看次数: |
10407 次 |
最近记录: |