我正在按照一些K8S文档设置入口服务,但我无法理解以下注解:
kubernetes.ip/ingress.class:
nginx.ingress.kubernetes.io/rewrite-target:
你知道这些注解是做什么用的吗?
先谢谢你。
plupiseo1#
1.正式弃用kubernetes.io/ingress.class注解:在Kubernetes 1.18中添加IngressClass资源之前,通常使用Inress上的kubernetes.io/ingress.class注解来指定类似的Inress类概念。尽管该注解从未正式定义过,但它得到了Inress控制器的广泛支持,现在应该被认为是正式弃用的。
kubernetes.io/ingress.class
IngressClass
而应使用ingressClassName:
ingressClassName
Ingresses上较新的ingressClassName字段是该注解的替代,但不是直接等效项。虽然注解通常用于引用应该实现Inress的入口控制器的名称,但该字段是对IngressClass资源的引用,该IngressClass资源包含附加的入口配置,包括入口控制器的名称。
1.重写注解如下:在某些场景中,后端服务中公开的URL与Inress规则中指定的路径不同。在不重写的情况下,任何请求都将返回404。将注解nginx.ingress.kubernetes.io/rewrite-target设置为服务预期的路径。
nginx.ingress.kubernetes.io/rewrite-target
如果应用程序根位于不同的路径中并且需要重定向,请设置注解nginx.ingress.kubernetes.io/app-root以重定向对/的请求。
nginx.ingress.kubernetes.io/app-root
/
有关更详细的示例,我强烈建议您查看source。它确切地展示了重写是如何工作的。
tzdcorbm2#
由于Kubernetes1.18+,kubernetes.io/ingress.class注解已弃用。您必须创建IngressClass,如下所示:
apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: name: alb-ingress-class spec: controller: ingress.k8s.aws/alb
然后在Ingress声明中引用它:
Ingress
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: namespace: ... name: my-fabulous-ingress annotations: ... labels: ... spec: ingressClassName: "alb-ingress-class" rules: ...
重要提示:请务必在**Ingress之前创建IngressClass**(因为它被Ingress引用)
注意:如果在同一清单中,将IngressClass块放在Ingress块之上就足够了。
更多信息:https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.2/guide/ingress/ingress_class/
2条答案
按热度按时间plupiseo1#
1.正式弃用
kubernetes.io/ingress.class
注解:在Kubernetes 1.18中添加
IngressClass
资源之前,通常使用Inress上的kubernetes.io/ingress.class
注解来指定类似的Inress类概念。尽管该注解从未正式定义过,但它得到了Inress控制器的广泛支持,现在应该被认为是正式弃用的。而应使用
ingressClassName
:Ingresses上较新的
ingressClassName
字段是该注解的替代,但不是直接等效项。虽然注解通常用于引用应该实现Inress的入口控制器的名称,但该字段是对IngressClass
资源的引用,该IngressClass
资源包含附加的入口配置,包括入口控制器的名称。1.重写注解如下:
在某些场景中,后端服务中公开的URL与Inress规则中指定的路径不同。在不重写的情况下,任何请求都将返回404。将注解
nginx.ingress.kubernetes.io/rewrite-target
设置为服务预期的路径。如果应用程序根位于不同的路径中并且需要重定向,请设置注解
nginx.ingress.kubernetes.io/app-root
以重定向对/
的请求。有关更详细的示例,我强烈建议您查看source。它确切地展示了重写是如何工作的。
tzdcorbm2#
由于Kubernetes1.18+,
kubernetes.io/ingress.class
注解已弃用。您必须创建IngressClass
,如下所示:然后在
Ingress
声明中引用它:重要提示:请务必在**
Ingress
之前创建IngressClass
**(因为它被Ingress
引用)注意:如果在同一清单中,将
IngressClass
块放在Ingress
块之上就足够了。更多信息:
https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.2/guide/ingress/ingress_class/